source: 2017/31/OskariP/Alienharvester2/Alienharvester2/Alienharvester2/Alienharvester2.cs @ 9370

Revision 9370, 4.6 KB checked in by npo17_86, 2 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 Alienharvester2 : PhysicsGame
10{
11    Image olion2uva = LoadImage("gargantua");
12     const double nopeus = 200;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("Adrian");
19    Image tahtiKuva = LoadImage("tahti");
20    Image olion3uva = LoadImage("gargantua");
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        pelaaja1.Weapon = new AssaultRifle(30, 10);
35        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
36        PhysicsObject vortigaunt = new PhysicsObject(40, 20);
37        vortigaunt.Shape = Shape.Rectangle;
38        Add(vortigaunt);
39        vortigaunt.Color = Color.DarkGreen;
40        PhysicsObject gargantuan = new PhysicsObject(200, 50);
41        gargantuan.Shape = Shape.Rectangle;
42        Add(gargantuan);
43        gargantuan.Color = Color.DarkBlue;
44        gargantuan.Image = olion2uva;
45    }
46
47    void LuoKentta()
48    {
49        TileMap kentta = TileMap.FromLevelAsset("kentta1");
50        kentta.SetTileMethod('#', LisaaTaso);
51        kentta.SetTileMethod('*', LisaaTahti);
52        kentta.SetTileMethod('N', LisaaPelaaja);
53        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
56       
57    }
58
59    void LisaaTaso(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        taso.Position = paikka;
63        taso.Color = Color.Green;
64        Add(taso);
65    }
66
67    void LisaaTahti(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        tahti.IgnoresCollisionResponse = true;
71        tahti.Position = paikka;
72        tahti.Image = tahtiKuva;
73        tahti.Tag = "tahti";
74        Add(tahti);
75    }
76
77    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
78    {
79
80        AssaultRifle pyssy = new AssaultRifle(20, 5);
81        pyssy.Angle += Angle.FromDegrees(1);
82        pelaaja1 = new PlatformCharacter(leveys, korkeus);
83        pelaaja1.Position = paikka;
84        pelaaja1.Mass = 4.0;
85        pelaaja1.Image = pelaajanKuva;
86        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
87        Add(pelaaja1);
88   
89   
90    }
91    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
92    {
93
94    }
95
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100
101        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
102        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
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        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
108        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
109        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
110        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
111
112        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
113    }
114
115    void Liikuta(PlatformCharacter hahmo, double nopeus)
116    {
117        hahmo.Walk(nopeus);
118    }
119
120    void Hyppaa(PlatformCharacter hahmo, double nopeus)
121    {
122        hahmo.Jump(nopeus);
123    }
124
125    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
126    {
127        maaliAani.Play();
128        MessageDisplay.Add("Keräsit tähden!");
129        tahti.Destroy();
130    }
131    void AmmuAseella(PlatformCharacter pelaaja)
132    {
133        PhysicsObject ammus = pelaaja.Weapon.Shoot();
134
135        if (ammus != null)
136        {
137            ammus.Size *= 0.5;
138            //ammus.Image = ...
139            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.5);
140        }
141    }
142}
Note: See TracBrowser for help on using the repository browser.