Ignore:
Timestamp:
2017-06-09 13:01:25 (2 years ago)
Author:
nupeohje
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/23/KaapoP/Spartalainentetris/Spartalainentetris/Spartalainentetris/Spartalainentetris.cs

    r8449 r8475  
    77using Jypeli.Widgets; 
    88 
    9 public class Spartalainentetris : PhysicsGame { 
    10  
    11     PlatformCharacter Pelaaja; 
     9public class Spartalainentetris : PhysicsGame 
     10{ 
     11 
     12    PlatformCharacter pelaaja; 
    1213    Double liikkumismaara = 400; 
     14    Double ajastinNopeus = 0.8; 
    1315    Image Kuva = LoadImage("Anim01"); 
    1416    IntMeter pisteLaskuri; 
     
    2022    Image Vasenreuna = LoadImage("Vasenreuna"); 
    2123    Image Alareunan = LoadImage("Alareunan"); 
     24    private Image[] ukkelinKavely = LoadImages("anim02", "anim03", "anim04", "anim05", "anim06", "anim07"); 
     25    public Image Idle = LoadImage("anim01"); 
    2226 
    2327    public override void Begin() 
    2428    { 
    2529        ClearAll(); 
     30        ajastinNopeus = 0.8; 
    2631        luopelaaja(); 
    2732        LuoPistelaskuri(); 
     
    3136        MaaOikea(); 
    3237        camerazoom(); 
    33  
    34         Timer ajastin = new Timer(); 
    35         ajastin.Interval = 0.2; 
    36         ajastin.Timeout += luopalikka; 
    37         ajastin.Start(); 
     38        palikkaAjastin(ajastinNopeus); 
     39        //Timer ajastin = new Timer(); 
     40        //ajastin.Interval = ajastinNopeus; 
     41        //ajastin.Timeout += delegate { luopalikka(); ajastinNopeus -= 0.5; MessageDisplay.Add(ajastinNopeus.ToString()); }; 
     42        //ajastin.Start(); 
    3843        Gravity = new Vector(0.0, -1000.0); 
     44 
     45        Timer alareunaAjastin = new Timer(); 
     46        alareunaAjastin.Interval = 2; 
     47        alareunaAjastin.Timeout += delegate 
     48        { 
     49            List<GameObject> palikat = new List<GameObject>(); 
     50 
     51            int lohkoja = (int)(Level.Width / 40.0); 
     52            for (int i = 0; i < lohkoja; i++) 
     53            { 
     54                double x = i * 40.0 - Level.Width / 2.0 + 40 / 2; 
     55                double y = Level.Bottom + 20; 
     56                GameObject palikka = GetObjectAt(new Vector(x, y)); 
     57                if (palikka != null && palikka.Tag.ToString() == "Palikka") 
     58                { 
     59                    palikat.Add(palikka); 
     60                } 
     61            } 
     62 
     63            if (palikat.Count == 25) 
     64            { 
     65                foreach(GameObject palikka in palikat) 
     66                { 
     67                    palikka.Destroy(); 
     68                } 
     69 
     70                List<GameObject> kaikkiPalikat = GetObjectsWithTag("Palikka"); 
     71                foreach(GameObject palikka in kaikkiPalikat) 
     72                { 
     73                    if ((palikka as PhysicsObject).Velocity.Magnitude < 0.1) 
     74                    { 
     75                        palikka.Y -= 40; 
     76                    } 
     77                } 
     78            } 
     79        }; 
     80        alareunaAjastin.Start(); 
    3981 
    4082        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    4688    void camerazoom() 
    4789    { 
    48         Camera.Zoom(0.9); 
    49         Camera.Follow(Pelaaja); 
     90        Camera.Zoom(0.8); 
     91        Camera.Follow(pelaaja); 
    5092    } 
    5193    void LiikutaPelaajaa(double nopeus) 
    5294    { 
    53         Pelaaja.Walk(nopeus); 
     95        pelaaja.Walk(nopeus); 
    5496    } 
    5597    void hyppaa() 
    5698 
    5799    { 
    58         Pelaaja.Jump(500); 
     100        pelaaja.Jump(500); 
    59101 
    60102    } 
    61103    void luopelaaja() 
    62104    { 
    63         Pelaaja = new PlatformCharacter(38, 80); 
    64         Pelaaja.Mass = 10.0; 
    65         Pelaaja.X = 0; 
    66         Pelaaja.Y = -350; 
    67         Pelaaja.Image = Kuva; 
    68         Pelaaja.Tag = "Pelaaja"; 
    69         Add(Pelaaja); 
    70  
    71         Pelaaja.Collided += (IPhysicsObject a, IPhysicsObject b) => 
     105        pelaaja = new PlatformCharacter(20, 80); 
     106        pelaaja.Mass = 10.0; 
     107        pelaaja.X = 0; 
     108        pelaaja.Y = -350; 
     109        pelaaja.Image = Kuva; 
     110        pelaaja.Tag = "Pelaaja"; 
     111        Add(pelaaja); 
     112        pelaaja.Animation = new Animation(ukkelinKavely); 
     113        pelaaja.Animation.Start(); 
     114        pelaaja.Animation.FPS = 7; 
     115 
     116        pelaaja.Animation.StopOnLastFrame = false; 
     117        pelaaja.AnimWalk = new Animation(ukkelinKavely); 
     118        pelaaja.AnimIdle = new Animation(Idle); 
     119        pelaaja.AnimJump = new Animation(Idle); 
     120        pelaaja.AnimFall = new Animation(Idle); 
     121 
     122 
     123        pelaaja.Collided += (IPhysicsObject a, IPhysicsObject b) => 
    72124        { 
    73125            if (b.Position.Y > a.Position.Y && b.Velocity.Magnitude > 0 && b.Tag.Equals("Palikka")) 
    74126            { 
    75                 Pelaaja.Destroy(); 
     127                pelaaja.Destroy(); 
    76128                Pause(); 
    77129                AvaaValikko(); 
     
    119171        pisteNaytto.Y = Screen.Top - 100; 
    120172        pisteNaytto.TextColor = Color.Aqua; 
    121         pisteNaytto.Color = Color.Black; 
     173        pisteNaytto.Color = Color.FromHexCode("404040"); 
    122174 
    123175        pisteNaytto.BindTo(pisteLaskuri); 
     
    127179        pisteAjastin.Timeout += delegate { pisteLaskuri.Value += 1; }; 
    128180        pisteAjastin.Start(); 
     181 
     182         
    129183 
    130184    } 
     
    140194        Level.Background.Image = taustaKuva; 
    141195        Level.Background.FitToLevel(); 
    142         Level.Background.Color = Color.Black; 
     196        Level.Background.Color = Color.FromHexCode("404040"); 
    143197    } 
    144198    void Maa() 
     
    172226    { 
    173227        PhysicsObject Palikka = PhysicsObject.CreateStaticObject(40.0, 40.0); 
    174          
     228 
    175229        Color vari = RandomGen.NextColor(Color.Mint, Color.HotPink); 
    176230        Palikka.Color = vari; 
     
    178232        //Palikka.X = RandomGen.NextDouble(Level.Left + 20, Level.Right - 20); 
    179233        int lohkoja = (int)(Level.Width / 40.0); 
    180         Palikka.X = RandomGen.NextInt(0, lohkoja) * 40.0 - Level.Width/2.0 + 40/2; 
     234        Palikka.X = RandomGen.NextInt(0, lohkoja) * 40.0 - Level.Width / 2.0 + 40 / 2; 
    181235        Palikka.Y = 700.0; 
    182236        Palikka.Velocity = new Vector(0, -300); 
     
    185239 
    186240        Timer ajastin = new Timer(); 
    187         ajastin.Interval = 0.01; 
     241        ajastin.Interval = 0.02; 
    188242        ajastin.Timeout += delegate 
    189243        { 
     
    201255        ajastin.Start(); 
    202256    } 
     257    void palikkaAjastin(Double _aika) 
     258    { 
     259        Timer.SingleShot(_aika, delegate { 
     260            luopalikka(); 
     261            if(ajastinNopeus > 0.139) 
     262            ajastinNopeus -= 0.019; 
     263            //MessageDisplay.Add(ajastinNopeus.ToString()); 
     264            palikkaAjastin(ajastinNopeus); 
     265        }); 
     266    } 
    203267} 
Note: See TracChangeset for help on using the changeset viewer.