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

Revision 3515, 2.2 KB checked in by dezhidki, 9 years ago (diff)
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        public Vector movementVector = Vector.Zero;
17        public bool isMoving = false;
18        private Keyboard keyboard;
19        private double speed = 200;
20
21        public Player(Game game, 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 void tick()
43        {
44            if (isMoving)
45            {
46                movementVector = Vector.Zero;
47                Stop();
48            }
49
50            isMoving = false; 
51        }
52
53        public void move(Vector vec)
54        {
55            if (vec.X != 0)
56                movementVector.X = vec.X;
57            if (vec.Y != 0)
58                movementVector.Y = vec.Y;
59
60            Move(movementVector);
61            isMoving = true;
62        }
63
64        public void removeMovement(Vector vec)
65        {
66            movementVector = VecMath.sub(movementVector, vec);
67        }
68    }
69}
Note: See TracBrowser for help on using the repository browser.