source: 2015/27/JaakkoS/RPGpeli/RPGpeli/RPGpeli/RPGpeli.cs @ 7126

Revision 7126, 4.8 KB checked in by sieerinn, 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 RPGpeli : PhysicsGame
10{
11
12
13    PhysicsObject pelaaja;
14    PhysicsObject Vihu;
15    SoundEffect Karjaisu = LoadSoundEffect("Rpgkarjaisu");
16    Image ritariKuva = LoadImage("ritari");
17    Image Vihukuva1 = LoadImage("Vihollien1");
18    Image Vihukuva1T = LoadImage("Vihollinen1Taka");
19    Image Vihukuva1O = LoadImage("VihollinenOikea");
20    Image Vihukuva1V = LoadImage("VihollinenVasen");
21    Image LuolaKuva = LoadImage("luola");
22
23    static private Image[] ritariOikealle = LoadImages("Ritarioikealle", "RanimaatioO");
24    Animation ritariVasenAnim = new Animation(ritariOikealle);
25    static private Image[] ritariVasemmalle = LoadImages("Ritarivasemmalle", "RanimaatioV");
26    Animation ritariOikeaAnim = new Animation(ritariVasemmalle);
27    static private Image[] ritariEteen = LoadImages("RanimaatioE1", "RanimaatioE2");
28    Animation ritariEteenAnim = new Animation(ritariEteen);
29    static private Image[] ritariTaakse = LoadImages("RanimaatioT1", "RanimaatioT2");
30    Animation ritariTaakseAnim = new Animation(ritariTaakse);
31    Image ritariTaka = LoadImage("Ritaritaka");
32
33    static private Image[] Vihueteen = LoadImages("V1AnimaatioE1", "V1AnimaatioE2");
34    Animation VihuAnim = new Animation(Vihueteen);
35
36
37    public override void Begin()
38    {
39       
40
41        pelaaja = new PhysicsObject(50, 100);
42        pelaaja.Image = ritariKuva;
43        pelaaja.LinearDamping = 0.90;
44        pelaaja.Tag = "pelaaja";
45        pelaaja.CanRotate = false;
46        Add(pelaaja);
47
48        lisaaLuola(300, 200);
49
50        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
51        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
52        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", pelaaja, new Vector(0, -600));
53        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", pelaaja, new Vector(0, 600));
54        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", pelaaja, new Vector(-600, 0));
55        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", pelaaja, new Vector(600, 0));
56        Keyboard.Listen(Key.Up, ButtonState.Pressed, delegate { pelaaja.Animation = ritariTaakseAnim; pelaaja.Animation.FPS = 4; pelaaja.Animation.Start(); }, "");
57        Keyboard.Listen(Key.Down, ButtonState.Pressed, delegate { pelaaja.Animation = ritariEteenAnim; pelaaja.Animation.FPS = 4; pelaaja.Animation.Start(); }, "");
58        Keyboard.Listen(Key.Left, ButtonState.Pressed, delegate { pelaaja.Animation = ritariVasenAnim; pelaaja.Animation.FPS = 4; pelaaja.Animation.Start(); }, "");
59        Keyboard.Listen(Key.Right, ButtonState.Pressed, delegate { pelaaja.Animation = ritariOikeaAnim; pelaaja.Animation.FPS = 4; pelaaja.Animation.Start(); }, "");
60        Keyboard.Listen(Key.Up, ButtonState.Released, delegate { pelaaja.Animation.Stop(); pelaaja.Image = ritariTaka; }, "");
61        Keyboard.Listen(Key.Down, ButtonState.Released, delegate { pelaaja.Animation.Stop(); pelaaja.Image = ritariKuva; }, "");
62        Keyboard.Listen(Key.Left, ButtonState.Released, delegate { pelaaja.Animation.Stop(); }, "");
63        Keyboard.Listen(Key.Right, ButtonState.Released, delegate { pelaaja.Animation.Stop(); }, "");
64
65        SmoothTextures = false;
66    }
67
68
69
70
71    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector vektori)
72    {
73        pelaaja.Push(vektori);
74    }
75
76    void lisaaVihollinenen(double x, double y)
77    {
78        Vihu = new PhysicsObject(50, 70);
79        Vihu.MaximumLifetime = TimeSpan.FromSeconds(10.0);
80        Vihu.X = x;
81        Vihu.Y = y;
82        Vihu.Animation = VihuAnim;
83        Vihu.Animation.FPS = 4;
84        Vihu.Animation.Start();
85        Vihu.CanRotate = false;
86        Vihu.Tag = "Vihollinen";
87
88        FollowerBrain seuraajaAivot = new FollowerBrain("pelaaja");
89        //seuraajaAivot.TargetDistance.AddTrigger(10, TriggerDirection.Down, Karjaise);
90        seuraajaAivot.DistanceToTarget.AddTrigger(60, TriggerDirection.Down, Karjaise);
91        seuraajaAivot.Speed = 150;
92        Vihu.Brain = seuraajaAivot;
93
94        Add(Vihu);
95
96    }
97    void lisaaLuola(double x, double y)
98    {
99        GameObject Luola = new GameObject(50, 50);
100        Luola.X = x;
101        Luola.Y = y;
102        Luola.Image = LuolaKuva;
103        Luola.Tag = "vihuspawn";
104        Add(Luola);
105
106        Timer vihuAjastin = new Timer();
107        vihuAjastin.Interval = 2;
108        vihuAjastin.Timeout += delegate { lisaaVihollinenen(x, y); };
109       
110        vihuAjastin.Start();
111
112    }
113    void Karjaise()
114    {
115        //PlaySound("Karjaisu");
116        Karjaisu.Play();
117    }
118
119}
Note: See TracBrowser for help on using the repository browser.