source: 2015/26/KonstaH/FlappyBirdRemake/FlappyBirdRemake/FlappyBirdRemake/FlappyBirdRemake.cs @ 6135

Revision 6135, 3.9 KB checked in by empaheik, 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 FlappyBirdRemake : PhysicsGame
10{
11    bool peliKaynnissa = false;
12    const double nopeus = 10000;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("lintu");
19    Image[] pelaajanHyppykuvat = LoadImages("lintu", "lapsy");
20    Image tahtiKuva = LoadImage("tahti");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        Gravity = new Vector(0, -1000);
27
28        LuoKentta();
29        LisaaNappaimet();
30
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34
35        Timer liikutusajastin = new Timer();
36        liikutusajastin.Interval = 0.01;
37        liikutusajastin.Timeout += SiirraPelaajaaOikeammalle;
38        liikutusajastin.Start();
39        peliKaynnissa = true;
40    }
41    void SiirraPelaajaaOikeammalle()
42    {
43        pelaaja1.Push(new Vector(nopeus, 0.0));
44
45    }
46    void LuoKentta()
47    {
48        TileMap kentta = TileMap.FromLevelAsset("kentta1");
49        kentta.SetTileMethod('#', LisaaTaso);
50        kentta.SetTileMethod('*', LisaaTahti);
51        kentta.SetTileMethod('L', LisaaPelaaja);
52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
55    }
56
57    void LisaaTaso(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        taso.Position = paikka;
61        taso.Color = Color.Green;
62        taso.Tag = "seina";
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 PlatformCharacter(leveys, korkeus);
79        pelaaja1.Position = paikka;
80        pelaaja1.Mass = 4.0;
81        pelaaja1.Image = pelaajanKuva;
82        pelaaja1.AnimJump = new Animation(pelaajanHyppykuvat);
83        pelaaja1.AnimFall = new Animation(pelaajanKuva);
84        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
85        AddCollisionHandler(pelaaja1, "seina", TormaaTasoon);
86        Add(pelaaja1);
87    }
88    void TormaaTasoon(PhysicsObject tormaaja, PhysicsObject kohde)
89    {
90        if (peliKaynnissa)
91        {
92            MessageDisplay.Add("Kuolit! :(");
93            Keyboard.Disable(Key.Up);
94            peliKaynnissa = false;
95        }
96    }
97    void LisaaNappaimet()
98    {
99        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
100        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
101
102
103        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
104
105        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
106
107
108        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
109
110        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
111    }
112
113    void Liikuta(PlatformCharacter hahmo, double nopeus)
114    {
115        hahmo.Walk(nopeus);
116    }
117
118    void Hyppaa(PlatformCharacter hahmo, double nopeus)
119    {
120        pelaaja1.ForceJump(nopeus);
121    }
122
123    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
124    {
125        maaliAani.Play();
126        MessageDisplay.Add("Keräsit tähden!");
127        tahti.Destroy();
128    }
129}
Note: See TracBrowser for help on using the repository browser.