source: 2016/27/JamiL/.vs/GrandTheAutoDash/GrandTheAutoDash/GrandTheAutoDash/GrandTheAutoDash.cs @ 7890

Revision 7890, 4.4 KB checked in by karkaite, 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 GrandTheAutoDash : PhysicsGame
10{
11    private double nopeus = 200;
12    private const double kavelyNopeus = 200;
13    private const double moponNopeus = 400;
14    private const double hyppyNopeus = 750;
15    private const int RUUDUN_KOKO = 40;
16
17    private PlatformCharacter pelaaja1;
18    private Image mopokuva = LoadImage("motord");
19    private Image pelaajanKuvaRide = LoadImage("gamer");
20    private Image pelaajanKuvaJump =LoadImage("loitled");
21    private Image pelaajankuvaWalk = LoadImage("magicgamer");
22    private Image tahtiKuva = LoadImage("tahti");
23
24    private SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0, -1000);
29        nopeus = kavelyNopeus;
30        LuoKentta();
31        LisaaNappaimet();
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 1.2;
35        Camera.StayInLevel = true;
36    }
37
38    void LuoKentta()
39    {
40        TileMap kentta = TileMap.FromLevelAsset("kentta1");
41        kentta.SetTileMethod('M', Lisaamopo);
42        kentta.SetTileMethod('#', LisaaTaso);
43        kentta.SetTileMethod('*', LisaaTahti);
44        kentta.SetTileMethod('N', LisaaPelaaja);
45        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
46        Level.CreateBorders();
47        Level.Background.CreateGradient(Color.HotPink, Color.SkyBlue);
48
49    }
50
51    void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        taso.Position = paikka;
55        taso.Color = Color.Green;
56        Add(taso);
57    }
58
59    void LisaaTahti(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        tahti.IgnoresCollisionResponse = true;
63        tahti.Position = paikka;
64        tahti.Image = tahtiKuva;
65        tahti.Tag = "tahti";
66        Add(tahti);
67    }
68
69
70    void Tormaamopo(PhysicsObject pelaaja,PhysicsObject mopo)
71    {
72        mopo.Destroy();
73        pelaaja1.Image = pelaajanKuvaRide;
74        nopeus = moponNopeus;
75        pelaaja1.Size *= 2;
76    }
77    void Lisaamopo(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject gamer = PhysicsObject.CreateStaticObject(2*leveys,korkeus);
80        gamer.IgnoresCollisionResponse=true;
81        gamer.Position = paikka;
82        gamer.Image = mopokuva;
83        gamer.Tag = "mopo";
84        Add(gamer);
85
86
87    }
88   
89    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
90    {
91        pelaaja1 = new PlatformCharacter(leveys, korkeus);
92        pelaaja1.Position = paikka;
93        pelaaja1.Mass = 4.0;
94        pelaaja1.Image = pelaajankuvaWalk;
95        AddCollisionHandler(pelaaja1, "mopo", Tormaamopo);
96        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
97        Add(pelaaja1);
98    }
99
100    void LisaaNappaimet()
101    {
102        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
103        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
104
105        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
106        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
107        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
108
109        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
110
111        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
112        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
113        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
114
115        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
116    }
117
118    void Liikuta(PlatformCharacter hahmo, double nopeus)
119    {
120        hahmo.Walk(nopeus);
121    }
122
123    void Hyppaa(PlatformCharacter hahmo, double nopeus)
124    {
125        hahmo.Jump(nopeus);
126    }
127
128    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
129    {
130        maaliAani.Play();
131        MessageDisplay.Add("Keräsit tähden!");
132        tahti.Destroy();
133    }
134}
Note: See TracBrowser for help on using the repository browser.