source: 2016/koodauskerho/JoonasP/AbsolutelyNotDoom/AbsolutelyNotDoom/AbsolutelyNotDoom/AbsolutelyNotDoom.cs @ 8362

Revision 8362, 3.2 KB checked in by koannak, 3 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 AbsolutelyNotDoom : PhysicsGame
10{
11    AssaultRifle PlayerinAse;
12    PhysicsObject Player;
13    public override void Begin()
14    {
15        LuoKentta();
16        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
17        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
18        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-600, 0));
19        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(600, 0));
20        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 600));
21        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -600));
22    }
23
24    void LuoKentta()
25    {
26        Player = new PhysicsObject(40, 30);
27        Player.Shape = Shape.Pentagon;
28        Player.Color = Color.Navy;
29        Add(Player);
30        Player.LinearDamping = 0.9;
31
32        PlayerinAse = new AssaultRifle (30, 10);
33        PlayerinAse.Ammo.Value = 1000;
34        PlayerinAse.ProjectileCollision = AmmusOsui;
35        Player.Add(PlayerinAse);
36        PlayerinAse.Power.Value = 200;
37        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", PlayerinAse);
38
39        for (int i = 0; i < 10; i++)
40        {
41            LisaaWalker();
42        }
43
44        for (int i = 0; i < 10; i++)
45        {
46            LisaaZombie();
47        }
48
49        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
50        Mouse.IsCursorVisible = true;
51    }
52
53    void LiikutaPelaajaa(Vector vektori)
54    {
55        Player.Push(vektori);
56    }
57
58    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
59    { 
60       
61    }
62
63    void AmmuAseella(AssaultRifle ase)
64    {
65        PhysicsObject ammus = ase.Shoot();
66
67        if (ammus != null)
68        {
69
70        }
71    }
72
73    void Tahtaa(AnalogState hiirenLiike)
74    {
75        Vector suunta = (Mouse.PositionOnWorld - PlayerinAse.AbsolutePosition).Normalize();
76        PlayerinAse.Angle = suunta.Angle;
77    }
78
79    void LisaaZombie()
80    {
81        PhysicsObject zombie = new PhysicsObject(40, 20);
82        zombie.Shape = Shape.Circle;
83        zombie.Color = Color.SeaGreen;
84        zombie.Position = RandomGen.NextVector(Level.Left, Level.Bottom, Level.Right, Level.Top);
85        Add(zombie);
86
87        FollowerBrain seuraajaNaivot = new FollowerBrain(Player);
88        seuraajaNaivot.Speed = 40;
89        seuraajaNaivot.DistanceFar = 800;
90        seuraajaNaivot.DistanceClose = 200;
91        zombie.Brain = seuraajaNaivot;
92    }
93
94    void LisaaWalker()
95    {
96        PhysicsObject walker = new PhysicsObject(30, 40);
97        walker.Shape = Shape.Circle;
98        walker.Color = Color.GreenYellow;
99        walker.Position = RandomGen.NextVector(Level.Left, Level.Bottom, Level.Right, Level.Top);
100        Add(walker);
101
102        FollowerBrain seuraajanAivot = new FollowerBrain(Player);
103        seuraajanAivot.Speed = 50;
104        seuraajanAivot.DistanceFar = 800;
105        seuraajanAivot.DistanceClose = 200;
106        walker.Brain = seuraajanAivot;
107    }
108}
Note: See TracBrowser for help on using the repository browser.