source: 2017/koodauskerho/mastermijari/Seikkailu/Seikkailu/Seikkailu/Seikkailu.cs @ 9478

Revision 9478, 5.1 KB checked in by mianhayr, 19 months 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 Seikkailu : PhysicsGame
10{
11    Image pelaajankuva = LoadImage("ihminen");
12    PhysicsObject pelaaja;
13
14    Image hirvionkuva = LoadImage("hirvio");
15    PhysicsObject hirvio;
16
17
18    Image pelaajan2kuva = LoadImage("ihminen2");
19    PhysicsObject pelaaja2;
20
21    Image puunkuva = LoadImage("puuu");
22    PhysicsObject puu;
23    PhysicsObject HirvioSpawn;
24    public override void Begin()
25    {
26        // TODO: Kirjoita ohjelmakoodisi tähän
27
28        Level.Background.Color = Color.DarkJungleGreen;
29
30
31        TileMap ruudut = TileMap.FromLevelAsset("kentta");
32        ruudut.SetTileMethod('#', LuoPalikka);
33        ruudut.SetTileMethod('K', LuoKivi);
34        ruudut.SetTileMethod('P', LuoPelaaja);
35        ruudut.SetTileMethod('2', LuoPelaaja2);
36        ruudut.SetTileMethod('L', LuoPuu);
37        ruudut.SetTileMethod('H', LuoHirvioSpawn);
38        ruudut.Execute(20, 20);
39
40        Timer ajastin = new Timer();
41        ajastin.Interval = 3.0;
42        ajastin.Timeout += LisaaHirvio;
43        ajastin.Start();
44
45
46        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
47        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
48    }
49
50    private void LuoHirvioSpawn(Vector paikka, double leveys, double korkeus )
51    {
52        HirvioSpawn = PhysicsObject.CreateStaticObject(leveys, korkeus);
53        HirvioSpawn.Color = Color.AshGray;
54        HirvioSpawn.Position = paikka;
55    }
56
57    void LuoPalikka(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        palikka.Position = paikka;
61        palikka.Shape = Shape.Rectangle;
62        palikka.Color = Color.AshGray;
63        Add(palikka);
64    }
65    void LuoKivi(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        kivi.Position = paikka;
69        kivi.Shape = Shape.Rectangle;
70        kivi.Color = Color.LightGray;
71        Add(kivi);
72    }
73    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
74    {
75        pelaaja = new PhysicsObject(leveys + 30, korkeus + 10);
76        pelaaja.Shape = Shape.Rectangle;
77        pelaaja.Color = Color.DarkBlue;
78        pelaaja.Position = paikka;
79        pelaaja.Image = pelaajankuva;
80        pelaaja.LinearDamping = 0.8; 
81        pelaaja.CanRotate = false;
82
83        Add(pelaaja);
84
85        Keyboard.Listen(Key.A, ButtonState.Down,
86            LiikutaPelaajaa, null, new Vector(-50, 0));
87        Keyboard.Listen(Key.D, ButtonState.Down,
88           LiikutaPelaajaa, null, new Vector(50, 0));
89        Keyboard.Listen(Key.W, ButtonState.Down,
90           LiikutaPelaajaa, null, new Vector(0, 50));
91        Keyboard.Listen(Key.S, ButtonState.Down,
92           LiikutaPelaajaa, null, new Vector(0, -50));
93
94
95
96
97    }
98    void LiikutaPelaajaa(Vector vectori)
99    {
100        pelaaja.Hit(vectori);
101        pelaaja.Angle = vectori.Angle - Angle.FromDegrees(-90);
102    }
103    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
104    {
105        pelaaja2 = new PhysicsObject(leveys + 30, korkeus + 10);
106        pelaaja2.Shape = Shape.Rectangle;
107        pelaaja2.Color = Color.DarkBlue;
108        pelaaja2.Position = paikka;
109        pelaaja2.Image = pelaajan2kuva;
110        pelaaja2.LinearDamping = 0.8;
111        pelaaja2.CanRotate = false;
112        Add(pelaaja2);
113
114
115
116        Keyboard.Listen(Key.Left, ButtonState.Down,
117            LiikutaPelaajaa2, null, new Vector(-50, 0));
118        Keyboard.Listen(Key.Right, ButtonState.Down,
119           LiikutaPelaajaa2, null, new Vector(50, 0));
120        Keyboard.Listen(Key.Up, ButtonState.Down,
121           LiikutaPelaajaa2, null, new Vector(0, 50));
122        Keyboard.Listen(Key.Down, ButtonState.Down,
123           LiikutaPelaajaa2, null, new Vector(0, -50));
124
125
126
127    }
128    void LiikutaPelaajaa2(Vector vectori)
129    {
130        pelaaja2.Hit(vectori);
131        pelaaja2.Angle = vectori.Angle - Angle.FromDegrees(-90);
132    }
133    void LuoPuu(Vector paikka, double leveys, double korkeus)
134    {
135        PhysicsObject puu = PhysicsObject.CreateStaticObject(leveys + 50, korkeus + 150, Shape.FromImage(puunkuva));
136        puu.IgnoresCollisionResponse = true;
137        puu.Position = paikka;
138        puu.Image = puunkuva;
139        Add(puu,2);
140    }
141    void LisaaHirvio()
142    {
143        PhysicsObject hirvio = new PhysicsObject(30, 30);
144        hirvio.Position = HirvioSpawn.Position;
145        hirvio.Shape = Shape.FromImage(hirvionkuva);
146        hirvio.Image = hirvionkuva;
147        hirvio.CanRotate = true;
148        Add(hirvio);
149        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja, pelaaja2);
150        seuraajanAivot.Speed = 50;           
151     //   seuraajanAivot.DistanceFar = 60;         
152     //   seuraajanAivot.DistanceClose = 50;         
153       // seuraajanAivot.StopWhenTargetClose = true;
154        hirvio.Brain = seuraajanAivot;
155    }
156}
Note: See TracBrowser for help on using the repository browser.