source: 2016/koodauskerho/OttoK/Catboarding/Catboarding/Catboarding/Catboarding.cs @ 8612

Revision 8612, 4.4 KB checked in by npo17_1, 23 months 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 Catboarding : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PhysicsObject pelaaja1;
16
17    Image LumilaudanKuva = LoadImage("Snowboard");
18    Image tahtiKuva = LoadImage("tahti");
19    Image tkenttäKuva = LoadImage("tkenttä");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        SmoothTextures = false;
26        Gravity = new Vector(0, -1000);
27        Level.CreateBorders();
28
29        LuoKentta();
30        LisaaNappaimet();
31
32        Camera.Follow(pelaaja1);
33        Camera.ZoomFactor = 1.2;
34        Camera.ZoomToAllObjects();
35        Camera.StayInLevel = true;
36    }
37
38    void LuoKentta()
39    {
40        //TileMap kentta = TileMap.FromLevelAsset("kentta1");
41        //kentta.SetTileMethod('#', LisaaTaso);
42        //kentta.SetTileMethod('*', LisaaTahti);
43        //kentta.SetTileMethod('N', LisaaPelaaja);
44        //kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        LisaaPelaaja(new Vector(-420,300),50,50);
46        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
47
48        double[] korkeudet = new double[] { 10, 12, 15, 20, 20, 17, 10, 12, 13, 12, 13, 23, 20, 34, 45, 67, 78, 89, 88, 98, 89, 87, 67, 56, 54,  };
49        Surface maasto = new Surface(1000,korkeudet, 1.0);
50        maasto.Y = Level.Bottom + 200;
51        maasto.Color = Color.White;
52        maasto.KineticFriction = 0.08;
53        maasto.StaticFriction = 0.08;
54   
55        Add(maasto);
56    }
57
58    void LisaaTaso(Vector paikka, double leveys, double korkeus)
59    {
60        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
61        taso.Position = paikka;
62        taso.Color = Color.White;
63        Add(taso);
64    }
65
66    void LisaaTahti(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        tahti.IgnoresCollisionResponse = true;
70        tahti.Position = paikka;
71        tahti.Image = tahtiKuva;
72        tahti.Tag = "tahti";
73        Add(tahti);
74    }
75
76    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
77    {
78        pelaaja1 = new PhysicsObject(148/1.5, 16/1.5, Shape.FromImage(LumilaudanKuva));
79        pelaaja1.Position = paikka;
80        pelaaja1.Mass = 4.0;
81        pelaaja1.Image = LumilaudanKuva;
82        pelaaja1.CanRotate = true;
83        pelaaja1.MaxAngularVelocity = 15;
84        Add(pelaaja1);
85    }
86
87    void LisaaNappaimet()
88    {
89        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
90
91        //Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
92        //Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
93        //Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
94
95        Keyboard.Listen(Key.Left, ButtonState.Down, RLeft, "Liikkuu vasemmalle", pelaaja1, -nopeus);
96        Keyboard.Listen(Key.Right, ButtonState.Down, RRight, "Liikkuu vasemmalle", pelaaja1, nopeus);
97        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
98
99        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
100
101        //ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
102        //ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
103        //ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
104
105        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
106    }
107
108    void RLeft(PhysicsObject hahmo, double nopeus)
109    {
110        hahmo.AngularVelocity += 1;
111    }
112
113    void RRight(PhysicsObject hahmo, double nopeus)
114    {
115        hahmo.AngularVelocity -= 1;
116    }
117
118    void Hyppaa(PhysicsObject hahmo, double nopeus)
119    {
120        if(hahmo.Velocity.Y > -5 && hahmo.Velocity.Y < 5)
121        hahmo.Hit(new Vector(0, 2000));
122    }
123
124    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
125    {
126        maaliAani.Play();
127        MessageDisplay.Add("Keräsit tähden!");
128        tahti.Destroy();
129    }
130}
Note: See TracBrowser for help on using the repository browser.