source: 2012/26/VilleS/TasoKokeiluJuttu/TasoKokeiluJuttu/TasoKokeiluJuttu/TasoKokeiluJuttu.cs @ 3578

Revision 3578, 20.9 KB checked in by vivasuom, 8 years ago (diff)

Talletus.

Line 
1using System;                                                                                                                                         
2using System.Collections.Generic;                                                                                                                     
3using Jypeli;                                                                                                                                         
4using Jypeli.Assets;                                                                                                                                 
5using Jypeli.Controls;                                                                                                                               
6using Jypeli.Effects;                                                                                                                                 
7using Jypeli.Widgets;                                                                                                                                 
8                                                                                                                                                     
9public class TasoKokeiluJuttu : PhysicsGame                                                                                                           
10{                                                                                                                                                     
11    const double nopeus = 200;                                                                                                                       
12    const double hyppyNopeus = 1000;                                                                                                                 
13    const int RUUDUN_KOKO = 40;                                                                                                                       
14                                                                                                                                                     
15    PlatformCharacter pelaaja1;                                                                                                                       
16                                                                                                                                                     
17    Image pelaajanKuva = LoadImage("AjLautailee");
18    Image pelaajanKuva2 = LoadImage("AjLautailee2");                                                                                         
19    Image tahtiKuva = LoadImage("es");                                                                                                               
20    Image make = LoadImage("Make");                                                                                                                   
21                                                                                                                                                     
22    SoundEffect hyppyAani = LoadSoundEffect("my_movie");                                                                                             
23    SoundEffect maaliAani = LoadSoundEffect("maali");                                                                                                 
24    SoundEffect kuolemaAani = LoadSoundEffect("die_sound_effect");                                                                                   
25                                                                                                                                                     
26    TimeSpan aanenAloitusAika = TimeSpan.MaxValue;                                                                                                   
27                                                                                                                                                     
28    public override void Begin()                                                                                                                     
29    {                                                                                                                                                 
30        Gravity = new Vector(0, -1000);                                                                                                               
31                                                                                                                                                     
32        LuoKentta();                                                                                                                                 
33        LisaaNappaimet();                                                                                                                             
34                                                                                                                                                     
35        Camera.Follow(pelaaja1);                                                                                                                     
36        Camera.ZoomFactor = 3.0;                                                                                                                     
37        Camera.StayInLevel = true;                                                                                                                   
38    }                                                                                                                                                 
39                                                                                                                                                     
40    void LuoKentta()                                                                                                                                 
41    {                                                                                                                                                 
42        ColorTileMap kentta = ColorTileMap.FromLevelAsset("kentta1");                                                                                 
43        kentta.SetTileMethod(new Color(0,255,0), LisaaPelaaja);                                                                                       
44        kentta.SetTileMethod(Color.Black, LisaaTaso);                                                                                                 
45        kentta.SetTileMethod(Color.Yellow, LisaaTahti);                                                                                               
46        kentta.SetTileMethod(Color.Red, LisaaMake);                                                                                                   
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);                                                                                                     
48        Level.CreateBorders();                                                                                                                       
49        Level.Background.CreateGradient(Color.White, Color.SkyBlue);                                                                                 
50    }                                                                                                                                                 
51                                                                                                                                                     
52    void LisaaTaso(Vector paikka, double leveys, double korkeus)                                                                                     
53    {                                                                                                                                                 
54        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);                                                                       
55        taso.Position = paikka;                                                                                                                       
56        taso.Color = Color.Green;                                                                                                                     
57        Add(taso);                                                                                                                                   
58    }                                                                                                                                                 
59                                                                                                                                                     
60    void LisaaTahti(Vector paikka, double leveys, double korkeus)                                                                                     
61    {                                                                                                                                                 
62        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25, 50);                                                                               
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(50, 100);                                                                                                   
73        pelaaja1.Position = paikka;                                                                                                                   
74        pelaaja1.Mass = 4.0;
75        pelaaja1.Tag = "oikealle";
76        pelaaja1.Image = pelaajanKuva2;                                                                                                       
77        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);                                                                                       
78        Add(pelaaja1);                                                                                                                               
79    }                                                                                                                                                 
80                                                                                                                                                     
81    void LisaaNappaimet()                                                                                                                             
82    {                                                                                                                                                 
83        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");                                                               
84        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");                                                                     
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");                                                                 
86                                                                                                                                                     
87        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);                                               
88        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);                                               
89        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);                                               
90                                                                                                                                                     
91        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");                                                               
92                                                                                                                                                     
93        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);                           
94        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);                             
95        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);                                         
96                                                                                                                                                     
97        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");                                                                                           
98    }                                                                                                                                                 
99                                                                                                                                                     
100    void Liikuta(PlatformCharacter pelaaja, double nopeus)                                                                                           
101    {                                                                                                                                                 
102        pelaaja.Walk(nopeus);
103        if (pelaaja1.Tag == "vasemmalle" & nopeus > 0)
104        {
105            pelaaja1.Tag = "oikealle";
106            pelaaja1.Image = pelaajanKuva2;
107        }
108        else if (pelaaja1.Tag == "oikealle" & nopeus < 0)
109        {
110            pelaaja1.Tag = "vasemmalle";
111            pelaaja1.Image = pelaajanKuva;
112        }                                                         
113    }                                                                                                                                                 
114                                                                                                                                                     
115    void Hyppaa(PlatformCharacter hahmo, double nopeus)                                                                                               
116    {                                                                                                                                                 
117        hahmo.Jump(nopeus);                                                                                                                           
118    }                                                                                                                                                 
119                                                                                                                                                     
120    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)                                                                                     
121    {                                                                                                                                                 
122        MessageDisplay.Add("Keräsit es!");                                                                                                           
123        maaliAani.Play();                                                                                                                             
124        tahti.Destroy();                                                                                               
125    }                                                                                                                                                 
126                                                                                                                                                     
127    void LisaaMake(Vector paikka, double leveys, double korkeus)                                                                                     
128    {                                                                                                                                                 
129        PlatformCharacter Make = new PlatformCharacter(50, 100);                                                                                     
130        Make.Position = paikka;                                                                                                                       
131        Make.Mass = 4.0;                                                                                                                             
132        Make.Image = make;                                                                                                                           
133        AddCollisionHandler(Make, pelaaja1, MakeMurhaa);                                                                                             
134        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
135        Make.Brain = seuraajanAivot;
136        Add(Make);                                                                                                                                   
137    }                                                                                                                                                 
138                                                                                                                                                     
139    void TormaaTahteen2(PhysicsObject hahmo, PhysicsObject tahti)                                                                                     
140    {                                                                                                                                                 
141        MessageDisplay.Add("Make pölli sun es!");                                                                                                     
142        tahti.Destroy();                                                                                                                             
143    }                                                                                                                                                 
144                                                                                                                                                     
145    void MakeMurhaa(PhysicsObject jonne, PhysicsObject pelaaja)                                                                                       
146    {                                                                                                                                                 
147      MessageDisplay.Add("Make murhaa!");                                                                                                             
148      kuolemaAani.Play();                                                                                                                             
149      pelaaja.Destroy();                                                                                                                             
150                                                                                                                                                     
151    }                                                                                                                                                 
152                                                                                                                                                     
153}                                                                                                                                                     
Note: See TracBrowser for help on using the repository browser.