source: 2015/30/EliasHy/SpaceAdventure2.cs @ 6976

Revision 6900, 3.6 KB checked in by aahalme, 8 years ago (diff)

Peli

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SpaceAdventure : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image CoolAlusKuva = LoadImage("cool alus");
13    Image CoolHyvisalus = LoadImage("coolhyvisalus");
14    Image CoolAsteroidi = LoadImage("cool asteroid bu");
15    public override void Begin()
16    {
17        LuoKentta();
18       
19        Camera.Zoom(2.5);
20        Camera.FollowedObject = pelaaja;
21        Keyboard.Listen(Key.Left, ButtonState.Down,
22        LiikutaPelaajaa, null, new Vector(-100, 0));
23        Keyboard.Listen(Key.Right, ButtonState.Down,
24        LiikutaPelaajaa, null, new Vector(100, 0));
25        Keyboard.Listen(Key.Up, ButtonState.Down,
26        LiikutaPelaajaa, null, new Vector(0, 100));
27        Keyboard.Listen(Key.Down, ButtonState.Down,
28        LiikutaPelaajaa, null, new Vector(0, -100));
29        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
30    }
31
32    void LiikutaPelaajaa(Vector vektori)
33    {
34        pelaaja.Push(vektori);
35
36        pelaaja.CanRotate = false;
37       
38        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
39    }
40
41    void LuoKentta()
42    {
43        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
44        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("cool tausta");
45
46        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
47        ruudut.SetTileMethod(Color.FromHexCode("00FFFF"), LuoPelaaja);
48        ruudut.SetTileMethod(Color.Black, LuoVihollinen);
49        ruudut.SetTileMethod(Color.Gold, LuoAsteroidi);
50        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), LuoVihollinen2);
51
52        Level.CreateBorders();
53
54        //3. Execute luo kentän
55        //   Parametreina leveys ja korkeus
56        ruudut.Execute(20, 20);
57    }
58    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
59    {
60       
61        //pelaaja = new PhysicsObject(10, 10);
62        pelaaja = new PhysicsObject(CoolHyvisalus);
63        pelaaja.Restitution = 1.0;
64        pelaaja.Color = Color.Blue;
65        pelaaja.Position = paikka;
66        Add(pelaaja);
67    }
68    void LuoVihollinen(Vector paikka, double leveys, double korkeus)
69    {
70        PhysicsObject Vihollinen = new PhysicsObject(CoolAlusKuva);
71        Vihollinen.Position = paikka;
72        Add(Vihollinen);
73        Vihollinen.Tag = "pahis";
74       
75        //AddCollisionHandler(Laser, CollisionHandler.ExplodeTarget(150, false));
76       
77       
78        //Tehdään uudet satunnaisaivot, jotka liikkuvat nopeudella 200
79        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(150);
80
81        //Ominaisuuksien muokkaaminen
82        satunnaisAivot.ChangeMovementSeconds = 3;
83
84        //Aivot käyttöön oliolle
85        Vihollinen.Brain = satunnaisAivot;
86       
87    }
88    void LuoAsteroidi(Vector paikka, double leveys, double korkeus)
89    {
90        //PhysicsObject Asteroidi = new PhysicsObject(10, 10);
91        PhysicsObject Asteroidi = new PhysicsObject(CoolAsteroidi);
92        Asteroidi.Color = Color.Red;
93        Asteroidi.Position = paikka;
94        Add(Asteroidi);
95
96    }
97    void LuoVihollinen2(Vector paikka, double leveys, double korkeus)
98    {
99        PhysicsObject Vihollinen2 = new PhysicsObject(10, 10);
100        Vihollinen2.Color = Color.Gold;
101        Vihollinen2.Position = paikka;
102        Add(Vihollinen2);
103        Vihollinen2.Tag = "pahis2";
104
105    }
106 
107}
Note: See TracBrowser for help on using the repository browser.