Ignore:
Timestamp:
2011-06-16 15:07:10 (8 years ago)
Author:
vievkang
Message:
 
Location:
2011/24/VilmaK/Magneetti/Magneetti/Magneetti
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2011/24/VilmaK/Magneetti/Magneetti/Magneetti/Magneetti.csproj

    r2021 r2051  
    6262  </PropertyGroup> 
    6363  <ItemGroup> 
    64     <Reference Include="Jypeli4"> 
     64    <Reference Include="Jypeli4, Version=4.0.6.0, Culture=neutral, processorArchitecture=x86"> 
     65      <SpecificVersion>False</SpecificVersion> 
     66      <HintPath>.\Jypeli4.dll</HintPath> 
    6567    </Reference> 
    6668    <Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86"> 
     
    118120    <Content Include="Game.ico" /> 
    119121    <Content Include="GameThumbnail.png" /> 
     122    <Content Include="Jypeli4.dll" /> 
    120123    <Content Include="kentta.txt"> 
     124      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     125    </Content> 
     126    <Content Include="kentta2.txt"> 
     127      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     128    </Content> 
     129    <Content Include="kentta3.txt"> 
    121130      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    122131    </Content> 
  • 2011/24/VilmaK/Magneetti/Magneetti/Magneetti/Peli.cs

    r2045 r2051  
    1616    IntMeter pisteLaskuri; 
    1717    Image lopputeksti = LoadImage("lopputeksti"); 
    18  
     18    List<Label> valikonKohdat; 
     19    bool pelikaynnissa = false; 
     20    ScoreList topLista = new ScoreList(10, true, 1000); 
     21 
     22    int kenttanro = 1; 
    1923 
    2024 
    2125    public override void Begin() 
    2226    { 
     27 
     28        Valikko(); 
     29    } 
     30 
     31 
     32    void Valikko() 
     33    { 
     34 
     35        ClearAll(); 
     36        valikonKohdat = new List<Label>(); 
     37 
     38        Label ohjeet = new Label("Ohjaa hiirellä ristiä. Risti hylkii magneettia.\n" + 
     39        "Ohjaa magneetti maaliin osumatta seiniin tai toiseen magneettiin.\n" + 
     40        "Mitä vähemmän pisteitä, sen parempi.Lopettaaksesi pelin, paina ESC-näppäintä."); 
     41        ohjeet.Y = +100; 
     42        ohjeet.Width = 100; 
     43        //ohjeet.HorizontalSizing = Sizing.FixedSize; 
     44        ohjeet.SizeMode = TextSizeMode.Wrapped; 
     45        Add(ohjeet); 
     46        Label kohta1 = new Label("Aloita uusi peli"); 
     47        kohta1.Position = new Vector(0, 40); 
     48        valikonKohdat.Add(kohta1); 
     49 
     50        Label kohta2 = new Label("Lopeta"); 
     51        kohta2.Position = new Vector(0, -40); 
     52        valikonKohdat.Add(kohta2); 
     53 
     54        foreach (Label valikonKohta in valikonKohdat) 
     55        { 
     56            Add(valikonKohta); 
     57        } 
     58 
     59        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); 
     60        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 
     61 
     62        Mouse.IsCursorVisible = true; 
     63        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 
     64        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 
     65    } 
     66 
     67    void ValikossaLiikkuminen(AnalogState hiirenTila) 
     68    { 
     69        foreach (Label kohta in valikonKohdat) 
     70        { 
     71            if (Mouse.IsCursorOn(kohta)) 
     72            { 
     73                kohta.TextColor = Color.Red; 
     74            } 
     75            else 
     76            { 
     77                kohta.TextColor = Color.Black; 
     78            } 
     79 
     80        } 
     81    } 
     82 
     83    void AloitaPeli() 
     84    { 
     85        pelikaynnissa = true; 
     86        ClearAll(); 
     87        AsetaOhjaimet(); 
     88        LuoKentta(1); 
     89 
     90        Level.CreateBorders(); 
     91 
     92        // Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 
     93    } 
     94 
     95    void Lopeta() 
     96    { 
     97        Exit(); 
     98    } 
     99 
     100 
     101    void LuoKentta(int kenttanro) 
     102    { 
     103        String kentta; 
     104        ClearGameObjects(); 
     105        ClearWidgets(); 
     106        switch (kenttanro) 
     107        { 
     108            case 1: kentta = "kentta.txt"; break; 
     109            case 2: kentta = "kentta2.txt"; break; 
     110            case 3: kentta = "kentta3.txt"; break; 
     111            default: kentta = "kentta.txt"; break; 
     112        } 
     113 
     114        if (DataStorage.Exists("pisteet" + kenttanro + ".xml")) 
     115            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet" + kenttanro + ".xml"); 
     116 
    23117        LuoRisti(); 
    24         AsetaOhjaimet(); 
    25         LuoKentta(); 
    26         Level.CreateBorders(); 
    27118        LuoLaskuri(); 
    28         
    29         // TODO: Kirjoita ohjelmakoodisi tähän 
    30     } 
    31  
    32  
    33  
    34     void LuoKentta() 
    35     { 
    36119        Level.BackgroundColor = Color.LimeGreen; 
    37         TileMap ruudut = TileMap.FromFile("kentta.txt"); 
     120        TileMap ruudut = TileMap.FromFile(kentta); 
    38121        ruudut.SetTileMethod('x', LuoPalikka); 
    39122        ruudut.SetTileMethod('p', LuoPuu); 
     
    45128        ruudut.SetTileMethod('M', LuoJattiMagneetti); 
    46129        ruudut.Execute(50, 50); 
    47         
    48     } 
    49  
    50     
    51  
    52      
     130    } 
    53131 
    54132    void LuoLaskuri() 
    55133    { 
    56         pisteLaskuri = new IntMeter (0); 
     134        pisteLaskuri = new IntMeter(0); 
    57135        pisteLaskuri.MinValue = int.MinValue; 
    58136        Label pisteNaytto = new Label(); 
     
    71149            pisteLaskuri.Value++; 
    72150        } 
    73          
     151 
    74152        // Iso magneetti 
    75153        if (kohde.Tag.ToString() == "M") 
     
    82160        { 
    83161            GameObject loppu = new GameObject(226, 29); 
     162            Magneetti.Destroy(); 
    84163            loppu.Image = lopputeksti; 
    85             
     164 
    86165            Add(loppu); 
     166            pisteLaskuri.MaxValue = pisteLaskuri.Value; 
    87167            Label loppupiste = new Label(); 
    88168            loppupiste.Y = -40; 
    89169            loppupiste.BindTo(pisteLaskuri); 
    90170            Add(loppupiste); 
    91         } 
    92  
    93       } 
     171 
     172            HighScoreWindow topIkkuna = new HighScoreWindow("Magneetti", 
     173                             "Parhaat pisteet", 
     174                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", 
     175                             topLista, pisteLaskuri.Value); 
     176            topIkkuna.Closed += TallennaPisteet; 
     177            Add(topIkkuna); 
     178        } 
     179    } 
     180 
     181    void TallennaPisteet(Window sender) 
     182    { 
     183        DataStorage.Save<ScoreList>(topLista, "pisteet" + kenttanro + ".xml"); 
     184        LuoKentta(++kenttanro); 
     185    } 
     186 
    94187 
    95188    void LuoPalikka(Vector paikka, double leveys, double korkeus) 
     
    105198    void LuoPuu(Vector paikka, double leveys, double korkeus) 
    106199    { 
    107         GameObject puu =  new GameObject(leveys, korkeus); 
     200        GameObject puu = new GameObject(leveys, korkeus); 
    108201        puu.Image = LoadImage("puu"); 
    109202        puu.Position = paikka; 
     
    112205    } 
    113206 
    114     void LuoMaali( Vector paikka, double leveys, double korkeus) 
    115     { 
    116        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     207    void LuoMaali(Vector paikka, double leveys, double korkeus) 
     208    { 
     209        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    117210        maali.Image = LoadImage("maali"); 
    118211        maali.Position = paikka; 
     
    123216    void LuoJarvi(Vector paikka, double leveys, double korkeus) 
    124217    { 
    125         GameObject jarvi = new GameObject(leveys*8, korkeus); 
    126         jarvi.Image = LoadImage ("järvi"); 
    127         jarvi.Position = new Vector(paikka.X + jarvi.Width /2 - leveys/2, paikka.Y); 
    128         Add (jarvi); 
    129     } 
    130  
    131     void LuoKukka( Vector paikka, double leveys, double korkeus) 
    132     { 
    133         GameObject kukka = new GameObject (leveys, korkeus); 
     218        GameObject jarvi = new GameObject(leveys * 8, korkeus); 
     219        jarvi.Image = LoadImage("järvi"); 
     220        jarvi.Position = new Vector(paikka.X + jarvi.Width / 2 - leveys / 2, paikka.Y); 
     221        Add(jarvi); 
     222    } 
     223 
     224    void LuoKukka(Vector paikka, double leveys, double korkeus) 
     225    { 
     226        GameObject kukka = new GameObject(leveys, korkeus); 
    134227        kukka.Image = LoadImage("kukka"); 
    135228        kukka.Position = paikka; 
     
    137230    } 
    138231 
    139     void LuoMagneetti (Vector paikka, double leveys, double korkeus) 
    140     { 
    141         Magneetti = new PhysicsObject(25, 25); 
     232    void LuoMagneetti(Vector paikka, double leveys, double korkeus) 
     233    { 
     234        Magneetti = new PhysicsObject(20, 20); 
    142235        Magneetti.Shape = Shape.Circle; 
    143236        Magneetti.Position = paikka; 
     
    151244    } 
    152245 
    153     void LuoRanta( Vector paikka, double leveys, double korkeus) 
    154     { 
    155         GameObject Ranta = new GameObject(3*leveys, korkeus); 
     246    void LuoRanta(Vector paikka, double leveys, double korkeus) 
     247    { 
     248        GameObject Ranta = new GameObject(3 * leveys, korkeus); 
    156249        Ranta.Image = LoadImage("beach"); 
    157         Ranta.Position = new Vector(paikka.X + Ranta.Width /1.5 - leveys/2, paikka.Y); 
     250        Ranta.Position = new Vector(paikka.X + Ranta.Width / 1.5 - leveys / 2, paikka.Y); 
    158251        Add(Ranta); 
    159252 
     
    163256    void LuoJattiMagneetti(Vector paikka, double leveys, double korkeus) 
    164257    { 
    165       JattiMagneetti = PhysicsObject.CreateStaticObject (50, 50);      
    166       JattiMagneetti.Image = LoadImage ( "jättimagneetti"); 
    167       JattiMagneetti.Position = paikka; 
    168       JattiMagneetti.Tag = "M"; 
    169       Add (JattiMagneetti); 
    170        
     258        JattiMagneetti = PhysicsObject.CreateStaticObject(50, 50); 
     259        JattiMagneetti.Image = LoadImage("jättimagneetti"); 
     260        JattiMagneetti.Position = paikka; 
     261        JattiMagneetti.Tag = "M"; 
     262        Add(JattiMagneetti); 
     263 
    171264    } 
    172265 
     
    183276        Mouse.IsCursorVisible = false; 
    184277        Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
     278        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta Peli"); 
    185279 
    186280    } 
     
    193287    protected override void Update(Time time) 
    194288    { 
    195         Vector v = Magneetti.Position - Risti.Position; 
    196         // MessageDisplay.Add(v.X + " " + v.Y); 
    197         Magneetti.Push(1500/v.Magnitude * v.Normalize()); 
    198  
    199         Vector z = JattiMagneetti.Position - Magneetti.Position; 
    200         Magneetti.Push (1550 / z.Magnitude * z.Normalize()); 
     289        if (pelikaynnissa) 
     290        { 
     291 
     292            Vector v = Magneetti.Position - Risti.Position; 
     293            // MessageDisplay.Add(v.X + " " + v.Y); 
     294            Magneetti.Push(1000 / v.Magnitude * v.Normalize()); 
     295 
     296            Vector z = JattiMagneetti.Position - Magneetti.Position; 
     297            Magneetti.Push(1500 / z.Magnitude * z.Normalize()); 
     298        } 
    201299 
    202300        base.Update(time); 
  • 2011/24/VilmaK/Magneetti/Magneetti/Magneetti/kentta.txt

    r2021 r2051  
    1 $xxxxxxxxxxxxxxxxxxx 
     1 xxxxxxxxxxxxxxxxxxx 
    22   x  x   xpkkpr  kx 
    33x  xxxx x xj       x 
     
    88xxxxx xxxxxxxxxxxxxx 
    99x p x xxxxxxxxxxxxxx 
    10 x p x              x 
     10x p x            $ x 
    1111xxxxxxxxxxxxxxxxxoxx 
Note: See TracChangeset for help on using the changeset viewer.