source: 2012/30/MatiasS/Oma_peli/Oma_peli/Oma_peli/Oma_peli.cs @ 3727

Revision 3727, 3.8 KB checked in by majusiro, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Oma_peli : PhysicsGame
10{
11 
12    AssaultRifle pelaajan1Ase;
13    const double PALLON_MIN_NOPEUS = 500;
14    PhysicsObject pelaaja;
15    public override void Begin()
16    {
17        LuoPelaaja();
18        LuoNappaimet();
19       
20        LuoTaustavari();
21        LuoKentta();
22       
23    }
24   
25   
26   
27        void LuoKentta()
28{
29  TileMap ruudut = TileMap.FromLevelAsset("kentta");
30 
31  ruudut.SetTileMethod('x', LuoPunainenTalo);
32  ruudut.SetTileMethod('y', LuoKeltainenTalo);
33  ruudut.SetTileMethod('k', LuoHarmaaTalo);
34  ruudut.SetTileMethod('o', LuoTalo);
35  ruudut.Execute(250, 250);
36
37
38
39
40    }
41    void LuoTalo(Vector paikka, double leveys, double korkeus)
42    {
43
44        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
45        talo.Position = paikka;
46        Add(talo);
47    }
48
49    void LuoKeltainenTalo(Vector paikka, double leveys, double korkeus)
50    {
51
52        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
53        talo.Position = paikka;
54        talo.Color = Color.Yellow;
55        Add(talo);
56    }
57    void LuoHarmaaTalo(Vector paikka, double leveys, double korkeus)
58    {
59
60        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
61        talo.Position = paikka;
62        talo.Color = Color.Gray;
63        Add(talo);
64    }
65
66    void LuoPunainenTalo(Vector paikka, double leveys, double korkeus)
67    {
68
69        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        talo.Position = paikka;
71        talo.Color = Color.Red;
72        Add(talo);
73    }
74
75
76
77
78    void LuoPelaaja()
79    {
80
81        pelaaja = new PhysicsObject(40, 20);
82        pelaaja.CanRotate = false;
83        pelaaja.Shape = Shape.Circle;
84        Add(pelaaja);
85        Mouse.IsCursorVisible = true;
86        Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
87        Ase();
88
89        Camera.Follow(pelaaja);
90
91    }
92
93    void KuunteleLiiketta(AnalogState hiirenTila)
94    {
95        Vector etaisyys = Mouse.PositionOnWorld - pelaaja.Position;
96        pelaaja.Angle = etaisyys.Angle + Angle.RightAngle;
97    }
98
99
100    void LuoTaustavari()
101    {
102
103
104        Level.BackgroundColor = Color.Blue;
105
106
107    }
108
109    void LuoNappaimet()
110    {
111        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
112        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
113
114
115        Keyboard.Listen(Key.D, ButtonState.Down,
116          LiikutaPelaajaa, null, new Vector(-1000, 0));
117        Keyboard.Listen(Key.A, ButtonState.Down,
118          LiikutaPelaajaa, null, new Vector(1000, 0));
119        Keyboard.Listen(Key.W, ButtonState.Down,
120          LiikutaPelaajaa, null, new Vector(0, 1000));
121        Keyboard.Listen(Key.S, ButtonState.Down,
122          LiikutaPelaajaa, null, new Vector(0, -1000));
123    }
124
125    void LiikutaPelaajaa(Vector vektori)
126    {
127        pelaaja.Push(vektori);
128        pelaaja.LinearDamping = 0.9;
129
130    }
131
132    void Ase()
133    {
134        pelaajan1Ase = new AssaultRifle(30, 10);
135        pelaajan1Ase.Angle = Angle.RightAngle;
136
137        pelaajan1Ase.ProjectileCollision = AmmusOsui;
138
139     
140
141
142        pelaaja.Add(pelaajan1Ase);
143
144        //Ammusten määrä aluksi:
145        pelaajan1Ase.Ammo.Value = 1000;
146
147
148
149    }
150    void AmmuAseella(AssaultRifle ase)
151    {
152        PhysicsObject ammus = ase.Shoot();
153
154        if (ammus != null)
155        {
156            //ammus.Size *= 3;
157            //ammus.Image = ...
158            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
159        }
160    }
161    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
162    {
163        ammus.Destroy();
164
165    }
166
167}
Note: See TracBrowser for help on using the repository browser.