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