Changeset 1193 for 2010/27


Ignore:
Timestamp:
2010-07-08 14:56:25 (9 years ago)
Author:
juoshako
Message:

Br3ak 1t 90% valmiina.

Location:
2010/27/juoshako/Br3ak 1t
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/juoshako/Br3ak 1t/Kentta.txt

    r1175 r1193  
    3030=                                                  = 
    3131=                                                  = 
    32 ==================================================== 
     32=..................................................= 
  • 2010/27/juoshako/Br3ak 1t/Peli.cs

    r1175 r1193  
    11using System; 
    22using Jypeli; 
     3using System.Collections.Generic; 
    34using Jypeli.Widgets; 
    45using Jypeli.Assets; 
    56 
     7public class Laatta : PhysicsObject 
     8{ 
     9    private bool onkoJoOsuttukerran; 
     10    public bool OnkoJoOsuttuKerran 
     11    { 
     12        get { return onkoJoOsuttukerran; } 
     13        set { onkoJoOsuttukerran = value; } 
     14    }  
     15    public Laatta(double width, double height) 
     16        :base(width, height) 
     17    { 
     18        MakeStatic(); 
     19    } 
     20} 
     21 
     22 
    623public class Peli : PhysicsGame 
    724{ 
     25     
    826    const int ruudunLeveys = 50; 
    927    const int ruudunKorkeus = 50; 
     
    1331 
    1432    PhysicsObject maila; 
    15      
     33    PhysicsObject pallo; 
     34 
     35    IntMeter pisteLaskuri; 
     36 
     37    List<Label> valikonKohdat; 
     38 
    1639    protected override void Begin() 
    1740    { 
    18         //TODO: Alusta peli tässä 
     41 
     42        Valikko(); 
     43         
     44    } 
     45    void AloitaPeli() 
     46    { 
     47        ClearAll(); 
     48 
    1949        LuoKentta(); 
    20     } 
    21     void LuoKentta() 
    22     { 
    23         maila = PhysicsObject.CreateStaticObject (300, 30); 
     50        LuoLaskuri(); 
     51        AsetaOhjaimet(); 
     52        //LuoMaila(); 
     53 
     54        Vector impulssi = new Vector(0.0, 500.0); 
     55        pallo.Hit(impulssi); 
     56    } 
     57    void Lopeta() 
     58    { 
     59        Exit(); 
     60    } 
     61    void LuoMaila() 
     62    { 
     63        maila = PhysicsObject.CreateStaticObject(300, 30); 
    2464        //maila.Shape = Shapes.Circle; 
    2565        maila.X = 0; 
    26         maila.Y = Level.Bottom-320; 
     66        maila.Y = Level.Bottom + 100; 
    2767        maila.CanRotate = false; 
    2868        maila.KineticFriction = 1; 
    2969        maila.Color = Color.Blue; 
    3070        Add(maila); 
    31  
     71    } 
     72    void LuoKentta() 
     73    { 
    3274        TileMap ruudut = TileMap.FromFile ("Kentta.txt"); 
    3375        ruudut['='] = LuoPalikka; 
    34         ruudut['*'] = LuoTahti; 
     76        ruudut['*'] = LuoLaatta; 
     77        ruudut['.'] = LuoTiili; 
    3578        ruudut.Insert (ruudunLeveys, ruudunKorkeus); 
    3679        Camera.ZoomToLevel(); 
    3780 
    38         PhysicsObject pallo = new PhysicsObject(40, 40); 
     81        pallo = new PhysicsObject(40, 40); 
    3982        pallo.Shape = Shapes.Circle; 
    4083        pallo.X = 0; 
    4184        pallo.Y = Level.Bottom+110; 
    42         pallo.Color = Color.Aqua; 
     85        pallo.Color = Color.Black; 
    4386        Add (pallo); 
    4487 
     88        LuoMaila(); 
     89 
    4590        AddCollisionHandler(pallo, KasittelePallonTormays); 
    46         AsetaOhjaimet(); 
    47  
    48         Vector impulssi = new Vector(0.0, 1500.0); 
    49         pallo.Hit(impulssi); 
    5091    } 
    5192    PhysicsObject LuoPalikka() 
     
    5394        PhysicsObject palikka = PhysicsObject.CreateStaticObject (50.0, 50.0); 
    5495        palikka.Shape = Shapes.Rectangle; 
    55         palikka.Color = Color.Black; 
     96        palikka.Color = Color.Gray; 
    5697        palikka.Restitution = 1.0; 
    5798        palikka.Tag = "palikka"; 
    5899        return palikka; 
    59100    } 
    60     PhysicsObject LuoTahti() 
    61     { 
    62         PhysicsObject tahti = PhysicsObject.CreateStaticObject(45.0, 45.0); 
    63         return tahti; 
    64     } 
     101    PhysicsObject LuoLaatta() 
     102    { 
     103        Laatta laatta = new Laatta(48.0, 48.0); 
     104        laatta.Tag = "laatta";      
     105        return laatta; 
     106    } 
     107    PhysicsObject LuoTiili() 
     108    { 
     109        PhysicsObject tiili = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     110        tiili.Tag = "tiili"; 
     111        tiili.Color = Color.Red; 
     112        tiili.Shape = Shapes.Rectangle; 
     113        return tiili; 
     114    } 
     115 
     116     
    65117    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
    66118    { 
    67         if (kohde.Tag.ToString() == "palikka") 
    68         { 
    69             pallo.Color = Color.Red; 
    70         } 
    71     } 
     119        if (kohde.Tag.ToString() == "laatta") 
     120        { 
     121            bool tuhotaanko = ((Laatta)kohde).OnkoJoOsuttuKerran; 
     122            if (tuhotaanko) 
     123            { 
     124                Timer.SingleShot(0.1, kohde.Destroy); 
     125                pisteLaskuri.Value++; 
     126            } 
     127            else 
     128            { 
     129                ((Laatta)kohde).OnkoJoOsuttuKerran = true; 
     130                kohde.Color = Color.Gray; 
     131            } 
     132 
     133             
     134        } 
     135        if (kohde.Tag.ToString() == "tiili") 
     136        { 
     137            MessageDisplay.Add("Peli loppui"); 
     138            PeliPaattyi(); 
     139        } 
     140 
     141    } 
     142 
    72143    void AsetaOhjaimet() 
    73144    { 
     145        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon"); 
    74146        Keyboard.Listen (Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila, nopeusVasemmalle); 
    75147        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero);  
     
    77149        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 
    78150 
    79         Keyboard.Listen (Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     151        //Keyboard.Listen (Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    80152        Keyboard.Listen (Key.F1, ButtonState.Down, ShowControlHelp, "Näytä ohjeet"); 
    81153    } 
     
    96168         
    97169    } 
     170    void LuoLaskuri() 
     171    { 
     172        pisteLaskuri = new IntMeter(0); 
     173        Label pisteNaytto = new Label(); 
     174        pisteNaytto.X = Screen.Left + 100; 
     175        pisteNaytto.Y = Screen.Top -100; 
     176        pisteNaytto.TextColor = Color.Red; 
     177 
     178        pisteNaytto.BindTo(pisteLaskuri); 
     179        Add(pisteNaytto); 
     180 
     181        Label pisteTeksti = new Label("Pisteitä"); 
     182        pisteTeksti.X = Screen.Left + 50; 
     183        pisteTeksti.X = Screen.Top - 100; 
     184        pisteTeksti.TextColor = Color.Red; 
     185        Add(pisteTeksti); 
     186 
     187        IntMeter laskuri = new IntMeter(0); 
     188        laskuri.MaxValue = 120; 
     189        laskuri.UpperLimit += LaskuriYlarajassa; 
     190    } 
     191    void PeliPaattyi() 
     192    { 
     193        pallo.Destroy(); 
     194        maila.Destroy(); 
     195    } 
     196    void Valikko() 
     197    { 
     198        ClearAll(); 
     199        Mouse.IsCursorVisible = true; 
     200        valikonKohdat = new List<Label>(); 
     201 
     202        Label kohta1 = new Label("Aloita uusi peli"); 
     203        kohta1.Position = new Vector(0, 40); 
     204        valikonKohdat.Add(kohta1); 
     205 
     206        Label kohta2 = new Label("Lopeta"); 
     207        kohta2.Position = new Vector(0, -40); 
     208        valikonKohdat.Add(kohta2); 
     209 
     210        foreach (Label valikonKohta in valikonKohdat) 
     211        { 
     212            Add(valikonKohta); 
     213        } 
     214        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); 
     215        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); 
     216 
     217        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 
     218        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); 
     219    } 
     220    void ValikossaLiikkuminen(AnalogState hiirenTila) 
     221    { 
     222        foreach (Label kohta in valikonKohdat) 
     223        { 
     224            if (Mouse.IsCursorOn(kohta)) 
     225            { 
     226                kohta.TextColor = Color.Red; 
     227            } 
     228            else 
     229            { 
     230                kohta.TextColor = Color.Black; 
     231            } 
     232        } 
     233    } 
     234    void LaskuriYlarajassa(int arvo) 
     235    { 
     236        MessageDisplay.TextColor = Color.White; 
     237        MessageDisplay.Add("Pääsit kentän läpi!"); 
     238    } 
    98239 
    99240} 
Note: See TracChangeset for help on using the changeset viewer.