source: 2017/24/ViljamiM/Zombodroid/Zombodroid/Zombodroid/Zombodroid.cs @ 8635

Revision 8635, 4.4 KB checked in by npo17_18, 2 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 Zombodroid : PhysicsGame
10{
11    PhysicsObject matti;
12    bool vasenPyssy = true;
13
14    public override void Begin()
15    {
16        AsetaOhjaimet();
17        AsetaHenkilot();
18
19        Mappi();
20
21        Camera.Follow(matti);
22
23        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
24
25        IsMouseVisible = true;
26
27        YksVihu();
28
29    }
30    void AsetaOhjaimet()
31    {
32        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
33
34        Keyboard.Listen(Key.A, ButtonState.Down,
35   LiikutaPelaajaa, null, new Vector(-220, 0));
36        Keyboard.Listen(Key.D, ButtonState.Down,
37          LiikutaPelaajaa, null, new Vector(220, 0));
38        Keyboard.Listen(Key.W, ButtonState.Down,
39          LiikuEteen, null);
40        Keyboard.Listen(Key.S, ButtonState.Down,
41          LiikutaPelaajaa, null, new Vector(0, -220));
42
43        Keyboard.Listen(Key.A, ButtonState.Released,
44   LiikutaPelaajaa, null, Vector.Zero);
45        Keyboard.Listen(Key.D, ButtonState.Released,
46         LiikutaPelaajaa, null, Vector.Zero);
47        Keyboard.Listen(Key.W, ButtonState.Released,
48          LiikutaPelaajaa, null, Vector.Zero);
49        Keyboard.Listen(Key.S, ButtonState.Released,
50          LiikutaPelaajaa, null, Vector.Zero);
51
52        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, null);
53
54
55    }
56    void AsetaHenkilot()
57    {
58        matti = new PhysicsObject(75, 75);
59        matti.Image = LoadImage("oikeeukkeli");
60       
61        matti.X = 100;
62        Add(matti, 3);
63        matti.CanRotate = false;
64        double laserinpituus = 1000;
65        GameObject laser = new  GameObject(2, laserinpituus);
66        laser.Y = matti.Y + laserinpituus/2+16;
67        laser.Color = new Color(Color.Red, 30);
68        matti.Add(laser);
69    }
70
71    void LiikutaPelaajaa(Vector vektori)
72    {
73        matti.Move(vektori);
74    }
75    void Tahtaa(AnalogState hiirenLiike)
76    {
77        Vector suunta = (Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize();
78        matti.Angle = suunta.Angle - Angle.RightAngle;
79    }
80    void Ammu()
81    {
82        PhysicsObject panos = new PhysicsObject(5.0, 5.0);
83        if (vasenPyssy)
84        {
85            panos.Position = matti.Position + ((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize()) * 32 + (((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize()) * 22).RightNormal;
86            vasenPyssy = false;
87        }
88        else
89        {
90            panos.Position = matti.Position + ((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize()) * 32 + (((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize()) * -22).RightNormal;
91            vasenPyssy = true;
92        }
93        panos.IgnoresCollisionWith(matti);
94        panos.MaximumLifetime = new TimeSpan(0, 0, 2);
95        Add(panos);
96        panos.Velocity = ((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize())*2000;
97
98       
99    }
100    void Mappi()
101    {
102        Level.Background.Image = LoadImage("mappi");
103       
104    }
105    void LiikuEteen()
106    {
107        matti.Move(((Mouse.PositionOnWorld - matti.AbsolutePosition).Normalize()) * 220);
108    }
109    void YksVihu()
110    {
111        PhysicsObject vihu = new PhysicsObject(100.0, 100.0);
112        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(50);
113        satunnaisAivot.ChangeMovementSeconds = 3;
114        vihu.Brain = satunnaisAivot;
115        FollowerBrain suraajanAivot = new FollowerBrain(matti);
116       
117
118        double nakokentanpituus = 300;
119        PhysicsObject nakokentta = new PhysicsObject(300, nakokentanpituus);
120        nakokentta.Tag = "nakoalue";
121        nakokentta.Y = vihu.Y + nakokentanpituus / 2 + 16;
122        nakokentta.Angle = Angle.StraightAngle;
123        nakokentta.Shape = Shape.Triangle;
124        vihu.CanRotate = false;
125        nakokentta.CanRotate = false;
126
127
128        AddCollisionHandler(matti, nakokentta, delegate { VihuNakeeMatin(vihu); });
129
130
131        Add(vihu);
132        Add(nakokentta);
133        PhysicsStructure kokoVihu = new PhysicsStructure(vihu, nakokentta);
134        nakokentta.IgnoresCollisionResponse = true;
135    }
136    void VihuNakeeMatin(PhysicsObject vihu)
137    {
138        MessageDisplay.Add("vihunakeepelaajan");
139
140    }
141
142
143}
Note: See TracBrowser for help on using the repository browser.