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

Revision 2778, 5.0 KB checked in by ramipasa, 9 years ago (diff)

korjauksia

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