home *** CD-ROM | disk | FTP | other *** search
- class Engine.PongPlayer
- {
- var world;
- var __paddle;
- var __ball;
- var __goal;
- var side;
- var onUpdate;
- var __activeItem;
- var __activeItemID;
- var __itemActiveTime;
- var __frameElapsedTime;
- var __itemTime;
- var __itemBlinkTime;
- var className = "PongPlayer";
- static var SPEED = Game.PongLevels.PADDLE_SPEED;
- var __handicap = 0;
- var __speed = Game.PongLevels.PADDLE_SPEED;
- static var FRAME_TIME = Game.PongLevels.FRAME_TIME;
- var __holdingBall = false;
- function PongPlayer(myWorld, myPaddle, myBall, myGoal, mySide)
- {
- this.world = myWorld;
- this.__paddle = myPaddle;
- this.__paddle.addEventListener("onHoldBall",this);
- this.__paddle.addEventListener("onReleaseBall",this);
- this.__ball = myBall;
- this.__goal = myGoal;
- this.side = mySide;
- }
- function update(elapsed)
- {
- this.checkActiveItem(elapsed);
- this.onUpdate(elapsed);
- }
- function activateItem(itemObj, itemID, time, blinkTime)
- {
- var _loc3_ = this.__activeItem == itemObj && this.__activeItemID == itemID;
- if(_loc3_)
- {
- this.__itemActiveTime = 0;
- this.__frameElapsedTime = 0;
- return undefined;
- }
- this.deactivateItem();
- this.__itemActiveTime = 0;
- this.__frameElapsedTime = 0;
- this.__activeItem = itemObj;
- this.__activeItemID = itemID;
- this.__itemTime = time;
- this.__itemBlinkTime = blinkTime;
- itemObj.activateItem(itemID);
- this.world.dispatchEvent({type:"onActivateItem",itemID:this.__activeItemID,who:this.side});
- }
- function deactivateItem()
- {
- this.world.dispatchEvent({type:"onActivateItem",itemID:-1,who:this.side});
- if(this.__activeItem == undefined)
- {
- return undefined;
- }
- this.__activeItem.deactivateItem();
- delete this.__activeItem;
- delete this.__activeItemID;
- delete this.__itemTime;
- delete this.__itemBlinkTime;
- delete this.__itemActiveTime;
- delete this.__frameElapsedTime;
- }
- function onHoldBall(eventObj)
- {
- this.__holdingBall = true;
- }
- function onReleaseBall(eventObj)
- {
- this.__holdingBall = false;
- this.deactivateItem();
- }
- function toString()
- {
- return this.className;
- }
- function set handicap(newValue)
- {
- this.__handicap = newValue;
- this.__speed = Engine.PongPlayer.SPEED - this.__handicap;
- }
- function get handicap()
- {
- return this.__handicap;
- }
- function checkActiveItem(elapsed)
- {
- if(this.__activeItem == null)
- {
- return undefined;
- }
- this.__itemActiveTime += elapsed;
- if(this.__itemActiveTime >= this.__itemTime)
- {
- this.deactivateItem();
- return undefined;
- }
- var _loc2_ = this.__itemTime - this.__itemActiveTime;
- if(_loc2_ <= this.__itemBlinkTime)
- {
- this.__frameElapsedTime += elapsed;
- if(this.__frameElapsedTime >= Engine.PongPlayer.FRAME_TIME * 2)
- {
- this.__frameElapsedTime = 0;
- this.world.dispatchEvent({type:"onBlinkItem",who:this.side});
- }
- }
- }
- }
-