source: 2012/kerho/LeoL/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3946

Revision 3946, 4.9 KB checked in by jypeleht, 9 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter goomba;
17    Image tausta = LoadImage("Taustat/Tausta");
18    Image vihunkuva = LoadImage("Goomba/goomba1");
19    Image pelaajanKuva = LoadImage("Mario/mario_2");
20    Image mario_hyppaa = LoadImage("Mario/mario_1");
21    Image tahtiKuva = LoadImage("Kolikko");
22    Image nurmikko = LoadImage("nurmikko");
23    Image multa = LoadImage("multa");
24    Animation mario_kavelee = new Animation(LoadImages("Mario/mario_1", "Mario/mario_2"));
25    Animation goomba_kavelee = new Animation(LoadImages("Goomba/goomba1", "Goomba/goomba2"));
26
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33
34        LuoKentta();
35        LisaaNappaimet();
36
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40    }
41
42    void LuoKentta()
43    {
44        TileMap kentta = TileMap.FromLevelAsset("kentta1");
45        kentta.SetTileMethod('G', LisaaVihu);
46        kentta.SetTileMethod('#', LisaaNurmikko);
47        kentta.SetTileMethod('T', LisaaMulta);
48        kentta.SetTileMethod('*', LisaaTahti);
49        kentta.SetTileMethod('M', LisaaPelaaja);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.Image = tausta;
53        Level.Background.FitToLevel();
54        //Level.Background.TextureWrapSize = new Vector(3.0, 1.0);
55    }
56
57    void LisaaNurmikko(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        taso.Position = paikka;
61        taso.Image = nurmikko;
62        Add(taso);
63    }
64
65    void LisaaMulta(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        taso.Position = paikka;
69        taso.Image = multa;
70        Add(taso);
71    }
72
73    void LisaaTahti(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        tahti.IgnoresCollisionResponse = true;
77        tahti.Position = paikka;
78        tahti.Image = tahtiKuva;
79        tahti.Tag = "tahti";
80        Add(tahti);
81    }
82
83    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
84    {
85        pelaaja1 = new PlatformCharacter(leveys, korkeus);
86        pelaaja1.Position = paikka;
87        pelaaja1.Mass = 4.0;
88        mario_kavelee.FPS = 5;
89        pelaaja1.AnimIdle = pelaajanKuva;
90        pelaaja1.AnimWalk = mario_kavelee;
91        pelaaja1.AnimJump = mario_hyppaa;
92        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
93        Add(pelaaja1);
94    }
95
96    void LisaaVihu(Vector paikka, double leveys, double korkeus)
97    {
98        goomba = new PlatformCharacter(leveys, korkeus);
99        goomba.Position = paikka;
100        goomba.Mass = 4.0;
101        goomba_kavelee.FPS = 5;
102        goomba.AnimIdle = vihunkuva;
103        goomba.AnimWalk = goomba_kavelee;
104        Add(goomba);
105
106        PlatformWandererBrain goombaAivot = new PlatformWandererBrain();
107        goombaAivot.Speed = 100;
108        goomba.Brain = goombaAivot;
109    }
110
111    void LisaaNappaimet()
112    {
113        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
115
116        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
117        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
118        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
119
120        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
121
122        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
123        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
124        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
125
126        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
127    }
128
129    void Liikuta(PlatformCharacter hahmo, double nopeus)
130    {
131        hahmo.Walk(nopeus);
132    }
133
134    void Hyppaa(PlatformCharacter hahmo, double nopeus)
135    {
136        hahmo.Jump(nopeus);
137    }
138
139    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
140    {
141        maaliAani.Play();
142        MessageDisplay.Add("jeee");
143        tahti.Destroy();
144    }
145}
Note: See TracBrowser for help on using the repository browser.