source: 2017/30/TuomasH/Snake/Snake/Snake/Snake.cs @ 9095

Revision 9095, 2.9 KB checked in by npo17_61, 2 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 Snake : Game
10{
11    const int Ruudunkoko = 30;
12    const int Leveys = 30;
13    const int Korkeus = 30;
14    Direction suunta;
15    GameObject omena;
16    List<GameObject> matopalat = new List<GameObject>();
17   
18
19    public override void Begin()
20    {
21        LuoMaailma();
22        Ohjaimet();
23        Mato();
24        Aloitus();
25       
26
27       
28    }
29    void Aloitus()
30    {
31        matopalat.Clear();
32        ClearAll();
33        suunta = Direction.Up;
34
35        LuoMatopala(6 * Ruudunkoko, 3 * Ruudunkoko);
36        LuoMatopala(5 * Ruudunkoko, 3 * Ruudunkoko);
37        LuoMatopala(4 * Ruudunkoko, 3 * Ruudunkoko);
38        LuoMatopala(3 * Ruudunkoko, 3 * Ruudunkoko);
39        omena = new GameObject(Ruudunkoko, Ruudunkoko);
40        omena.Color = Color.BloodRed;
41        Add(omena);
42       
43
44
45        Timer paivitysAjastin = new Timer();
46        paivitysAjastin.Interval = 0.1;
47        paivitysAjastin.Timeout += Paivitamatoa;
48        paivitysAjastin.Start();
49        Ohjaimet();
50    }
51
52
53    void LuoMaailma()
54    {
55        Level.Background.Color = Color.Black;
56        Level.CreateBorders(true);
57        Level.Width = Ruudunkoko * Leveys;
58        Level.Height = Ruudunkoko * Korkeus;
59    }
60    void Mato()
61    {
62        GameObject paa = matopalat[0];
63        GameObject vanhaPaa = matopalat[matopalat.Count - 1];
64        paa.Position = vanhaPaa.Position + suunta.GetVector() * Ruudunkoko;
65        matopalat.RemoveAt(0);
66        matopalat.Add(paa);
67        for (int i = 0; i < matopalat.Count - 1; i++);
68        {
69            if matopalat[i].IsInside(paa.Position))
70            {
71                Aloitus();
72                return;
73            }
74
75    }
76        if (!Level.BoundingRect.IsInside(paa.Position))
77        { Aloitus();
78            return;
79        }
80       
81
82        if (omena.IsInside(paa.Position))
83        { double satunnainenX = RandomGen.NextInt
84    void Ohjaimet()
85    {
86        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
87        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä kontrollit");
88        Keyboard.Listen(Key.Up, ButtonState.Down, MuutaSuunta, "Ylös", Direction.Up);
89        Keyboard.Listen(Key.Down, ButtonState.Down, MuutaSuunta, "Alas", Direction.Down);
90        Keyboard.Listen(Key.Left, ButtonState.Down, MuutaSuunta, "Vasemmalle", Direction.Left);
91        Keyboard.Listen(Key.Right, ButtonState.Down, MuutaSuunta, "Oikealle", Direction.Right);
92
93    }
94    void MuutaSuunta(Direction uusisuunta)
95    {
96        suunta = uusisuunta;
97    }
98    public void LuoMatopala(double x, double y)
99    {
100        GameObject pala = new GameObject(Ruudunkoko, Ruudunkoko);
101        pala.X = x;
102        pala.Y = y;
103        matopalat.Insert(0, pala);
104        Add(pala);
105    }
106
107}
Note: See TracBrowser for help on using the repository browser.