source: 2015/27/AakeR/IMBT/IMBT/IMBT/IMBT.cs @ 6606

Revision 6606, 5.3 KB checked in by misakana, 5 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 Pelaaja : PhysicsObject
10{
11    public IntMeter healthit;
12
13    public AssaultRifle Ase;
14   
15    public Pelaaja(double leveys, double korkeus, Image pelaajanKuva, Image tykkiTorninKuva) : base(leveys, korkeus)
16    {
17        this.Image = pelaajanKuva;
18        this.healthit = new IntMeter(100, 0, 100);
19        this.LinearDamping = 0.95;
20
21        this.Ase = new AssaultRifle(30, 30);
22        this.Ase.Image = tykkiTorninKuva;
23        this.Add(this.Ase);
24    }
25   
26
27}
28public class IMBT : PhysicsGame
29{
30
31    Image Pelaaja1Kone1 = LoadImage("Pelaaja1Kone1");
32    Image Pelaaja2Kone1 = LoadImage("Pelaaja2Kone1");
33    Image Pelaaja3Kone1 = LoadImage("Pelaaja3Kone1");
34    Image Pelaaja4Kone1 = LoadImage("Pelaaja4Kone1");
35    Image Palikka = LoadImage("Palikka");
36    Image PieniPalikka = LoadImage("PieniPalikka");
37    Image Pelaaja4Kone1Tykki = LoadImage("Pelaaja4Kone1Tykki");
38    Image Pelaaja3Kone1Tykki = LoadImage("Pelaaja3Kone1Tykki");
39    Image Pelaaja2Kone1Tykki = LoadImage("Pelaaja2Kone1Tykki");
40    Image Pelaaja1Kone1Tykki = LoadImage("Pelaaja1Kone1Tykki");
41    Pelaaja pelaaja1;
42    double maxNopeus = 1000.0;
43
44    public override void Begin()
45    {
46
47
48        LuoKentta();
49        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
50        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
51    }
52    void LuoKentta()
53    {
54
55        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä1");
56
57       
58        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja1);
59        ruudut.SetTileMethod(Color.Cyan, LuoPelaaja2);
60        ruudut.SetTileMethod(Color.BrightGreen, LuoPelaaja3);
61        ruudut.SetTileMethod(Color.Rose, LuoPelaaja4);
62        ruudut.SetTileMethod(Color.Black, LuoPalikka);
63        ruudut.SetTileMethod(Color.Red, LuoPieniPalikka);
64        Level.Background.Color = Color.Silver;
65       
66        ruudut.Execute(80, 80);
67        Camera.ZoomToLevel();
68    }
69
70    void LuoPelaaja1(Vector paikka, double leveys, double korkeus)
71    {
72        pelaaja1 = new Pelaaja(leveys * 0.8, korkeus * 0.8, Pelaaja1Kone1, Pelaaja1Kone1Tykki);
73        pelaaja1.AngularDamping = 0.95;
74        pelaaja1.Position = paikka;
75        ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaPelaajaa, "", pelaaja1);
76        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaTykkia, "", pelaaja1);
77        ControllerOne.Listen(Button.RightShoulder, ButtonState.Pressed, Ammu, "", pelaaja1);
78        Add(pelaaja1);
79    }
80
81    void LuoPalikka(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        palikka.Shape = Shape.Rectangle;
85        palikka.Position = paikka;
86        palikka.Image = Palikka;
87        Add(palikka);
88    }
89
90    void LuoPieniPalikka(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject pienipalikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
93        pienipalikka.Shape = Shape.Rectangle;
94        pienipalikka.Position = paikka;
95        pienipalikka.Image = PieniPalikka;
96        Add(pienipalikka);
97    }
98
99    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
100    {
101        Pelaaja pelaaja2 = new Pelaaja(leveys * 0.8, korkeus * 0.8, Pelaaja2Kone1, Pelaaja2Kone1Tykki);
102        pelaaja2.AngularDamping = 0.1;
103        pelaaja2.Position = paikka;
104        ControllerTwo.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaPelaajaa, "", pelaaja2);
105        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaTykkia, "", pelaaja2);
106        Add(pelaaja2);
107    }
108
109    void LuoPelaaja3(Vector paikka, double leveys, double korkeus)
110    {
111        Pelaaja pelaaja3 = new Pelaaja(leveys * 0.8, korkeus * 0.8, Pelaaja3Kone1, Pelaaja3Kone1Tykki);
112        pelaaja3.AngularDamping = 0.95;
113        pelaaja3.Position = paikka;
114        ControllerThree.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaPelaajaa, "", pelaaja3);
115        ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaTykkia, "", pelaaja3);
116        Add(pelaaja3);
117    }
118
119    void LuoPelaaja4(Vector paikka, double leveys, double korkeus)
120    {
121        Pelaaja pelaaja4 = new Pelaaja(leveys * 0.8, korkeus *0.8, Pelaaja4Kone1, Pelaaja4Kone1Tykki);
122        pelaaja4.AngularDamping = 0.95;
123        pelaaja4.Position = paikka;
124        ControllerFour.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaPelaajaa, "", pelaaja4);
125        ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaTykkia, "", pelaaja4);
126        Add(pelaaja4);
127    }
128
129
130    void LiikutaPelaajaa(Vector vektori, PhysicsObject pelaaja)
131    {
132        pelaaja.Push(vektori);
133    }
134
135    void KaannaPelaajaa(AnalogState tatinTila, Pelaaja pelaaja)
136    {
137        Angle vanhaKulma = pelaaja.Angle;
138        pelaaja.Angle = tatinTila.StateVector.Angle;
139        pelaaja.Ase.Angle -= pelaaja.Angle - vanhaKulma;
140
141        pelaaja.Push(tatinTila.StateVector * maxNopeus);
142
143    }
144
145    void KaannaTykkia(AnalogState tatinTila, Pelaaja pelaaja)
146    {
147        pelaaja.Ase.AbsoluteAngle = tatinTila.StateVector.Angle;
148    }
149
150    void Ammu(Pelaaja pelaaja)
151    {
152
153    }
154}
Note: See TracBrowser for help on using the repository browser.