source: 2017/31/TaavettiV/Trumpsimulator/Trumpsimulator/Trumpsimulator/Trumpsimulator.cs @ 9260

Revision 9260, 4.3 KB checked in by npo17_69, 2 years ago (diff)
RevLine 
[9249]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
[9260]9class Pelihahmo : PlatformCharacter
10{
11    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
12    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
13
14    public Pelihahmo(double leveys, double korkeus)
15        : base(leveys, korkeus)
16    {
17        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
18    }
19
20}
21
22
[9249]23public class Trumpsimulator : PhysicsGame
24{
25    const double nopeus = 200;
26    const double hyppyNopeus = 750;
27    const int RUUDUN_KOKO = 40;
[9259]28    const double flynopeus= 5000;
[9249]29
[9259]30
[9249]31    PlatformCharacter pelaaja1;
32
[9257]33    Image pelaajanKuva = LoadImage("trumphahmo");
34    Image tahtiKuva = LoadImage("one dollar");
[9249]35
36    SoundEffect maaliAani = LoadSoundEffect("maali");
37
38    public override void Begin()
39    {
40        Gravity = new Vector(0, -1000);
41
42        LuoKentta();
43        LisaaNappaimet();
44
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48    }
49
50    void LuoKentta()
51    {
52        TileMap kentta = TileMap.FromLevelAsset("kentta1");
53        kentta.SetTileMethod('#', LisaaTaso);
[9257]54        kentta.SetTileMethod('*', Lisaadollar);
[9249]55        kentta.SetTileMethod('N', LisaaPelaaja);
56        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
57        Level.CreateBorders();
[9259]58        Level.Background.CreateGradient(Color.White, Color.SeaGreen);
[9260]59        Level.Background.Image = LoadImage("trump");
[9249]60    }
61
62    void LisaaTaso(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        taso.Position = paikka;
66        taso.Color = Color.Green;
67        Add(taso);
68    }
69
[9257]70    void Lisaadollar(Vector paikka, double leveys, double korkeus)
[9249]71    {
[9257]72        PhysicsObject dollar = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        dollar.IgnoresCollisionResponse = true;
74        dollar.Position = paikka;
75        dollar.Image = tahtiKuva;
76        dollar.Tag = "dollar";
77        Add(dollar);
[9249]78    }
79
80    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
81    {
82        pelaaja1 = new PlatformCharacter(leveys, korkeus);
83        pelaaja1.Position = paikka;
84        pelaaja1.Mass = 4.0;
85        pelaaja1.Image = pelaajanKuva;
[9257]86        AddCollisionHandler(pelaaja1, "dollar", Tormaadollar);
[9249]87        Add(pelaaja1);
88    }
89
90    void LisaaNappaimet()
91    {
92        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
93        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
94
[9259]95        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
96        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
97        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
98        Keyboard.Listen(Key.Space , ButtonState.Down, fly, "pelaaja lentää", pelaaja1, flynopeus);
[9249]99        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
100
[9259]101        //ControllerOne.Listen(Button.A, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
102        //ControllerOne.Listen(Button.D, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
103        //ControllerOne.Listen(Button.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
[9249]104
105        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
106    }
107
108    void Liikuta(PlatformCharacter hahmo, double nopeus)
109    {
110        hahmo.Walk(nopeus);
111    }
112
113    void Hyppaa(PlatformCharacter hahmo, double nopeus)
114    {
115        hahmo.Jump(nopeus);
116    }
[9257]117    void luomeksikolainen(PlatformCharacter luomeksikolainen, double nopeus)
[9249]118    {
[9257]119        PhysicsObject meksikolainen = new PhysicsObject(40, 20);
120        meksikolainen.Shape = Shape.Rectangle;
121        meksikolainen.Mass = 10.0;
122        Add(meksikolainen);
123    }
124    void Tormaadollar(PhysicsObject hahmo, PhysicsObject dollar)
125    {
[9249]126        maaliAani.Play();
[9257]127        MessageDisplay.Add("Keräsit dollarin!");
128        dollar.Destroy();
[9249]129    }
[9259]130    void fly(PlatformCharacter hahmo, double nopeus)
131    {
132
133        hahmo.Push(new Vector(0, nopeus));
134    }
[9249]135}
Note: See TracBrowser for help on using the repository browser.