source: 2018/23/MIIKAK/FysiikkaPeli1/FysiikkaPeli1/Nyan_cat_simulator.cs @ 9625

Revision 9625, 4.6 KB checked in by mikurhin, 20 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7
8public class FysiikkaPeli1 : PhysicsGame
9{
10    PhysicsObject kissa;
11   
12    Image olionKuva = LoadImage("tekstuuri1");
13    Image olionKuva2 = LoadImage("tekstuuri2");
14    Image taustakuva = LoadImage("taustakuva");
15    int luku = RandomGen.NextInt(-315, 246);
16    PhysicsObject pilvi;
17    Vector nopeusylos = new Vector(0, 1000);
18    Vector nopeusalas = new Vector(0, -1000);
19    Label pistenaytto = new Label();
20    IntMeter pistelaskuri;
21
22    public override void Begin()
23    {
24        // Kirjoita ohjelmakoodisi tähän
25        SetWindowSize(1000, 630);
26        Screen.Size = new Vector(1100, 630);
27        Level.Size = Screen.Size;
28        PhysicsObject yla = Level.CreateTopBorder();
29        yla.Restitution = 0;
30        yla.IsVisible = false;
31        PhysicsObject ala = Level.CreateBottomBorder();
32        ala.Restitution = 0;
33        ala.IsVisible = false;
34        pistelaskuri = new IntMeter(0);
35        Label pistenaytto = new Label();
36        luopistelaskuri();
37        kissa = new PhysicsObject(165, 107);
38        kissa.Image = olionKuva;
39        kissa.Color = Color.Violet;
40        Level.Background.Image = taustakuva;
41        Add(kissa);
42        lisaapilvi();
43        jatkuu();
44        kissa.X = -380;
45        MediaPlayer.Play("NyanCatoriginal");
46        MediaPlayer.IsRepeating = true;
47        AddCollisionHandler(kissa, "pilvi",  CollisionHandler.DestroyObject);
48        AddCollisionHandler(kissa, "pilvi", pelaajattormaavat);
49       
50        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
51        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
52        Keyboard.Listen(Key.Up, ButtonState.Down, Asetanopeus, "Ylös", kissa, nopeusylos);
53        Keyboard.Listen(Key.Up, ButtonState.Released, Asetanopeus, null, kissa, Vector.Zero);
54        Keyboard.Listen(Key.Down, ButtonState.Down, Asetanopeus, "Alas", kissa, nopeusalas);
55        Keyboard.Listen(Key.Down, ButtonState.Released, Asetanopeus, null, kissa, Vector.Zero);
56        Keyboard.Listen(Key.PrintScreen, ButtonState.Down, tormaapilveen, "salaisuus");
57        Keyboard.Listen(Key.R, ButtonState.Pressed, restart, "restar");
58        Keyboard.Listen(Key.Decimal, ButtonState.Pressed, ky, "salaisuus");
59        Keyboard.Listen(Key.Pause, ButtonState.Pressed, ShowControlHelp, null);
60
61        MessageDisplay.Position += new Vector(50,0);
62    }
63
64    private void tormaapilveen()
65    {
66        foreach (PhysicsObject pilvi in GetObjectsWithTag("pilvi"))
67            pilvi.Destroy();
68    }
69
70    void lisaapilvi()
71    {
72        PhysicsObject pilvi;
73        pilvi = new PhysicsObject(200, 100);
74        pilvi.Image = olionKuva2;
75        pilvi.Tag = "pilvi";
76        Add(pilvi);
77        pilvi.Y = luku;
78        pilvi.X = 500;
79        luku = RandomGen.NextInt(-265, 246);
80        Vector impulssi = new Vector(-500, 0);
81        pilvi.Hit(impulssi);
82        pistelaskuri.Value += 1;
83    }
84    void jatkuu()
85    {
86            Timer ajastin = new Timer();
87            ajastin.Interval = 1;
88            ajastin.Timeout += lisaapilvi;
89            ajastin.Start();
90    }
91    void pelaajattormaavat(PhysicsObject tormaaja, PhysicsObject kohde)
92    {
93        MediaPlayer.Stop();
94        IsPaused = true;
95    }
96    void Asetanopeus(PhysicsObject kissa, Vector nopeus)
97    {
98        kissa.Velocity = nopeus;
99    }
100
101    void luopistelaskuri()
102        {
103        pistelaskuri = new IntMeter(0);
104        Label pistenaytto = new Label();
105        pistenaytto.X = Screen.Left + 100;
106        pistenaytto.Y = Screen.Top - 100;
107        pistenaytto.TextColor = Color.Emerald;
108        pistenaytto.BindTo(pistelaskuri);
109        Add(pistenaytto);
110        pistelaskuri.AddTrigger(40, TriggerDirection.Up, mini);
111        pistelaskuri.AddTrigger(60, TriggerDirection.Up, mini2);
112        pistelaskuri.AddTrigger(100, TriggerDirection.Up, mini3);
113        pistelaskuri.AddTrigger(1000, TriggerDirection.Up, mini4);
114    }
115    void restart()
116    {
117        IsPaused = false;
118        ClearAll();
119        Begin();
120    }
121    void ky()
122    {
123        pistelaskuri.Value += 10;
124    }
125    void kyk()
126    {
127        MessageDisplay.Add("Miten sä tän Löysit?");
128       
129    }
130    void mini()
131    {
132        MessageDisplay.Add("Mun keskipisteet");
133    }
134    void mini2()
135    {
136        MessageDisplay.Add("MINUUTTI!");
137    }
138    void mini3()
139    {
140        MessageDisplay.Add("RIKOIT MUN ENKAN");
141    }
142    void mini4()
143    {
144        MessageDisplay.Add("legit?");
145    }
146}
Note: See TracBrowser for help on using the repository browser.