source: 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/YAG2DSS.cs @ 2781

Revision 2781, 5.7 KB checked in by ramipasa, 10 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.IO;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9using ALTK;
10using ALTK.GUI.Dialogs;
11
12public class YAG2DSS : PhysicsGame
13{
14    ALTKHandler altkHandler;
15    PhysicsObject po;
16    GameObject Kursori;
17
18    public override void Begin()
19    {
20        Kursori = new GameObject(32, 32);
21        Kursori.Image = Image.FromStream(File.OpenRead(ALTKConstants.TexturePath + "cursor.png"));
22        Kursori.IsVisible = false;
23        AnalogHandler handler = new AnalogHandler(HandleCursor);
24        Mouse.ListenMovement(0.1, handler, "");
25        Add(Kursori);
26
27        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ShowExit, "Lopeta peli");
29
30        //IsMouseVisible = true;
31
32        Level.CreateBorders(0.5, false);
33
34        po = new PhysicsObject(50.0, 50.0);
35        po.Shape = Shape.Octagon;
36        po.X = -200;
37        po.Y = -150.0;
38        po.Restitution = 1.0;
39        po.AngularDamping = 0.02;
40        po.MomentOfInertia = 50.0;
41        AddCollisionHandler(po, HandleCollision);
42        po.Image = Image.FromStream(File.OpenRead(ALTKConstants.TexturePath + "communist_trollface.png"));
43        Add(po);
44        //AddCollisionHandler(po,
45        po.Hit(new Vector(500.0, 0.0));
46    }
47
48    private void HandleCursor(AnalogState analogState)
49    {
50        Kursori.AbsolutePosition = new Vector(Kursori.Position.X + analogState.MouseMovement.X, Kursori.Position.Y + analogState.MouseMovement.Y);
51    }
52
53    private void HandleCollision(PhysicsObject x, PhysicsObject y)
54    {
55        if (x.Velocity.X < 0)
56        {
57            if (x.Velocity.Y < 0)
58            {
59                ALTKHandler.StaticAnimHandler.AddStaticAnim(0, new Microsoft.Xna.Framework.Vector2(Convert.ToSingle(x.Right), Convert.ToSingle(x.Bottom)));
60            }
61            else
62            {
63                ALTKHandler.StaticAnimHandler.AddStaticAnim(0, new Microsoft.Xna.Framework.Vector2(Convert.ToSingle(x.Right), Convert.ToSingle(x.Top)));
64            }
65        }
66        else
67        {
68            if (x.Velocity.Y < 0)
69            {
70                ALTKHandler.StaticAnimHandler.AddStaticAnim(0, new Microsoft.Xna.Framework.Vector2(Convert.ToSingle(x.Left), Convert.ToSingle(x.Bottom)));
71            }
72            else
73            {
74                ALTKHandler.StaticAnimHandler.AddStaticAnim(0, new Microsoft.Xna.Framework.Vector2(Convert.ToSingle(x.Left), Convert.ToSingle(x.Top)));
75            }
76        }
77    }
78
79    protected override void Initialize()
80    {
81        base.Initialize();
82
83        InitALTK();
84    }
85
86    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
87    {
88        base.Update(gameTime);
89
90        ALTKHandler.MessageDisplay.AddItem("Trololollolollololoo, lololololooo...");
91
92        if (Kursori.Position.X > ALTKConstants.WindowWidth / 2.0)
93            Kursori.MoveTo(new Vector(ALTKConstants.WindowWidth / 2.0, Kursori.Position.Y), 1000000.0);
94        else if (Kursori.Position.X < ALTKConstants.WindowWidth / -2.0)
95            Kursori.MoveTo(new Vector(ALTKConstants.WindowWidth / -2.0, Kursori.Position.Y), 1000000.0);
96
97        if (Kursori.Position.Y > ALTKConstants.WindowHeight / 2.0)
98            Kursori.MoveTo(new Vector(Kursori.Position.X, ALTKConstants.WindowHeight / 2.0), 1000000.0);
99        else if (Kursori.Position.Y < ALTKConstants.WindowHeight / -2.0)
100            Kursori.MoveTo(new Vector(Kursori.Position.X, ALTKConstants.WindowHeight / -2.0), 1000000.0);
101
102        ALTK.Cursor.SecPosX = Convert.ToInt32((ALTKConstants.WindowWidth / 2) + Kursori.Position.X);
103        ALTK.Cursor.SecPosY = Convert.ToInt32(ALTK.ALTKConstants.WindowHeight - ((ALTKConstants.WindowHeight / 2) + Kursori.Position.Y));
104
105        //ALTK.Cursor.PosX = Convert.ToInt32((ALTKConstants.WindowWidth / 2) + Kursori.Position.X);
106        //ALTK.Cursor.PosY = ALTK.Cursor
107       
108        //MessageDisplay.Clear();
109        //MessageDisplay.Add(Convert.ToString(ALTK.Cursor.SecPosX + "; " + ALTK.Cursor.SecPosY));
110
111        if (Keyboard.GetKeyState(Key.Up) == ButtonState.Down)
112        {
113            Vector impulssi = Vector.FromLengthAndAngle(2.0, po.Angle);
114            po.Hit(impulssi);
115        }
116
117        if (Keyboard.GetKeyState(Key.Left) == ButtonState.Down)
118        {
119            po.Angle = Angle.FromDegrees(po.Angle.Degrees - 5.0);
120        }
121
122        if (Keyboard.GetKeyState(Key.Right) == ButtonState.Down)
123        {
124            po.Angle = Angle.FromDegrees(po.Angle.Degrees + 5.0);
125        }
126
127        if (Keyboard.GetKeyState(Key.Down) == ButtonState.Down)
128        {
129            if (po.Velocity.Angle == po.Angle)
130            {
131                Vector impulssi = Vector.FromLengthAndAngle(-2.0, po.Angle);
132                po.Hit(impulssi);
133            }
134        }
135
136        if (ALTK.GameHandler.DoUpdate)
137        {
138        }
139        else
140        {
141            //PhysicsEnabled = false;
142        }
143    }
144
145    /// <summary>
146    /// Initializes the ALTKEngine components used by the game. -Rampastring
147    /// </summary>
148    private void InitALTK()
149    {
150        ALTKConstants.WindowWidth = this.Window.ClientBounds.Width;
151        ALTKConstants.WindowHeight = this.Window.ClientBounds.Height;
152
153        altkHandler = new ALTKHandler(this);
154        altkHandler.Initialize();
155        this.Components.Add(altkHandler);
156    }
157
158    private void ShowExit()
159    {
160        //this.StopAll();
161        if (!ALTKHandler.ExitWindow.Enabled)
162        {
163            ALTKHandler.ExitWindow.Enabled = true;
164            ALTKHandler.ExitWindow.Visible = true;
165
166            Kursori.IsVisible = true;
167        }
168    }
169
170   
171}
Note: See TracBrowser for help on using the repository browser.