source: 2013/42/MattiR/ForeverAlone/ForeverAlone/ForeverAlone/ForeverAlone.cs @ 4781

Revision 4781, 5.8 KB checked in by anlakane, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class ForeverAlone : PhysicsGame
10{
11    Image playerkuva = LoadImage("foreveralone");
12    Image enemykuva = LoadImage("rageface");
13    Image tahtiKuva = LoadImage("tahti");
14    Image trollikuva = LoadImage("trollface");
15    double nopeus = 1500;
16    PhysicsObject player;
17    IntMeter Laskuri;
18    const int RUUDUN_KOKO = 60;
19    public override void Begin()
20    {
21        LevelCreate();
22        AsetaOhjaimet();
23    }
24
25    void LisaaTaso(Vector paikka, double leveys, double korkeus)
26    {
27        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
28        taso.Position = paikka;
29        taso.Color = Color.BloodRed;
30        taso.Tag = "taso";
31        //AddCollisionHandler(player, "taso", TormaaTasoon);
32        Add(taso);
33    }
34    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
35    {
36        //maaliAani.Play();
37        MessageDisplay.Add("You collected a star!");
38        Laskuri.Value += 1;
39        if (Laskuri.Value == 50)
40        {
41            MessageDisplay.Add("YOU WON!!!!!!!!!!!!");
42        }
43        tahti.Destroy();
44
45    }
46    void TormaaTasoon(PhysicsObject player, PhysicsObject taso)
47    {
48
49
50
51    }
52    void LisaaTahti(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        tahti.IgnoresCollisionResponse = true;
56        tahti.Position = paikka;
57        tahti.Image = tahtiKuva;
58        tahti.Tag = "tahti";
59        Add(tahti);
60    }
61    IntMeter PisteLaskuri()
62    {
63        IntMeter Laskuri = new IntMeter(0);
64        Label naytto = new Label();
65        naytto.BindTo(Laskuri);
66        naytto.X = -500;
67        naytto.Y = 500;
68        naytto.TextColor = Color.Black;
69
70        Add(naytto);
71        return Laskuri;
72    }
73    void LevelCreate()
74    {
75        player = new PhysicsObject(40.0, 40.0);
76        AddCollisionHandler(player, "tahti", TormaaTahteen);
77        player.LinearDamping = 0.2;
78        AddCollisionHandler(player, "enemy", CollisionHandler.DestroyObject);
79        AddCollisionHandler(player, "enemy", TormaaVihollinen);
80        AddCollisionHandler(player, "enemy2", TormaaTrolli);
81
82        Add(player);
83        player.X = 20;
84        player.Y = 200;
85        player.Image = playerkuva;
86        Level.Background.Color = Color.Green;
87        TileMap kentta = TileMap.FromLevelAsset("kentta1");
88        kentta.SetTileMethod('#', LisaaTaso);
89        kentta.SetTileMethod('*', LisaaTahti);
90        kentta.SetTileMethod('E', LisaaVihollinen);
91        kentta.SetTileMethod('T', LisaaTrolli);
92        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
93        Laskuri = PisteLaskuri();
94        Level.CreateBorders();
95
96    }
97
98
99
100    void TormaaVihollinen(PhysicsObject hahmo, PhysicsObject enemy)
101    {
102        MessageDisplay.Add("You Lost. Try Again. (Requires to restart progmam)");
103    }
104
105    void TormaaTrolli(PhysicsObject hahmo, PhysicsObject enemy2)
106    {
107        MessageDisplay.Add("Trolololololol...");
108    }
109    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
110    {
111        PhysicsObject enemy = new PhysicsObject(50.0, 40.0);
112        enemy.Image = enemykuva;
113        enemy.Tag = "enemy";
114        enemy.LinearDamping = 0.2;
115        enemy.Position = paikka;
116        Add(enemy);
117        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(1500);
118        enemy.Brain = satunnaisAivot;
119    }
120    void LisaaTrolli(Vector paikka, double leveys, double korkeus)
121    {
122        PhysicsObject enemy2 = new PhysicsObject(50.0, 40.0);
123        enemy2.Image = trollikuva;
124        enemy2.Tag = "enemy2";
125        enemy2.LinearDamping = 0.2;
126        enemy2.Position = paikka;
127        Add(enemy2);
128        FollowerBrain seuraajanAivot = new FollowerBrain(player);
129        enemy2.Brain = seuraajanAivot;
130        seuraajanAivot.Speed = 800;
131
132    }
133
134
135    void AsetaOhjaimet()
136    {
137        Vector nopeusYlos = new Vector(0, nopeus);
138        Vector nopeusAlas = new Vector(0, -nopeus);
139        Vector nopeusOikea = new Vector(nopeus, 0);
140        Vector nopeusVasen = new Vector(-nopeus, 0);
141
142        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, player, nopeusYlos);
143        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, player, Vector.Zero);
144        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, player, nopeusAlas);
145        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, player, Vector.Zero);
146
147        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, player, nopeusVasen);
148        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, player, Vector.Zero);
149        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, player, nopeusOikea);
150        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, player, Vector.Zero);
151
152
153        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
154
155    }
156
157    void AsetaNopeus(PhysicsObject player, Vector nopeus)
158    {
159        if ((nopeus.Y < 0) && (player.Bottom < Level.Bottom))
160        {
161            player.Velocity = Vector.Zero;
162            return;
163        }
164        if ((nopeus.Y > 0) && (player.Top > Level.Top))
165        {
166            player.Velocity = Vector.Zero;
167            return;
168        }
169        if ((nopeus.X > 0) && (player.Right > Level.Right))
170        {
171            player.Velocity = Vector.Zero;
172            return;
173        }
174        if ((nopeus.X < 0) && (player.Left < Level.Left))
175        {
176            player.Velocity = Vector.Zero;
177            return;
178        }
179        player.Velocity = nopeus;
180    }
181}
182
Note: See TracBrowser for help on using the repository browser.