source: 2017/27/JuusoM/peli/peli/peli/peli.cs @ 8897

Revision 8897, 4.4 KB checked in by npo17_36, 2 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 peli : PhysicsGame
10{
11     Vector nopeus = new Vector (8000, 00);
12    Vector nopeus1 = new Vector(00, 8000);
13   
14   
15    const int RUUDUN_KOKO = 40;
16
17    PhysicsObject pelaaja1;
18
19    Image pelaajanKuva = LoadImage("police");
20    Image tahtiKuva = LoadImage("tahti");
21    Image gangsteri = LoadImage("gangster");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    public override void Begin()
26    {
27
28        LuoKentta();
29        LisaaNappaimet();
30        Gravity = new Vector(0.0, -800.0);
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35
36    void LuoKentta()
37    {
38
39        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
40
41        ruudut.SetTileMethod(Color.Black, LisaaTaso);
42        ruudut.SetTileMethod("4800FF", LisaaPelaaja);
43        ruudut.SetTileMethod("808080", LisaaGangsteri);
44
45        ruudut.Execute(20, 20);
46       
47
48        Level.Background.CreateGradient(Color.AshGray, Color.AshGray);
49        Gravity = new Vector(0.0, -800.0);
50    }
51
52    void LisaaTaso(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        taso.Position = paikka;
56        taso.Color = Color.Gray;
57        taso.Tag = "seina";
58        Add(taso);
59    }
60
61
62    void LisaaGangsteri(Vector paikka, double leveys, double korkeus)
63    {
64
65        PhysicsObject gangsta = new PhysicsObject(RUUDUN_KOKO / 2, RUUDUN_KOKO / 2);
66        gangsta.Position = paikka;
67        gangsta.Image = gangsteri;
68        gangsta.CanRotate = false;
69        gangsta.IgnoresGravity = true;
70        gangsta.LinearDamping = 0.7;
71
72
73
74        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO);
75        labyrinttiAivot.Speed = 100.0;
76        labyrinttiAivot.LabyrinthWallTag = "seina";
77
78        gangsta.Brain = labyrinttiAivot;
79        Add(gangsta);
80    }
81    void LisaaTahti(Vector paikka, double leveys, double korkeus)
82    {
83       
84        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        tahti.IgnoresCollisionResponse = true;
86        tahti.Position = paikka;
87        tahti.Image = tahtiKuva;
88        tahti.Tag = "tahti";
89        Add(tahti);
90    }
91
92    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
93    {
94        pelaaja1 = new PhysicsObject(leveys, korkeus);
95        pelaaja1.Position = paikka;
96        pelaaja1.Mass = 4.0;
97        pelaaja1.Image = pelaajanKuva;
98        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
99        pelaaja1.CanRotate = false;
100        pelaaja1.IgnoresGravity = true;
101        pelaaja1.LinearDamping = 0.7;
102        Add(pelaaja1);
103    }
104
105    void LisaaNappaimet()
106    {
107        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
108        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
109
110        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
111
112        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
113
114        Keyboard.Listen(Key.Up, ButtonState.Down, Hyppaa, "Pelaaja hyppää", pelaaja1, nopeus1);
115
116        Keyboard.Listen(Key.Down, ButtonState.Down, Hyppaa, "Pelaaja hyppää", pelaaja1, -nopeus1);
117 
118        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
119        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, nopeus);
120        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
121
122
123        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
124    }
125
126    void Liikuta(PhysicsObject hahmo, Vector nopeus)
127    {
128        if(nopeus.X < 0)
129            hahmo.TextureWrapSize = new Vector(-1, 1);
130        if (nopeus.X > 0)
131            hahmo.TextureWrapSize = new Vector(1, 1);
132        hahmo.Push(nopeus);
133    }
134
135   void Hyppaa(PhysicsObject hahmo, Vector nopeus1)
136   {
137       hahmo.Push(nopeus1);
138   }
139
140    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
141    {
142        maaliAani.Play();
143        MessageDisplay.Add("Keräsit tähden!");
144        tahti.Destroy();
145    }
146}
Note: See TracBrowser for help on using the repository browser.