source: 2016/30/KasimirP/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 8172

Revision 8172, 5.3 KB checked in by kaspalmu, 5 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 Vihollinen;
17
18    Image pelaajanKuva = LoadImage("Dat_boi1");
19    Image tahtiKuva = LoadImage("leaf");
20    Image VihollisenKuva = LoadImage("pepexd");
21    Image Veri = LoadImage("veri");
22    private Image[] ukkelinKavely = LoadImages("Dat_boi1", "Dat_boi2", "Dat_boi3", "Dat_boi4", "Dat_boi5");
23
24    //SoundEffect maaliAani = LoadSoundEffect("Smoke Weed Everyday Sound Effect");
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0, -1000);
29
30        LuoKentta();
31        LisaaNappaimet();
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 1.2;
35        Camera.StayInLevel = true;
36        SmoothTextures = false;
37        Window.Fullscreen = true;
38    }
39
40    void LuoKentta()
41    {
42        TileMap kentta = TileMap.FromLevelAsset("kentta1");
43        kentta.SetTileMethod('#', LisaaTaso);
44        kentta.SetTileMethod('*', LisaaTahti);
45        kentta.SetTileMethod('N', LisaaPelaaja);
46        kentta.SetTileMethod('X', LisaaVihollinen);
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
48        Level.CreateBorders();
49        Level.Background.CreateGradient(Color.White, Color.LimeGreen);
50
51    }
52
53    void LisaaTaso(Vector paikka, double leveys, double korkeus)
54    {
55        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
56        taso.Position = paikka;
57        taso.Color = Color.Green;
58        Add(taso);
59    }
60
61    void LisaaTahti(Vector paikka, double leveys, double korkeus)
62    {
63        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        tahti.IgnoresCollisionResponse = true;
65        tahti.Position = paikka;
66        tahti.Image = tahtiKuva;
67        tahti.Tag = "tahti";
68        Add(tahti);
69    }
70
71    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
72    {
73        pelaaja1 = new PlatformCharacter(leveys, korkeus, Shape.Circle);
74        pelaaja1.Position = paikka;
75        pelaaja1.Mass = 4.0;
76        pelaaja1.Image = pelaajanKuva;
77        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
78        AddCollisionHandler(pelaaja1, "Vihollinen", TormaaViholliseen);
79        Add(pelaaja1);
80        pelaaja1.Animation = new Animation(ukkelinKavely);
81        pelaaja1.Animation.Start();
82
83
84
85    }
86
87    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
88
89    {
90        Vihollinen = new PlatformCharacter(30.0, 30.0);
91
92        Vihollinen.Position = paikka;
93        Vihollinen.Mass = 4.0;
94        Vihollinen.Image = VihollisenKuva;
95        Vihollinen.Tag = "Vihollinen";
96
97        Add(Vihollinen);
98
99        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
100        tasoAivot.Speed = 100;
101        tasoAivot.FallsOffPlatforms = false;
102        Vihollinen.Brain = tasoAivot;
103
104
105    }
106
107    //void LisaaVihollinen(Vector paikka, double leveys,
108
109    void LisaaNappaimet()
110    {
111        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
112        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
113
114        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
115        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
116        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
117
118        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
119
120        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
121        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
122        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
123
124        /*Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja1.Animation.Start, "");
125        Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja1.Animation.Stop, "");*/
126
127        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
128    }
129
130    protected override void Update(Time time)
131    {
132        base.Update(time);
133
134        if (pelaaja1.Velocity.X == 0)
135        {
136            pelaaja1.Animation.Stop();
137        }
138        else if (!pelaaja1.Animation.IsPlaying)
139        {
140            pelaaja1.Animation.Start();
141        }
142    }
143
144    void Liikuta(PlatformCharacter hahmo, double nopeus)
145    {
146        hahmo.Walk(nopeus);
147    }
148
149    void Hyppaa(PlatformCharacter hahmo, double nopeus)
150    {
151        hahmo.Jump(nopeus);
152    }
153
154    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
155    {
156        //maaliAani.Play();
157        MessageDisplay.Add("Keräsit superlehden xd!");
158        tahti.Destroy();
159    }
160
161    void TormaaViholliseen(PhysicsObject a, PhysicsObject b)
162    {
163        ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
164       
165        Add(rajahdusSysteemi);
166       
167        rajahdusSysteemi.AddEffect(a.Position, 50);
168        a.Destroy();
169
170    }
171}
Note: See TracBrowser for help on using the repository browser.