source: 2012/26/EliasY/test1/test1/test1/test1.cs @ 3247

Revision 3247, 4.1 KB checked in by elalylon, 9 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 test1 : PhysicsGame
10{
11    const int ruudunLeveys = 50;
12    const int ruudunKorkeus = 50;
13    PhysicsObject pelaaja;
14    AssaultRifle kivaari;
15    GameObject pimeys;
16
17    public override void Begin()
18    {
19        LuoPelaaja();
20        LuoKentta();
21        Pimenna();
22        // LuoViholliset();
23        AsetaOhjaimet();
24
25        Camera.Follow(pelaaja);
26        Camera.ZoomFactor = 1.7;
27        /*todo:
28         * Pimeyden tummennus
29         * aseet
30         * vihut
31         * pistecountteri
32         * tekstuurit
33         * mapin parantelu
34         * wavet
35         */
36    }
37
38    void AsetaOhjaimet()
39    {
40        Keyboard.Listen(Key.W, ButtonState.Down, Liiku, null, 0.0, 30.0);
41        Keyboard.Listen(Key.A, ButtonState.Down, Liiku, null, -30.0, 0.0);
42        Keyboard.Listen(Key.S, ButtonState.Down, Liiku, null, 0.0, -30.0);
43        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, null, 30.0, 0.0);
44
45        Keyboard.Listen(Key.Left, ButtonState.Down, Kaanny, null, 2.0);
46        Keyboard.Listen(Key.Right, ButtonState.Down, Kaanny, null, -2.0);
47
48        Keyboard.Listen(Key.W, ButtonState.Released, Pysayta, null, new Vector(1, 0));
49        Keyboard.Listen(Key.A, ButtonState.Released, Pysayta, null, new Vector(0, 1));
50        Keyboard.Listen(Key.S, ButtonState.Released, Pysayta, null, new Vector(1, 0));
51        Keyboard.Listen(Key.D, ButtonState.Released, Pysayta, null, new Vector(0, 1));
52
53        Keyboard.Listen(Key.Left, ButtonState.Released, LopetaKaantyminen, null);
54        Keyboard.Listen(Key.Right, ButtonState.Released, LopetaKaantyminen, null);
55
56        Keyboard.Listen(Key.Up, ButtonState.Down, Ammu, null);
57    }
58
59    void Ammu()
60    {
61        PhysicsObject ammus = kivaari.Shoot();
62
63        if (ammus != null)
64        {
65            ammus.Size /= 3;
66        }
67        //reload-animaatio tähän?
68    }
69
70    void Kaanny(double suunta)
71    {
72        pelaaja.AngularVelocity = suunta;
73        pimeys.Angle = pelaaja.Angle + Angle.FromDegrees(-90);
74    }
75
76    void LopetaKaantyminen()
77    {
78        pelaaja.AngularVelocity = 0;
79    }
80
81    void Liiku(double x, double y)
82    {
83        Vector pulssi = new Vector(x, y);
84        pelaaja.Velocity = pulssi;
85        pimeys.Position = pelaaja.Position;
86    }
87
88    void Pysayta(Vector nopeusKerroin)
89    {
90        pelaaja.Velocity = Vector.ComponentProduct(nopeusKerroin, pelaaja.Velocity);
91    }
92
93    void LuoPelaaja()
94    {
95        pelaaja = new PhysicsObject(30, 30);
96        //poista pelaajan väri kun sillä on tekstuuri
97        pelaaja.Color = Color.Red;
98        pelaaja.X = 550;
99        pelaaja.Y = -550;
100        pelaaja.Mass = 10;
101        pelaaja.Angle = Angle.FromDegrees(90);
102
103        kivaari = new AssaultRifle(80, 20);
104        kivaari.TimeBetweenUse = TimeSpan.FromMilliseconds(700);
105
106        pelaaja.Add(kivaari);
107        Add(pelaaja);
108    }
109
110    void Pimenna()
111    {
112        pimeys = new GameObject(new Animation(LoadImage("pimeys")));
113        pimeys.Width = 850;
114        pimeys.Height = 850;
115        pimeys.Position = pelaaja.Position;
116
117        Add(pimeys);
118    }
119
120    void LuoKentta()
121    {
122        Level.BackgroundColor = Color.Black;
123        // TODO: taustakuva pelin pohjaksi
124        TileMap ruudut = TileMap.FromFile("kentta.txt");
125        ruudut['='] = LuoSeina;
126        ruudut['z'] = LuoZombi;
127        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
128    }
129
130    PhysicsObject LuoZombi()
131    {
132        PhysicsObject zombi = new PhysicsObject(35.0, 35.0);
133        //zombi.Shape = Shape.FromImage(LoadImage("zombi"));
134        //zombi.Image = LoadImage("zombi");
135        FollowerBrain zombinaivot = new FollowerBrain(pelaaja);
136        zombinaivot.DistanceFar = 600;
137        zombi.Brain = zombinaivot;
138        return zombi;
139    }
140
141    PhysicsObject LuoSeina()
142    {
143        PhysicsObject seina = PhysicsObject.CreateStaticObject(50.0, 50.0);
144        return seina;
145    }
146}
Note: See TracBrowser for help on using the repository browser.