1     /**
2         Represents a powerup in the game
3         @author <a href="mailto:matthewcasperson@gmail.com">Matthew Casperson</a>
4         @class
5     */
6     function Powerup()
7 {
8 /** The value of the powerup 9 @type Number 10 */ 11 this.value = 0;
12 /** The current position on the sine wave 13 @type Number 14 */ 15 this.sineWavePos = 0;
16 /** How quickly the powerup cycles through the sine wave 17 @type Number 18 */ 19 this.bounceTime = 1;
20 /** The speed to increment the sineWavePos value at 21 @type Number 22 */ 23 this.bounceSpeed = Math.PI / this.bounceTime;
24 /** The height of the powerups bounce 25 @type Number 26 */ 27 this.bounceHeight = 10;
28 29 /** 30 Initialises this object 31 @param value The value (score) of this powerup 32 @param image The image to be displayed 33 @param x The position on the X axis 34 @param y The position on the Y axis 35 @param z The depth 36 @param frameCount The number of animation frames in the image 37 @param fps The frames per second to animate this object at 38 */ 39 this.startupPowerup = function(/**Number*/ value, /**Image*/ image, /**Number*/ x, /**Number*/ y, /**Number*/ z, /**Number*/ frameCount, /**Number*/ fps)
40 {
41 this.startupAnimatedGameObject(image, x, y - this.bounceHeight, z, frameCount, fps);
42 this.value = value;
43 return this;
44 }
45 46 /** 47 Shuts this object down. 48 */ 49 this.shutdownPowerup = function()
50 {
51 this.shutdownAnimatedGameObject();
52 }
53 54 /** 55 Updates the object 56 @param dt The time since the last frame in seconds 57 @param context The drawing context 58 @param xScroll The global scrolling value of the x axis 59 @param yScroll The global scrolling value of the y axis 60 */ 61 this.update = function (/**Number*/ dt, /**CanvasRenderingContext2D*/context, /**Number*/ xScroll, /**Number*/ yScroll)
62 {
63 var lastSineWavePos = this.sineWavePos;
64 this.sineWavePos += this.bounceSpeed * dt;
65 this.y += (Math.sin(this.sineWavePos) - Math.sin(lastSineWavePos)) * this.bounceHeight;
66 67 if (this.collisionArea().intersects(g_player.collisionArea()))
68 {
69 this.shutdownPowerup();
70 g_score += this.value;
71 g_ApplicationManager.updateScore();
72 }
73 }
74 }
75 76 Powerup.prototype = new AnimatedGameObject;
Top