Changeset 2533 for 2011/31


Ignore:
Timestamp:
2011-08-03 14:56:13 (8 years ago)
Author:
almarimp
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/AleksiR/OmaPeli/OmaPeli/OmaPeli/Peli.cs

    r2501 r2533  
    77using Jypeli.Widgets; 
    88 
    9 public class Peli : PhysicsGame 
     9public class Peli :PhysicsGame 
    1010{ 
    1111    PhysicsObject Alus1; 
     
    1616    LaserGun pyssy; 
    1717    LaserGun pyssy2; 
     18    IntMeter pisteLaskuri1; 
     19    IntMeter pisteLaskuri2; 
    1820 
    1921 
     
    2123    public override void Begin() 
    2224    { 
    23         Nappaimet(); 
    24  
     25        AloitaPeli(); 
     26    } 
     27 
     28 void AloitaPeli() 
     29        { 
     30 
     31            ClearAll(); 
     32 
     33            Nappaimet(); 
     34            LuoAlus1(); 
     35            LuoAlus2(); 
     36            LuoLaskuri1(); 
     37            LuoLaskuri2(); 
     38            LuoKentta(); 
     39            LuoTahdet(); 
     40 
     41            FollowerBrain aly1 = new FollowerBrain(); 
     42            aly1.Target = Alus1; 
     43            aly1.FollowAlways = true; 
     44            aly1.TargetFollowDistance = 750; 
     45            aly1.Speed = 50; 
     46 
     47            FollowerBrain aly2 = new FollowerBrain(); 
     48            aly2.Target = Alus2; 
     49            aly2.FollowAlways = true; 
     50            aly2.TargetFollowDistance = 500; 
     51            aly2.Speed = 50; 
     52 
     53            tahti1 = new PhysicsObject(25, 25); 
     54            tahti1.Shape = Shape.Star; 
     55            tahti1.Color = Color.Yellow; 
     56            tahti1.Y = -300; 
     57            tahti1.X = -100; 
     58            tahti1.Brain = aly1; 
     59            tahti1.Tag = "Tähti"; 
     60            tahti1.IgnoresCollisionResponse = true; 
     61 
     62            Add(tahti1); 
     63 
     64            tahti2 = new PhysicsObject(25, 25); 
     65            tahti2.Shape = Shape.Star; 
     66            tahti2.Color = Color.Yellow; 
     67            tahti2.Y = -300; 
     68            tahti2.X = 100; 
     69            tahti2.Brain = aly2; 
     70            tahti2.Tag = "Tähti"; 
     71            tahti2.IgnoresCollisionResponse = true; 
     72 
     73            Add(tahti2); 
     74 
     75        } 
     76 
     77 void LuoKentta() 
     78 { 
     79     Level.CreateBorders(1.0, false); 
     80     Level.BackgroundColor = Color.Black; 
     81     Level.Background.CreateStars(); 
     82     Level.Background.FitToLevel(); 
     83 
     84     Gravity = new Vector(0, -100); 
     85 
     86     IsFullScreen = true; 
     87     Camera.ZoomToLevel(); 
     88 } 
     89 
     90 void LuoTahdet() 
     91 { 
     92     int i = 0; 
     93 
     94     while (i < 2) 
     95     { 
     96         LuoUusiTahti(); 
     97         i++; 
     98     } 
     99 
     100 } 
     101 
     102    void LuoAlus1() 
     103    { 
    25104        Alus1 = new PhysicsObject(10, 30); 
    26105        Alus1.Shape = Shape.Triangle; 
    27106        Alus1.Color = Color.DarkRed; 
    28         Alus1.CanRotate = true; 
     107        Alus1.CanRotate = false; 
     108        Alus1.IgnoresExplosions = true; 
    29109        Alus1.X = -250; 
     110        Alus1.Tag = "Alus1"; 
    30111        Add(Alus1); 
    31112 
     113        pyssy = new LaserGun(20, 5); 
     114        pyssy.Angle += Angle.FromDegrees(90); 
     115        pyssy.Shoot(); 
     116        pyssy.LaserCollision = LaserOsuu; 
     117        pyssy.AmmoIgnoresGravity = false; 
     118        pyssy.InfiniteAmmo = true; 
     119        pyssy.MaxAmmoLifetime = TimeSpan.MaxValue;  
     120        Alus1.Add(pyssy); 
     121    } 
     122 
     123    void LuoAlus2() 
     124    { 
    32125        Alus2 = new PhysicsObject(10, 30); 
    33126        Alus2.Shape = Shape.Triangle; 
    34127        Alus2.Color = Color.ForestGreen; 
    35         Alus2.CanRotate = true; 
     128        Alus2.CanRotate = false; 
     129        Alus2.IgnoresExplosions = true; 
    36130        Alus2.X = 250; 
     131        Alus2.Tag = "Alus2"; 
    37132        Add(Alus2); 
    38133 
    39         pyssy = new LaserGun(20, 5); 
    40         Alus1.Add(pyssy); 
     134 
    41135        pyssy2 = new LaserGun(20, 5); 
     136        pyssy2.Angle += Angle.FromDegrees(90); 
     137        pyssy2.Shoot(); 
     138        pyssy2.MaxAmmoLifetime = TimeSpan.MaxValue; 
     139        pyssy2.LaserCollision = Laser2Osuu; 
     140        pyssy2.AmmoIgnoresGravity = false; 
     141        pyssy2.InfiniteAmmo = true; 
    42142        Alus2.Add(pyssy2); 
    43  
    44         pyssy.Angle += Angle.FromDegrees(90); 
    45         pyssy2.Angle += Angle.FromDegrees(90); 
    46  
    47         pyssy.Shoot(); 
    48         pyssy2.Shoot(); 
    49  
    50         pyssy.LaserCollision = LaserOsuu; 
    51         pyssy2.LaserCollision = LaserOsuu; 
    52  
    53  
    54         FollowerBrain aly1 = new FollowerBrain(); 
    55         aly1.Target = Alus1; 
    56         aly1.FollowAlways = false; 
    57         aly1.TargetFollowDistance = 750; 
    58         aly1.Speed = 50; 
    59  
    60         FollowerBrain aly2 = new FollowerBrain(); 
    61         aly2.Target = Alus2; 
    62         aly2.FollowAlways = false; 
    63         aly2.TargetFollowDistance = 500; 
    64         aly2.Speed = 50; 
    65  
    66         tahti1 = new PhysicsObject(25, 25); 
    67         tahti1.Shape = Shape.Star; 
    68         tahti1.Color = Color.Yellow; 
    69         tahti1.Y = -300; 
    70         tahti1.X = -100; 
    71         tahti1.Brain = aly1; 
    72         Add(tahti1); 
    73  
    74         tahti2 = new PhysicsObject(25, 25); 
    75         tahti2.Shape = Shape.Star; 
    76         tahti2.Color = Color.Yellow; 
    77         tahti2.Y = -300; 
    78         tahti2.X = 100; 
    79         tahti2.Brain = aly2; 
    80         Add(tahti2); 
    81  
    82         Level.CreateBorders(1.0, false); 
    83         Level.BackgroundColor = Color.Black; 
    84  
    85         IsFullScreen = true; 
    86         Camera.ZoomToLevel(); 
    87  
    88         int i = 0; 
    89  
    90         while (i < 2) 
    91         { 
    92             LuoUusiTahti(); 
    93             i++; 
    94         } 
    95143    } 
    96144 
     
    100148 
    101149        Keyboard.Listen(Key.Left, ButtonState.Down, 
    102            LiikutaPelaajaa1, null, new Vector(-100, 0)); 
     150           LiikutaPelaajaa1, null, new Vector(-500, 0)); 
    103151        Keyboard.Listen(Key.Right, ButtonState.Down, 
    104           LiikutaPelaajaa1, null, new Vector(100, 0)); 
     152          LiikutaPelaajaa1, null, new Vector(500, 0)); 
    105153        Keyboard.Listen(Key.Up, ButtonState.Down, 
    106           LiikutaPelaajaa1, null, new Vector(0, 100)); 
     154          LiikutaPelaajaa1, null, new Vector(0, 500)); 
    107155        Keyboard.Listen(Key.Down, ButtonState.Down, 
    108           LiikutaPelaajaa1, null, new Vector(0, -100)); 
     156          LiikutaPelaajaa1, null, new Vector(0, -500)); 
    109157 
    110158        Keyboard.Listen(Key.A, ButtonState.Down, 
    111            LiikutaPelaajaa2, null, new Vector(-100, 0)); 
     159           LiikutaPelaajaa2, null, new Vector(-500, 0)); 
    112160        Keyboard.Listen(Key.D, ButtonState.Down, 
    113           LiikutaPelaajaa2, null, new Vector(100, 0)); 
     161          LiikutaPelaajaa2, null, new Vector(500, 0)); 
    114162        Keyboard.Listen(Key.W, ButtonState.Down, 
    115           LiikutaPelaajaa2, null, new Vector(0, 100)); 
     163          LiikutaPelaajaa2, null, new Vector(0, 500)); 
    116164        Keyboard.Listen(Key.S, ButtonState.Down, 
    117           LiikutaPelaajaa2, null, new Vector(0, -100)); 
    118  
    119         Keyboard.Listen(Key.Space, ButtonState.Pressed, Ampuu, null); 
    120         Keyboard.Listen(Key.Tab, ButtonState.Pressed, Ampuu2, null); 
     165          LiikutaPelaajaa2, null, new Vector(0, -500)); 
     166 
     167        Keyboard.Listen(Key.Space, ButtonState.Down, Ampuu, null); 
     168        Keyboard.Listen(Key.Tab, ButtonState.Down, Ampuu2, null); 
    121169 
    122170    } 
     
    161209        tahti = new PhysicsObject(30, 30); 
    162210        tahti.Shape = Shape.Star; 
    163         tahti.Color = Color.Yellow; 
     211        tahti.Color = RandomGen.NextColor(); 
    164212        tahti.Y = RandomGen.NextDouble(-400, 400); 
    165213        tahti.X = RandomGen.NextDouble(-400, 400); 
    166214        tahti.Brain = aly; 
    167  
     215        tahti.Tag = "Tähti"; 
     216        tahti.IgnoresGravity = true; 
     217        tahti.Restitution = 10; 
     218        AddCollisionHandler(tahti,tahtiTormasi); 
    168219        Add(tahti); 
    169220    } 
     221     
     222 
     223    void LuoLaskuri1() 
     224    { 
     225        pisteLaskuri1 = new IntMeter(0); 
     226        pisteLaskuri1.MaxValue = 1000; 
     227        pisteLaskuri1.UpperLimit += Laskuri1Max; 
     228 
     229        Label pisteNaytto = new Label(); 
     230        pisteNaytto.X = Screen.Left + 100; 
     231        pisteNaytto.Y = Screen.Top - 100; 
     232        pisteNaytto.TextColor = Color.Red; 
     233 
     234        pisteNaytto.BindTo(pisteLaskuri1); 
     235        Add(pisteNaytto); 
     236 
     237        Label pisteTeksti = new Label("Pisteitä: "); 
     238        pisteTeksti.X = Screen.Left + 50; 
     239        pisteTeksti.Y = Screen.Top - 100; 
     240        pisteTeksti.TextColor = Color.Red; 
     241        Add(pisteTeksti); 
     242    } 
     243 
     244    void LuoLaskuri2() 
     245    { 
     246        pisteLaskuri2 = new IntMeter(0); 
     247        pisteLaskuri2.MaxValue = 1000; 
     248        pisteLaskuri2.UpperLimit += Laskuri2Max; 
     249 
     250        Label pisteNaytto2 = new Label(); 
     251        pisteNaytto2.X = Screen.Right -100; 
     252        pisteNaytto2.Y = Screen.Top - 100; 
     253        pisteNaytto2.TextColor = Color.Maroon; 
     254 
     255        pisteNaytto2.BindTo(pisteLaskuri2); 
     256        Add(pisteNaytto2); 
     257 
     258        Label pisteTeksti2 = new Label("Pisteitä: "); 
     259        pisteTeksti2.X = Screen.Right - 150; 
     260        pisteTeksti2.Y = Screen.Top - 100; 
     261        pisteTeksti2.TextColor = Color.GreenYellow; 
     262        Add(pisteTeksti2); 
     263    } 
     264 
    170265 
    171266    void LaserOsuu(PhysicsObject ammus, PhysicsObject kohde) 
    172267    { 
    173         ammus.Destroy(); 
    174         Explosion rajahdys = new Explosion(10); 
     268        Explosion rajahdys = new Explosion(5); 
    175269        rajahdys.Position = ammus.Position; 
    176270        Add(rajahdys); 
    177  
    178     } 
     271        ammus.Destroy(); 
     272 
     273        if (kohde.Tag.ToString() == "Tähti") 
     274        { 
     275            ammus.Destroy(); 
     276            kohde.Destroy(); 
     277            LuoUusiTahti(); 
     278            pisteLaskuri1.Value += 10; 
     279 
     280        } 
     281        if (kohde.Tag.ToString() == "Alus2") 
     282        { 
     283            ammus.Destroy(); 
     284            pisteLaskuri2.Value -= 10; 
     285        } 
     286 
     287    } 
     288 
     289    void Laser2Osuu(PhysicsObject ammus, PhysicsObject kohde) 
     290    { 
     291        Explosion rajahdys = new Explosion(2.5); 
     292        rajahdys.Position = ammus.Position; 
     293        Add(rajahdys); 
     294        ammus.Destroy(); 
     295 
     296        if (kohde.Tag.ToString() == "Tähti") 
     297        { 
     298            ammus.Destroy(); 
     299            kohde.Destroy(); 
     300            LuoUusiTahti(); 
     301            pisteLaskuri2.Value += 10; 
     302 
     303        } 
     304 
     305        if (kohde.Tag.ToString() == "Alus1") 
     306        { 
     307            ammus.Destroy(); 
     308            pisteLaskuri1.Value -= 10; 
     309        } 
     310 
     311    } 
     312 
     313 
     314    void tahtiTormasi(PhysicsObject tahti, PhysicsObject kohde) 
     315        { 
     316            if (kohde.Tag.ToString() == "Alus2") 
     317            { 
     318                tahti.Destroy(); 
     319                pisteLaskuri2.Value -= 30; 
     320                LuoUusiTahti(); 
     321            } 
     322 
     323            if (kohde.Tag.ToString() == "Alus1") 
     324            { 
     325                tahti.Destroy(); 
     326                pisteLaskuri1.Value -= 30; 
     327                LuoUusiTahti(); 
     328            } 
     329 
     330        } 
     331 
     332 
     333    void Laskuri1Max(int arvo) 
     334    { 
     335        MessageDisplay.TextColor = Color.Fuchsia; 
     336        MessageDisplay.Add("Pelaaja 1 voitti pelin. Uusi peli alkaa 5 sekunnin kuluttua."); 
     337        Alus1.Destroy(); 
     338        Alus2.Destroy(); 
     339        Timer.SingleShot(5.0, ajastinLaukesi); 
     340    } 
     341 
     342    void Laskuri2Max(int arvo) 
     343    { 
     344        MessageDisplay.TextColor = Color.Aqua; 
     345        MessageDisplay.Add("Pelaaja 2 voitti pelin. Uusi peli alkaa 5 sekunnin kuluttua."); 
     346        Alus1.Destroy();  
     347        Alus2.Destroy(); 
     348        Timer.SingleShot(5.0, ajastinLaukesi); 
     349    } 
     350 
     351    void ajastinLaukesi() 
     352    { 
     353        ClearAll(); 
     354        AloitaPeli(); 
     355    } 
     356 
    179357} 
Note: See TracChangeset for help on using the changeset viewer.