source: 2015/24/LeeviK/AS Bandit Experience/AS Bandit Experience/AS Bandit Experience/AS_Bandit_Experience.cs @ 5943

Revision 5943, 4.6 KB checked in by lesejuku, 6 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 AS_Bandit_Experience : PhysicsGame
10{
11    PhysicsObject bandit;
12    GameObject banditKadet;
13    Ase banditAse;
14    bool ladataankoAsetta = false;
15    PhysicsObject Vodka;
16
17    const double HAHMOJEN_LEVEYS = 80;
18    const double HAHMOJEN_KORKEUS = 80;
19
20    public override void Begin()
21    {
22        Level.Background.Color = Color.HotPink;
23        //IsFullScreen = true;
24        Mouse.IsCursorVisible = true;
25        //MediaPlayer.Play(""); //CHEEKI BREEKI ATMOSFEARIC MUSIC
26        Camera.Zoom(4.0);
27
28        Layers[-1].RelativeTransition = new Vector(1.0, 1.0);
29
30        bandit = new PhysicsObject(HAHMOJEN_LEVEYS, HAHMOJEN_KORKEUS);
31        Image PelaajanKuva = LoadImage("banditNASSE");
32       bandit.Shape = Shape.FromImage(PelaajanKuva);
33        bandit.Mass = 8.0;
34        bandit.LinearDamping = 0.75;
35        bandit.Image = PelaajanKuva;
36        Add(bandit);
37
38        banditKadet = new GameObject(HAHMOJEN_LEVEYS, HAHMOJEN_KORKEUS);
39        banditKadet.Shape = Shape.Circle;
40        Image KadetKuva = LoadImage("banditAKS");
41        banditKadet.Image = KadetKuva;
42        Add(banditKadet, -1);
43
44
45        banditAse = new Ase(HAHMOJEN_LEVEYS, HAHMOJEN_KORKEUS, 30, int.MaxValue, 4.0); //koko, lipaskoko, reserviluodit, latausnopeus
46        banditAse.FireRate = 11.6; //metriä sekunnissa
47        banditAse.Power.Value = 720; //ensimmäisen luodin lähtönopeus
48        banditAse.Power.DefaultValue = 720; //muiden luotien lähtönopeus
49        banditAse.AttackSound = null; //väliaikainen
50        banditAse.X = -22.0;
51        banditAse.Y = -6.5;
52        banditAse.Image = null;
53        banditAse.IsVisible = false;
54        bandit.Add(banditAse);
55
56        PhysicsObject Vodka = new PhysicsObject(2.5, 9);
57        Vodka.Shape = Shape.Circle;
58        Vodka.X = 100.0;
59        Vodka.Y = 20.0;
60        Image vodkaKuva = LoadImage("vodka");
61        Vodka.Image = vodkaKuva;
62        Add(Vodka);
63
64        AddCollisionHandler(bandit, Vodka, ViinaRalli);
65        // Camera.Follow(bandit);
66
67        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
68        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaBandit, null, new Vector(-1000, 0), bandit);
69        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaBandit, null, new Vector(1000, 0), bandit);
70        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaBandit, null, new Vector(0, 1000), bandit);
71        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaBandit, null, new Vector(0, -1000), bandit);
72        Keyboard.Listen(Key.Space, ButtonState.Pressed, bandit.Destroy, null); //Tuhoaa Pelaajan testinä
73        Keyboard.Listen(Key.R, ButtonState.Pressed, LataaAse, null, banditAse);
74        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", banditAse);
75        Mouse.ListenMovement(0.0, Tahtaa, "Tähtää aseella", bandit);
76
77        LuoLoner(new Vector(100.0, 0.0));
78    }
79
80    protected override void Update(Time time)
81    {
82        banditKadet.Position = bandit.Position;
83        banditKadet.Angle = bandit.Angle;
84        base.Update(time);
85    }
86
87    void LiikutaBandit(Vector vektori, PhysicsObject bandit)
88    {
89        vektori *= 10;
90        bandit.Push(vektori);
91
92    }
93
94    void AmmuAseella(AssaultRifle ase)
95    {
96        if (ladataankoAsetta) return;
97
98        PhysicsObject ammus = ase.Shoot();
99
100        if (ammus != null)
101        {
102            ammus.Size *= 0.2;
103        }
104    }
105
106    void LataaAse(Ase ladattavaAse)
107    {
108        if (ladataankoAsetta) return;
109        ladataankoAsetta = true;
110
111        Timer.SingleShot(ladattavaAse.ReloadTime, delegate
112        {
113            ladattavaAse.Reload();
114            ladataankoAsetta = false;
115        });
116    }
117
118    void Tahtaa(AnalogState hiirenliike, PhysicsObject bandit)
119    {
120        Vector suunta = (Mouse.PositionOnWorld - bandit.AbsolutePosition).Normalize();
121        bandit.Angle = suunta.Angle;
122    }
123
124    Loner LuoLoner(Vector paikka)
125    {
126        Loner loner = new Loner(HAHMOJEN_LEVEYS, HAHMOJEN_KORKEUS, 100.0, bandit);
127        loner.Position = paikka;
128        Image VihollisenKuva = LoadImage("lonerNASSE");
129        loner.Image = VihollisenKuva;
130        loner.Shape = Shape.FromImage(VihollisenKuva);
131        Add(loner);
132        return loner;
133    }
134    void LuoVodka()
135    {
136
137    }
138
139    void ViinaRalli(PhysicsObject tormaaja, PhysicsObject kohde)
140    {
141        kohde.Destroy();
142        MessageDisplay.Add("Vodka collected!");
143    }
144
145
146}
Note: See TracBrowser for help on using the repository browser.