source: 2015/27/SanteriK/Hundreddays/Hundreddays/Hundreddays/Hundreddays.cs @ 6612

Revision 6612, 4.4 KB checked in by saveviku, 4 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 Hundreddays : PhysicsGame
10{
11    Image wallimage = LoadImage("seinä");
12    Image pelaajankuva = LoadImage("ukkeli2");
13    Image pelaajankuva1 = LoadImage("ukkeli1");
14    Image groundImage = LoadImage("lattia");
15
16    PhysicsObject ukkeli2;
17    PhysicsObject ukkeli1;
18
19    //Kuinka nopeasti ukkeli liikkuu maksimissaan
20    double maxLiikkuminen = 1800.0;
21
22    AssaultRifle ase;
23
24    public override void Begin()
25    {
26
27        LuoKentta();
28        AsetaOhjaimet();
29
30        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
31        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
32    }
33    void LuoLattia(Vector paikka, double leveys, double korkeus)
34    {
35        GameObject lattia = new GameObject(leveys, korkeus);
36
37        lattia.Position = paikka;
38        Add(lattia, -1);
39        lattia.Image = groundImage;
40
41    }
42
43    void LuoKentta()
44    {
45        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä");
46
47        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja1);
48        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja2);
49        ruudut.SetTileMethod(Color.Black, LuoTaso);
50        ruudut.SetTileMethod(Color.Gray, LuoLattia);
51        ruudut.Execute(20, 20);
52        Camera.ZoomToLevel();
53    }
54    void LuoTaso(Vector paikka, double leveys, double korkeus)
55    {
56        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
57        taso.Position = paikka;
58        taso.Image = wallimage;
59        taso.CollisionIgnoreGroup = 1;
60        Add(taso);
61
62
63    }
64 
65    void AsetaOhjaimet()
66    {
67        //ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.", ukkeli2);
68        //ControllerTwo.Listen(Button.A, ButtonState.Down, AmmuAseella, "ammu", ase);
69        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.", ukkeli1);
70        ControllerOne.Listen(Button.A, ButtonState.Down, AmmuAseella, "ammu", ase);
71        //Keyboard.Listen(Key.Left, ButtonState.Down,
72        //  LiikutaPelaajaa, null, new Vector(-1000, 0));
73        //Keyboard.Listen(Key.Right, ButtonState.Down,
74        //  LiikutaPelaajaa, null, new Vector(1000, 0));
75        //Keyboard.Listen(Key.Up, ButtonState.Down,
76        //  LiikutaPelaajaa, null, new Vector(0, 1000));
77        //Keyboard.Listen(Key.Down, ButtonState.Down,
78        //  LiikutaPelaajaa, null, new Vector(0, -1000));
79        //Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
80
81
82    }
83
84    void LiikutaPelaajaa(AnalogState tatinTila, PhysicsObject pelaaja)
85    {
86        pelaaja.Angle = tatinTila.StateVector.Angle;
87        pelaaja.Push(tatinTila.StateVector * maxLiikkuminen);
88       
89    }
90
91    void AmmuAseella(AssaultRifle ase)
92    {
93        PhysicsObject ammus = ase.Shoot();
94
95        if (ammus != null)
96        {
97            //ammus.Size *= 3;
98            //ammus.Image = ...
99            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
100        }
101    }
102    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
103    {
104        ammus.Destroy();
105    }
106
107    PhysicsObject LuoPelaaja(Vector paikka, double leveys, double korkeus)
108    {
109        PhysicsObject ukkeli = new PhysicsObject(40, 20);
110        ukkeli.LinearDamping = 0.7;
111        ukkeli.AngularDamping = 0.9;
112        ukkeli.Shape = Shape.Rectangle;
113        ukkeli.Position = paikka;
114        ukkeli.Image = pelaajankuva1;
115        ukkeli.Color = Color.Red;
116       
117        Add(ukkeli);
118
119        ukkeli1 = ukkeli;
120
121        ase = new AssaultRifle(30, 10);
122
123        // //Ammusten määrä aluksi:
124        ase.Ammo.Value = 1000;
125        ase.IsVisible = false;
126        // //Mitä tapahtuu kun ammus osuu johonkin?
127        ase.ProjectileCollision = AmmusOsui;
128        ukkeli.Add(ase);
129
130        LuoLattia(paikka, leveys, korkeus);
131
132        return ukkeli;
133    }
134
135    void LuoPelaaja1(Vector paikka, double leveys, double korkeus)
136    {
137        ukkeli1 = LuoPelaaja(paikka, leveys, korkeus);
138    }
139
140    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
141    {
142        ukkeli2 = LuoPelaaja(paikka, leveys, korkeus);
143    }
144}
145
146
Note: See TracBrowser for help on using the repository browser.