source: 2016/27/DanielL/SurvMontage/SurvMontage/SurvMontage/SurvMontage.cs @ 8041

Revision 8041, 5.4 KB checked in by daallukk, 3 years ago (diff)

Musiikki jne. lisätty

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SurvMontage : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter Zombie1;
17
18    Image pelaajanKuva = LoadImage("Character1");
19    Image tahtiKuva = LoadImage("tahti2");
20    Image tiiliKuva = LoadImage("ruohotextuuri");
21    Image kattokruunuKuva = LoadImage("Chandelier");
22    Image taustaKuva = LoadImage("background");
23    Image[] kavelyKuvat = LoadImages("Character1", "Character2", "Character3");
24    Image kivaariKuva = LoadImage("Sniper");
25    Image[] zombiKuvat = LoadImages("Zombie1", "Zombie2", "Zombie3");
26    Image zombinKuva = LoadImage("Zombie1");
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33        MediaPlayer.Play("High");
34        MediaPlayer.IsRepeating = true;
35        LuoKentta();
36        LisaaNappaimet();
37
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 1.2;
40        Camera.StayInLevel = true;
41    }
42
43    void LuoKentta()
44    {
45        TileMap kentta = TileMap.FromLevelAsset("kentta1");
46        kentta.SetTileMethod('#', LisaaTaso, tiiliKuva);
47        kentta.SetTileMethod('Q', LisaaTaso, pelaajanKuva);
48        kentta.SetTileMethod('A', LisaaTaso, kattokruunuKuva);
49        kentta.SetTileMethod('Z', LisaaZombie);
50        kentta.SetTileMethod('*', LisaaTahti);
51        kentta.SetTileMethod('N', LisaaPelaaja);
52        kentta.SetTileMethod('%', LisaaTikkaat);
53        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
56        Level.Background.Image = LoadImage("hUukl3e");
57    }
58
59    void LisaaTaso(Vector paikka, double leveys, double korkeus, Image kuva)
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        taso.Position = paikka;
63        taso.Image = kuva;
64        Add(taso);
65    }
66
67    void LisaaZombie(Vector paikka, double leveys, double korkeus)
68    {
69        Zombie1 = new PlatformCharacter(leveys, korkeus);
70        Zombie1.Position = paikka;
71        Zombie1.Mass = 4.0;
72        Zombie1.AnimWalk = new Animation(zombiKuvat) { FPS = 9 };
73        Zombie1.AnimIdle = new Animation(zombinKuva);
74        Add(Zombie1);
75        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
76        tasoAivot.Speed = 100;
77
78       Zombie1.Brain = tasoAivot;
79        tasoAivot.FallsOffPlatforms = false;
80        tasoAivot.JumpSpeed = 700;
81        tasoAivot.TriesToJump = true;
82    }
83
84    void LisaaTikkaat(Vector paikka, double leveys, double korkeus)
85    {
86     
87    }
88    void LisaaTahti(Vector paikka, double leveys, double korkeus)
89    {
90        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
91        tahti.IgnoresCollisionResponse = true;
92        tahti.Position = paikka;
93        tahti.Image = tahtiKuva;
94        tahti.Tag = "tahti";
95        Add(tahti);
96    }
97    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
98    {
99        pelaaja1 = new PlatformCharacter(leveys, korkeus);
100        pelaaja1.Position = paikka;
101        pelaaja1.Mass = 4.0;
102        pelaaja1.AnimWalk = new Animation(kavelyKuvat) {FPS = 9};
103        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
104        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
105        Add(pelaaja1);
106    }
107
108    void LisaaNappaimet()
109    {
110        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
111        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
112
113        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
114        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
115        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
116
117        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
118
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        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
122
123        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
124    }
125
126    void Liikuta(PlatformCharacter hahmo, double nopeus)
127    {
128        hahmo.Walk(nopeus);
129    }
130
131    void Hyppaa(PlatformCharacter hahmo, double nopeus)
132    {
133        hahmo.Jump(nopeus);
134    }
135
136    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
137    {
138        maaliAani.Play();
139        MessageDisplay.Add("Keräsit tähden!");
140        tahti.Destroy();
141    }
142
143    IntMeter pisteLaskuri;
144
145    void LuoPistelaskuri()
146    {
147        pisteLaskuri = new IntMeter(0);
148
149        Label pisteNaytto = new Label();
150        pisteNaytto.X = Screen.Left + 100;
151        pisteNaytto.Y = Screen.Top - 100;
152        pisteNaytto.TextColor = Color.Black;
153        pisteNaytto.Color = Color.White;
154
155        pisteNaytto.BindTo(pisteLaskuri);
156        Add(pisteNaytto);
157        pisteNaytto.BindTo(pisteLaskuri);
158        Add(pisteNaytto);
159    }
160    }
Note: See TracBrowser for help on using the repository browser.