source: 2017/24/SamuelN/SpaceShooter2k17/SpaceShooter2k17/SpaceShooter2k17/SpaceShooter2k17.cs @ 8681

Revision 8681, 5.4 KB checked in by npo17_6, 4 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 SpaceShooter2k17 : PhysicsGame
10{
11    PhysicsObject player;
12    PhysicsObject bottom;
13    PhysicsObject top;
14    PhysicsObject left;
15    PhysicsObject right;
16    Timer moveTimer2;
17    Color vari = RandomGen.NextColor();
18    Vector SpeedUp = new Vector(0, 500);
19    Vector SpeedDown = new Vector(0, -500);
20    AssaultRifle playerGun;
21    private List<GameObject> movingObj = new List<GameObject>();
22    private double way = -10;
23    private double destroyX;
24    public override void Begin()
25    {
26        IsMouseVisible = true;
27        IsFullScreen = true;
28        Level.Background.CreateStars(5000);
29        MediaPlayer.Play("PinballSpring");
30        LuoPistelaskuri();
31
32        Timer moveTimer = new Timer();
33        moveTimer.Interval = 0.05;
34        moveTimer.Timeout += MoveObj;
35        moveTimer.Start();
36
37        moveTimer2 = new Timer();
38        moveTimer2.Interval = 1.5;
39        moveTimer2.Timeout += AddObj;
40        moveTimer2.Start();
41
42        player = PhysicsObject.CreateStaticObject(88, 143);
43        player.Image = LoadImage("ship");
44        player.X = -900;
45        player.Shape = Shape.FromImage(LoadImage("ship"));
46        player.Restitution = 1.0;
47
48        playerGun = new AssaultRifle(120, 40);
49        playerGun.InfiniteAmmo = true;
50        playerGun.ProjectileCollision = AmmoHit;
51        playerGun.X -= 60;
52        playerGun.Y = 0;
53        playerGun.IsVisible = false;
54        playerGun.AttackSound = null; //LoadSoundEffect("shoot");
55        playerGun.FireRate = 2;
56        player.Add(playerGun);
57
58        Add(player);
59
60        top = PhysicsObject.CreateStaticObject(2000, 100);
61        top.Y = 550;
62        top.Color = Color.FromHexCode("00FF00");
63        Add(top);
64
65        bottom = PhysicsObject.CreateStaticObject(2000, 100);
66        bottom.Y = -550;
67        bottom.Color = Color.FromHexCode("00FF00");
68        Add(bottom);
69
70        left = PhysicsObject.CreateStaticObject(100, 1000);
71        left.X = -1000;
72        left.Color = Color.FromHexCode("00FF00");
73        Add(left);
74
75        right = PhysicsObject.CreateStaticObject(100, 1000);
76        right.X = 1000;
77        right.Color = Color.FromHexCode("00FF00");
78        Add(right);
79
80        destroyX = left.Right;
81
82        Keyboard.Listen(Key.Space, ButtonState.Down, Shoot, "Shoot", playerGun);
83
84        Keyboard.Listen(Key.Up, ButtonState.Down, SetSpeed, null, player, SpeedUp);
85        Keyboard.Listen(Key.Up, ButtonState.Released, SetSpeed, null, player, Vector.Zero);
86
87        Keyboard.Listen(Key.Down, ButtonState.Down, SetSpeed, null, player, SpeedDown);
88        Keyboard.Listen(Key.Down, ButtonState.Released, SetSpeed, null, player, Vector.Zero);
89
90        Keyboard.Listen(Key.LeftShift, ButtonState.Pressed, AddObj, null);
91        Keyboard.Listen(Key.F12, ButtonState.Pressed, Input, null);
92    }
93    void Input()
94    {
95        InputWindow kysymysIkkuna = new InputWindow("Cheat Engine");
96        kysymysIkkuna.TextEntered += ProcessInput;
97        Add(kysymysIkkuna);
98        Pause();
99    }
100    void ProcessInput(InputWindow ikkuna)
101    {
102        Pause();
103        string vastaus = ikkuna.InputBox.Text;
104        if (vastaus == "exit")
105        {
106            Exit();
107        }
108        else if (vastaus == "mlgmode true")
109        {
110            playerGun.FireRate = 100;
111            moveTimer2.Interval = 0.1;
112        }
113        else if (vastaus == "mlgmode false")
114        {
115            playerGun.FireRate = 2;
116            moveTimer2.Interval = 1.5;
117        }
118    }
119        IntMeter pisteLaskuri;
120    void LuoPistelaskuri()
121    {
122        pisteLaskuri = new IntMeter(0);
123
124        Label pisteNaytto = new Label();
125        pisteNaytto.X = Screen.Left + 100;
126        pisteNaytto.Y = Screen.Top - 100;
127        pisteNaytto.TextColor = Color.White;
128
129        pisteNaytto.BindTo(pisteLaskuri);
130        Add(pisteNaytto);
131    }
132    void AddObj()
133    {
134        double im = RandomGen.NextDouble(-400, 400);
135        PhysicsObject obj = PhysicsObject.CreateStaticObject(100, 100);
136        obj.Y = im;
137        obj.X = 900;
138        obj.Image = LoadImage("obj");
139        obj.Shape = Shape.FromImage(LoadImage("obj"));
140        obj.Tag = "obj";
141        Add(obj);
142        movingObj.Add(obj);
143    }
144    private void MoveObj()
145    {
146        for (int i = 0; i < movingObj.Count; i++)
147        {
148            GameObject obj = movingObj[i];
149            obj.X += way;
150            if (obj.X <= destroyX)
151            {
152                obj.Destroy();
153                movingObj.Remove(obj);
154            }
155        }
156    }
157    void AmmoHit(PhysicsObject ammus, PhysicsObject kohde)
158    {
159        ammus.Destroy();
160        if (kohde.Tag == "obj")
161        {
162            kohde.Destroy();
163            pisteLaskuri.Value += 1;
164        }
165    }
166    void Shoot(AssaultRifle gun)
167    {
168        PhysicsObject ammo = gun.Shoot();
169       
170    }
171    void SetSpeed(PhysicsObject player, Vector nopeus)
172    {
173        if ((nopeus.Y > 0) && (player.Top > top.Bottom))
174        {
175            player.Velocity = Vector.Zero;
176            return;
177        }
178        if ((nopeus.Y < 0) && (player.Bottom < bottom.Top))
179        {
180            player.Velocity = Vector.Zero;
181            return;
182        }
183
184        player.Velocity = nopeus;
185    }
186}
Note: See TracBrowser for help on using the repository browser.