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;