source: 2016/27/OskariL/Ikaros Project 1/Ikaros Project 1/Ikaros_Project_1/Ikaros_Project_1.cs @ 7790

Revision 7790, 4.8 KB checked in by karkaite, 3 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 Ikaros_Project_1 : PhysicsGame
10{
11    Boolean AlkuvalikkoKayty = false;
12    Image ikaros = LoadImage("ikaros");
13    Image siipi = LoadImage("siipi");
14    PhysicsObject pelaaja;
15    PhysicsObject ammus;
16
17    Vector nopeusYlos = new Vector(0, 400);
18    Vector nopeusAlas = new Vector(0, -400);
19    Vector nopeusVasemmalle = new Vector(-400, 0);
20    Vector nopeusOikealle = new Vector(400, 0);
21    Vector impulssi = new Vector(RandomGen.SelectOne(0, 200, -200, 150, -150, 42), RandomGen.SelectOne(0, 600, -600, 200, -200, 1200, -1200));
22
23    int KenttaNro = 0;
24    public override void Begin()
25    {
26        if (AlkuvalikkoKayty == false)
27        {
28            Alkuvalikko();
29        }
30       LuoKentta();
31       AsetaNappaimet();
32       // LisaaLaskurit();
33       // AloitaPeli();
34    }
35    void Alkuvalikko()
36    {
37        MultiSelectWindow valikko = new MultiSelectWindow("Welcome, watch warmly when incident is resolved",
38"Start game", "Exit");
39        valikko.ItemSelected += PainettiinValikonNappia;
40        Add(valikko);
41    }
42    void PainettiinValikonNappia(int valinta)
43    {
44        switch (valinta)
45        {
46            case 0:
47                AlkuvalikkoKayty = true;
48                KenttaNro++;
49                Begin();
50                break;
51            case 1:
52                Exit();
53                break;
54        }
55    }
56    void LuoKentta()
57    {
58        LuoPystySeina(Level.Left - 150, 0.0);
59        LuoPystySeina(Level.Right - 450, 0.0);
60        LuoVaakaSeina(-300.0, Level.Bottom - 80);
61        LuoVaakaSeina(-300.0, Level.Top + 90);
62        Level.Background.CreateGradient(Color.Cyan, Color.Black);
63        Camera.Zoom(1);
64
65        if (KenttaNro == 1)
66        {
67            LuoPahis1();
68        }
69
70        if (AlkuvalikkoKayty == false)
71        {
72            pelaaja = new PhysicsObject(64.0, 64.0);
73            pelaaja.X = -300.0;
74            pelaaja.Y = Level.Bottom + 200.0;
75            pelaaja.Image = ikaros;
76            pelaaja.CanRotate = false;           
77            Add(pelaaja);
78        }
79    }
80    void LuoPahis1()
81    {
82
83    }
84    PhysicsObject LuoPystySeina(double x, double y)
85    {
86        //luodaan seinät
87        PhysicsObject seina = PhysicsObject.CreateStaticObject(20.0, 1000.0);
88        seina.Shape = Shape.Rectangle;
89        seina.X = x;
90        seina.Y = y;
91        seina.Restitution = 0.0;
92        seina.Tag = "seina";
93        Add(seina);
94        return seina;
95    }
96    PhysicsObject LuoVaakaSeina(double x, double y)
97    {
98        PhysicsObject seina = PhysicsObject.CreateStaticObject(700.0, 20.0);
99        seina.Shape = Shape.Rectangle;
100        seina.X = x;
101        seina.Y = y;
102        seina.Restitution = 0.0;
103        seina.Tag = "seina";
104        Add(seina);
105        return seina;
106    }
107    void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
108    {
109        pelaaja.Velocity = nopeus;
110    }
111
112    void AsetaNappaimet()
113    {
114        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Liiku ylös", pelaaja, nopeusYlos);
115        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
116        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Liiku alas", pelaaja, nopeusAlas);
117        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
118        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liiku vasemmalle", pelaaja, nopeusVasemmalle);
119        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
120        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liiku oikealle", pelaaja, nopeusOikealle);
121        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
122        Keyboard.Listen(Key.Z, ButtonState.Down, AmmuPalloa1, "Ammu");
123
124
125        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
126        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
127
128    }
129    void AmmuPalloa1()
130    {
131        LuoAmmus(pelaaja.X, pelaaja.Y + 24, Shape.Circle);
132        ammus.Hit(new Vector(RandomGen.SelectOne(0, 200, -200, 90, -150, 42), RandomGen.SelectOne(0, 800, -600, 200, -200, 120, -1200)));
133
134    }
135    void LuoAmmus(double x, double y, Shape shape)
136    {
137        ammus = new PhysicsObject(32.0, 32.0);
138        ammus.X = x;
139        ammus.Y = y;
140        ammus.Shape = shape;
141        ammus.Color = Color.LightCyan;
142        ammus.CanRotate = true;
143        ammus.IgnoresCollisionResponse = false;
144        Add(ammus);
145        AddCollisionHandler(ammus, "seina", CollisionHandler.DestroyObject);
146
147    }
148
149}
Note: See TracBrowser for help on using the repository browser.