source: 2012/27/DenisZ/TheDungeonGame/TheDungeonGame/TheDungeonGame/Player.cs @ 3477

Revision 3477, 2.2 KB checked in by dezhidki, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Controls;
7using MathHelper;
8
9namespace Entity
10{
11    class Player : PhysicsObject
12    {
13        public const double playerWidth = 75;
14        public const double playerHeight = 75;
15       // private PhysicsObject head;
16        private Vector movementVector = Vector.Zero;
17        private bool isMoving = false;
18        private Keyboard keyboard;
19        private double speed = 200;
20
21        public Player(Vector pos)
22            : base(playerWidth, playerHeight)
23        {
24            keyboard = Game.Keyboard;
25            CanRotate = false;
26            setupKeys();
27        }
28
29        private void setupKeys()
30        {
31            keyboard.Listen(Key.W, ButtonState.Down, move, "Move Up", new Vector(0, speed));
32            keyboard.Listen(Key.A, ButtonState.Down, move, "Move Left", new Vector(-speed, 0));
33            keyboard.Listen(Key.S, ButtonState.Down, move, "Move Down", new Vector(0, -speed));
34            keyboard.Listen(Key.D, ButtonState.Down, move, "Move Right", new Vector(speed, 0));
35
36            keyboard.Listen(Key.W, ButtonState.Released, removeMovement, null, new Vector(0, speed));
37            keyboard.Listen(Key.A, ButtonState.Released, removeMovement, null, new Vector(-speed, 0));
38            keyboard.Listen(Key.S, ButtonState.Released, removeMovement, null, new Vector(0, -speed));
39            keyboard.Listen(Key.D, ButtonState.Released, removeMovement, null, new Vector(speed, 0));
40        }
41
42        public override void Update(Time time)
43        {
44            if (!isMoving)
45            {
46                movementVector = Vector.Zero;
47                Stop();
48            }
49
50            isMoving = false;
51            base.Update(time);
52        }
53
54        public void move(Vector vec)
55        {
56            if (vec.X != 0)
57                movementVector.X = vec.X;
58            if (vec.Y != 0)
59                movementVector.Y = vec.Y;
60
61            Move(movementVector);
62            isMoving = true;
63        }
64
65        public void removeMovement(Vector vec)
66        {
67            movementVector = VecMath.sub(movementVector, vec);
68        }
69    }
70}
Note: See TracBrowser for help on using the repository browser.