source: 2017/24/SamuelN/KurssiPeli2K17/KurssiPeli2K17/KurssiPeli2K17/KurssiPeli2K17.cs @ 8681

Revision 8681, 3.2 KB checked in by npo17_6, 4 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 KurssiPeli2K17 : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 600;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image taustaKuva = LoadImage("bg_12");
18    Image pelaajanKuva = LoadImage("Cube25");
19    Image tahtiKuva = LoadImage("coin");
20    Image tasoKuva = LoadImage("taso");
21    Image spikeKuva = LoadImage("taso");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28
29
30        LuoKentta();
31        LisaaNappaimet();
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 2.5;
35        Camera.StayInLevel = true;
36
37        Level.Background.Image = taustaKuva;
38        IsMouseVisible = true;
39    }
40
41    void LuoKentta()
42    {
43        TileMap kentta = TileMap.FromLevelAsset("kentta1");
44        kentta.SetTileMethod('#', LisaaTaso);
45        kentta.SetTileMethod('t', LisaaTahti);
46        kentta.SetTileMethod('p', LisaaPelaaja);
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
48        Level.CreateBorders();
49        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
50    }
51    Color vari = RandomGen.NextColor();
52    void LisaaTaso(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        taso.Position = paikka;
56        taso.Color = vari;
57        Add(taso);
58    }
59
60    void LisaaTahti(Vector paikka, double leveys, double korkeus)
61    {
62        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
63        tahti.IgnoresCollisionResponse = true;
64        tahti.Position = paikka;
65        tahti.Image = tahtiKuva;
66        tahti.Tag = "tahti";
67        Add(tahti);
68    }
69
70    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
71    {
72        pelaaja1 = new PlatformCharacter(leveys, korkeus);
73        pelaaja1.Position = paikka;
74        pelaaja1.Mass = 4.0;
75        pelaaja1.Image = pelaajanKuva;
76        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
77        AddCollisionHandler(pelaaja1, "spike", TormaaSpikeen);
78        Add(pelaaja1);
79    }
80
81    void LisaaNappaimet()
82    {
83        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
84
85       
86        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "", pelaaja1, -nopeus);
87        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "", pelaaja1, nopeus);
88        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
89    }
90
91    void Liikuta(PlatformCharacter hahmo, double nopeus)
92    {
93        hahmo.Walk(nopeus);
94    }
95
96    void Hyppaa(PlatformCharacter hahmo, double nopeus)
97    {
98        hahmo.Jump(nopeus);
99    }
100
101    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
102    {
103        maaliAani.Play();
104        MessageDisplay.Add("Keräsit tähden!");
105        tahti.Destroy();
106    }
107    void TormaaSpikeen(PhysicsObject hahmo, PhysicsObject spike)
108    {
109       
110    }
111}
Note: See TracBrowser for help on using the repository browser.