source: 2013/27/JoonasM/RnGPlatformShooter/RnGPlatformShooter/RnGPlatformShooter/RnGPlatformShooter.cs @ 4343

Revision 4343, 4.1 KB checked in by joarmuho, 10 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 RnGPlatformShooter : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    double VanhaTaso = 0;
16    int CameraSpeed = 30;
17
18    PlatformCharacter pelaaja1;
19
20    Image pelaajanKuva = LoadImage("norsu");
21    Image tahtiKuva = LoadImage("tahti");
22
23    IntMeter pisteLaskuri;
24
25    SoundEffect maaliAani = LoadSoundEffect("maali");
26
27    public override void Begin()
28    {
29        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Lopeta");
30        alkuValikko.AddItemHandler(0, StartGame);
31        alkuValikko.AddItemHandler(1, Exit);
32        Add(alkuValikko);
33    }
34
35    void StartGame()
36    {
37        Gravity = new Vector(0, -1500);
38
39        Camera.X = 200;
40        Camera.Velocity = new Vector(CameraSpeed, 0);
41        Camera.ZoomFactor = 1.5;
42
43        LuoKentta();
44        LisaaNappaimet();
45    }
46
47    void LuoKentta()
48    {
49        VanhaTaso = 0;
50        PhysicsObject StartingPlatform = PhysicsObject.CreateStaticObject(80, 20);
51        StartingPlatform.Y = 100;
52        StartingPlatform.Color = Color.Red;
53        Add(StartingPlatform);
54
55        LisaaPelaaja();
56
57        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
58
59        Timer Ajastin = new Timer();
60        Ajastin.Interval = 0.5;
61        Ajastin.Timeout += delegate
62        {
63            pisteLaskuri.Value += 1;
64            if (Camera.Velocity.X < 210)
65            {
66                Camera.Velocity *= 1.05;
67            }
68           
69            if (pelaaja1.Y < -400)
70            {
71                ClearAll();
72                Begin();
73            }
74
75        };
76        Ajastin.Start();
77
78       
79        pisteLaskuri = new IntMeter(0);
80        Label pisteNaytto = new Label();
81        pisteNaytto.X = Screen.Right - 100;
82        pisteNaytto.Y = Screen.Top - 100;
83        pisteNaytto.TextColor = Color.Black;
84        pisteNaytto.Color = Color.White;
85        pisteNaytto.Title = "Pisteet";
86
87        pisteNaytto.BindTo(pisteLaskuri);
88        Add(pisteNaytto);
89    }
90
91    void LisaaTaso()
92    {
93        PhysicsObject taso = PhysicsObject.CreateStaticObject(64, 20);
94        taso.X = RandomGen.NextInt(100, 300) + VanhaTaso;
95        taso.Y = RandomGen.NextInt(-100, 75);
96        taso.Color = Color.Green;
97        taso.Oscillate(Vector.UnitY, RandomGen.NextInt(50, 200), 0.5);
98        VanhaTaso = taso.X;
99        Add(taso);
100    }
101
102    void LisaaPelaaja()
103    {
104        pelaaja1 = new PlatformCharacter(64, 64);
105        pelaaja1.Y = 150;
106        pelaaja1.Mass = 4.0;
107        pelaaja1.Image = pelaajanKuva;
108        Add(pelaaja1);
109       
110        LisaaTaso();
111    }
112
113    void LisaaNappaimet()
114    {
115        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
116        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
117
118        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
119        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
120        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
121
122        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
123
124        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
125        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
126        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
127
128        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
129    }
130
131    void Liikuta(PlatformCharacter hahmo, double nopeus)
132    {
133        hahmo.Walk(nopeus);
134    }
135
136    void Hyppaa(PlatformCharacter hahmo, double nopeus)
137    {
138        hahmo.Jump(nopeus);
139        LisaaTaso();
140    }
141
142    void HighScore()
143    {
144
145    }
146
147}
Note: See TracBrowser for help on using the repository browser.