source: 2015/27/JesseS/VoltsTank/VoltsTank/VoltsTank/VoltsTank.cs @ 6724

Revision 6724, 5.0 KB checked in by jesirkia, 4 years ago (diff)

Tehtiin VoltsTankiin? beta. 0.2 versio :'D
Elikkäs siis tehtiin (vielä toimimaton) valikko josta voi valita pelaako vai lopettaako. Sitten tehtiin tankin tekstuurit peliin.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class VoltsTank : PhysicsGame
10{
11    AssaultRifle pelaajan1Ase;
12    AssaultRifle pelaajan2Ase;
13    PhysicsObject pelaaja1;
14    PhysicsObject pelaaja2;
15
16    DoubleMeter pelaajan1Health;
17    DoubleMeter pelaajan2Health;
18
19    Image ammuksenKuva = LoadImage("Ammus");
20
21    Image pelaaja1tank = LoadImage("pelaaja1tank");
22    Image pelaaja2tank = LoadImage("pelaaja2tank");
23
24    double maxNopeus = 1500.0;
25
26    public override void Begin()
27    {
28        IsFullScreen = true;
29
30        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Quit game");
31        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Quit game");
32
33        //Grenade kranaatti = new Grenade(4.0);
34
35        LuoPelaaja1();
36        LuoPelaaja2();
37
38        MultiSelectWindow alkuValikko = new MultiSelectWindow("VoltsTank",
39"Play", "Quit game");
40        Add(alkuValikko);
41
42        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1,
43  LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.", pelaaja1);
44
45        ControllerOne.ListenAnalog(AnalogControl.RightTrigger, 0.1,
46        AmmuTykilla, "Käytä oikeaa liipasinta ampumisen tavoin.", pelaaja1);
47
48        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1,
49    LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.", pelaaja2);
50
51        ControllerTwo.ListenAnalog(AnalogControl.RightTrigger, 0.1,
52        AmmuTykilla, "Käytä oikeaa liipasinta ampumisen tavoin.", pelaaja2);
53
54        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
55        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
56        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan2Ase);
57        ControllerTwo.Listen(Button.LeftTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan2Ase);
58
59        //ControllerTwo.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan2Ase);
60        //ControllerTwo.Listen(Button.LeftTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaajan2Ase);
61    }
62    void LiikutaPelaajaa(AnalogState tatinTila, PhysicsObject pelaaja)
63    {
64        pelaaja.Angle = tatinTila.StateVector.Angle;
65        pelaaja.Move(tatinTila.StateVector * maxNopeus);
66
67    }
68    void AmmuTykilla(AnalogState liipasimenTila, PhysicsObject pelaaja)
69    {
70        double liipasimenAsento = liipasimenTila.State;
71    }
72    void LuoPelaaja1()
73    {
74     
75        pelaaja1 = new PhysicsObject(40, 40);
76        pelaaja1.LinearDamping = 0.1;
77        pelaaja1.AngularDamping = 0.1;
78        Add(pelaaja1);
79
80        pelaaja1.Image = pelaaja1tank;
81
82        pelaajan1Ase = new AssaultRifle(30, 10);
83        pelaajan1Ase.Ammo.Value = 1000;
84        pelaajan1Ase.ProjectileCollision = AmmusOsui;
85        pelaajan1Ase.IsVisible = false;
86
87        pelaaja1.Add(pelaajan1Ase);
88
89        pelaajan1Health = new DoubleMeter(100, 0, 100);
90        pelaajan1Health.LowerLimit += delegate {         
91            pelaajan1Ase.Ammo.Value = 0;
92            pelaajan1Ase.Destroy();
93
94            Explosion rajahdys = new Explosion(200);
95            rajahdys.Position = pelaaja1.Position;
96            Add(rajahdys);
97
98            pelaaja1.Destroy();
99        };
100    }
101    void LuoPelaaja2()
102    {
103        pelaaja2 = new PhysicsObject(40, 40);
104        pelaaja2.LinearDamping = 0.1;
105        pelaaja2.AngularDamping = 0.1;
106        Add(pelaaja2);
107
108        pelaaja2.Image = pelaaja2tank;
109
110        pelaajan2Ase = new AssaultRifle(30, 10);
111        pelaajan2Ase.ProjectileCollision = AmmusOsui;
112        pelaajan2Ase.IsVisible = false;
113       
114        pelaaja2.Add(pelaajan2Ase);
115
116        pelaajan2Health = new DoubleMeter(100, 0, 100);
117        pelaajan2Health.LowerLimit += delegate
118        {
119            pelaajan2Ase.Ammo.Value = 0;
120            pelaajan2Ase.Destroy();
121
122            Explosion rajahdys = new Explosion(200);
123            rajahdys.Position = pelaaja2.Position;
124            Add(rajahdys);
125
126            pelaaja2.Destroy();
127        };
128    }
129
130    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
131    {
132        ammus.Destroy();
133        if (kohde == pelaaja1) 
134        {
135            pelaajan1Health.Value -= 20;
136        }
137        else if (kohde == pelaaja2)
138        {
139            pelaajan2Health.Value -= 20;
140        }
141    }
142    void AmmuAseella(AssaultRifle ase)
143    {
144        PhysicsObject ammus = ase.Shoot();
145
146        if (ammus != null)
147        {
148            ammus.Size *= 1;
149            ammus.Image = ammuksenKuva;
150            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.5);
151        }
152        if (ammus != null)
153        {
154            ammus.Size *= 1;
155            ammus.Image = ammuksenKuva;
156            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.5);
157        }
158    }
159}
Note: See TracBrowser for help on using the repository browser.