1 /**
2 A class to represent the player on the screen
3 @author <a href="mailto:matthewcasperson@gmail.com">Matthew Casperson</a>
4 @class
5 */
6 function Player()
7 {
8 /** The speed that the player moves at
9 @type Number
10 */
11 this.speed = 75;
12 /** True if the player is moving left, false otherwise
13 @type Boolean
14 */
15 this.left = false;
16 /** True if the player is moving right, false otherwise
17 @type Boolean
18 */
19 this.right = false;
20 /** True if the player is moving up, false otherwise
21 @type Boolean
22 */
23 this.up = false;
24 /** True if the player is moving down, false otherwise
25 @type Boolean
26 */
27 this.down = false;
28
29 /**
30 Initialises this object
31 */
32 this.startupPlayer = function()
33 {
34 this.startupAnimatedGameObject(g_run_left, 300, 200, 1, 12, 20);
35 return this;
36 }
37
38 /**
39 Called when a key is pressed
40 @param event Event Object
41 */
42 this.keyDown = function(event)
43 {
44 // left
45 if (event.keyCode == 37)
46 this.left = true;
47 // right
48 if (event.keyCode == 39)
49 this.right = true;
50 // up
51 if (event.keyCode == 38)
52 this.up = true;
53 // down
54 if (event.keyCode == 40)
55 this.down = true;
56 }
57
58 /**
59 Called when a key is pressed
60 @param event Event Object
61 */
62 this.keyUp = function(event)
63 {
64 // left
65 if (event.keyCode == 37)
66 this.left = false;
67 // right
68 if (event.keyCode == 39)
69 this.right = false;
70 // up
71 if (event.keyCode == 38)
72 this.up = false;
73 // down
74 if (event.keyCode == 40)
75 this.down = false;
76 }
77
78 /**
79 Updates the object
80 @param dt The time since the last frame in seconds
81 @param context The drawing context
82 @param xScroll The global scrolling value of the x axis
83 @param yScroll The global scrolling value of the y axis
84 */
85 this.update = function (/**Number*/ dt, /**CanvasRenderingContext2D*/context, /**Number*/ xScroll, /**Number*/ yScroll)
86 {
87 if (this.left)
88 this.x -= this.speed * dt;
89 if (this.right)
90 this.x += this.speed * dt;
91 if (this.up)
92 this.y -= this.speed * dt;
93 if (this.down)
94 this.y += this.speed * dt;
95
96 // keep the player bound on the screen
97 if (this.x > context.canvas.width - this.frameWidth)
98 this.x = context.canvas.width - this.frameWidth;
99 if (this.x < 0)
100 this.x = 0;
101 if (this.y > context.canvas.height - this.image.height)
102 this.y = context.canvas.height - this.image.height;
103 if (this.y < 0)
104 this.y = 0;
105 }
106 }
107
108 Player.prototype = new AnimatedGameObject;
Top