source: 2011/23/tojukarp/EuroPacman/EuroPacman/EuroPacman/Peli.cs @ 1842

Revision 1842, 2.8 KB checked in by tojukarp, 8 years ago (diff)

EuroPacman?

RevLine 
[1842]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    Image[] pacKuvat = LoadImages("pac1", "pac2", "pac3", "pac4", "pac5");
12    Image esKuva = LoadImage("es");
13
14    const double maxPurkkeja = 10;
15    double purkkejaKentalla = 0;
16
17    IntMeter esCounter = new IntMeter(0);
18
19    public override void Begin()
20    {
21        Level.BackgroundColor = Color.LightPink;
22        Level.Width = 600;
23        Level.Height = 800;
24        Level.CreateBorders();
25        Camera.ZoomToLevel();
26
27        CrazyObject pacman = new CrazyObject(64, 64, 0);
28        pacman.Animation = new Animation(pacKuvat);
29        pacman.Animation.FPS = 20;
30        pacman.Animation.Start();
31        pacman.Mass = 1.0;
32        Add(pacman);
33
34        Timer esTimer = new Timer();
35        esTimer.Interval = 2.0;
36        esTimer.Trigger += new Timer.TriggerHandler(spawnES);
37        esTimer.Start();
38
39        Label pisteNaytto = new Label();
40        pisteNaytto.TextColor = Color.Yellow;
41        pisteNaytto.Left = Screen.Left + 20;
42        pisteNaytto.Top = Screen.Top - 30;
43        pisteNaytto.BindTo(esCounter);
44        Add(pisteNaytto);
45
46        Keyboard.Listen(Key.Left, ButtonState.Down, Liiku, null, pacman, -30 * Vector.UnitX);
47        Keyboard.Listen(Key.Right, ButtonState.Down, Liiku, null, pacman, 30 * Vector.UnitX);
48        Keyboard.Listen(Key.Up, ButtonState.Down, Liiku, null, pacman, 30 * Vector.UnitY);
49        Keyboard.Listen(Key.Down, ButtonState.Down, Liiku, null, pacman, -30 * Vector.UnitY);
50
51        AddCollisionHandler(pacman, PacmanTormaa);
52    }
53
54    void Liiku(PhysicsObject olio, Vector liike)
55    {
56        olio.Angle = liike.Angle;
57        //olio.Move(liike);
58        olio.Hit(liike * olio.Mass);
59    }
60
61    void spawnES(Timer sender)
62    {
63        if (purkkejaKentalla >= maxPurkkeja) return;
64
65        CrazyObject purkki = new CrazyObject(10, 30, 1);
66        purkki.IgnoresCollisionResponse = true;
67        purkki.Image = esKuva;
68        purkki.Animation.FPS = 20;
69        purkki.Animation.Start();
70        purkki.X = RandomGen.NextDouble(Level.Left, Level.Right);
71        purkki.Y = RandomGen.NextDouble(Level.Bottom, Level.Top);
72        Add(purkki);
73   }
74
75    void PacmanTormaa(PhysicsObject tormaaja, PhysicsObject kohde)
76    {
77        if (tormaaja is CrazyObject && kohde is CrazyObject)
78        {
79            ((CrazyObject)tormaaja).Vibration += ((CrazyObject)kohde).Vibration;
80            kohde.Destroy();
81            esCounter.Value++;
82        }
83        else
84        {
85            Explosion paukku = new Explosion(tormaaja.Width);
86            paukku.Position = tormaaja.Position;
87            Add(paukku);
88            tormaaja.Destroy();
89        }
90    }
91}
Note: See TracBrowser for help on using the repository browser.