source: 2015/30/SamuliP/TheSidescrollsArena/TheSideScrolls/TheSideScrolls/TheSideScrolls/TheSideScrolls.cs @ 6937

Revision 6937, 5.4 KB checked in by samsimpo, 8 years ago (diff)

all mah files

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class TheSideScrolls : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("shoulder");
18    Image tahtiKuva = LoadImage("gem");
19    Image topdirtKuva = LoadImage("topdirt");
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21    Image downdirtKuva = LoadImage("downdirt");
22    Image stoneKuva = LoadImage("stone");
23    Image possuKuva = LoadImage("the-boar");
24    Image aseKuva = LoadImage("the-boar");
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28        LuoKentta();
29        LisaaNappaimet();
30
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35    void LuoKentta()
36    {
37        TileMap kentta = TileMap.FromLevelAsset("kentta1");
38        kentta.SetTileMethod('S', LisaaKivi);
39        kentta.SetTileMethod('D', LisaaTaso2);
40        kentta.SetTileMethod('T', LisaaTaso);
41        kentta.SetTileMethod('*', LisaaTahti);
42        kentta.SetTileMethod('P', LisaaPahis);
43        kentta.SetTileMethod('N', LisaaPelaaja);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
47    }
48
49    void LisaaTaso(Vector paikka, double leveys, double korkeus)
50    {
51        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
52        taso.Position = paikka;
53        Add(taso);
54        taso.Image = topdirtKuva;
55    }
56    void LisaaTaso2(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        taso2.Position = paikka;
60        Add(taso2);
61        taso2.Image = downdirtKuva;
62    }
63    void LisaaKivi(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        kivi.Position = paikka;
67        Add(kivi);
68        kivi.Image = stoneKuva;
69    }
70    void LisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        tahti.IgnoresCollisionResponse = true;
74        tahti.Position = paikka;
75        tahti.Image = tahtiKuva;
76        tahti.Tag = "tahti";
77        Add(tahti);
78    }
79
80    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
81    {
82        pelaaja1 = new PlatformCharacter(100, 100);
83        pelaaja1.Position = paikka;
84        pelaaja1.Mass = 4.0;
85        pelaaja1.Image = pelaajanKuva;
86        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
87        Add(pelaaja1);
88
89        pelaaja1.Weapon = new AssaultRifle(40, 25);
90
91        pelaaja1.Weapon.Ammo.Value = 1000;
92
93        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
94
95        pelaaja1.Weapon.Image = aseKuva;
96    }
97    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
98    {
99        //ammus.Destroy
100    }
101    void AmmuAseella(PlatformCharacter pelaaja)
102    {
103
104        PhysicsObject ammus = pelaaja.Weapon.Shoot();
105        if (ammus != null)
106        {
107            ammus.Image = possuKuva;
108            ammus.Size *= 12;
109            ammus.MaximumLifetime = TimeSpan.FromSeconds(10.0);
110        }
111    }
112    void LisaaNappaimet()
113    {
114        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
115        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
116
117        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
118        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
119        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
120
121        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
122
123        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
124        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
125        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
126
127        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
128
129        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
130    }
131
132    void Liikuta(PlatformCharacter hahmo, double nopeus)
133    {
134        hahmo.Walk(nopeus);
135    }
136
137    void Hyppaa(PlatformCharacter hahmo, double nopeus)
138    {
139        hahmo.Jump(nopeus);
140    }
141
142    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
143    {
144        maaliAani.Play();
145        MessageDisplay.Add("Gem Added");
146        tahti.Destroy();
147    }
148    void LisaaPahis(Vector paikka, double leveys, double korkeus)
149    {
150        PhysicsObject pahis = new PhysicsObject(leveys, korkeus);
151        pahis.Shape = Shape.Rectangle;
152        pahis.Mass = 10.0;
153        Add(pahis);
154        pahis.Image = possuKuva;
155        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
156
157        satunnaisAivot.ChangeMovementSeconds = 3;
158
159        pahis.Brain = satunnaisAivot;
160
161    }
162}
Note: See TracBrowser for help on using the repository browser.