package { // ************************************** // ****** MEMORY PONG BY GIRLFLASH ****** // ************************************** // * Inspired by all the neat play with * // * yourself games, yay masturbation! * // ************************************** // * Instructions: * // * Click the mouse to start * // ************************************** import flash.display.Sprite; import flash.display.MovieClip; import flash.events.*; import flash.text.*; public class MemoryPong extends Sprite { public var paddleA:MovieClip = new MovieClip(); public var paddleB:MovieClip = new MovieClip(); public var ball:MovieClip = new MovieClip(); public var ballHspeed:Number = 5; public var ballVspeed:Number = 5; public var lastYA:Number = 0; public var lastYB:Number = 0; public var paddlePositions:Array = new Array(); public var memoryLength:Number = 30; public var i:Number; public var scoreDisp:TextField = new TextField(); public var recordDisp:TextField = new TextField(); public var score:Number = 0; public var record:Number = 0; public var gameState:String = "AIM"; public function MemoryPong() { addChild(scoreDisp); scoreDisp.x = 175; scoreDisp.selectable = false; addChild(recordDisp); recordDisp.x = 250; recordDisp.selectable = false; for (i=0; i<memoryLength;i++){ paddlePositions.push(175); } paddleA.graphics.lineStyle(1,0x000000); paddleA.graphics.beginFill(0x000000); paddleA.graphics.lineTo(20,0); paddleA.graphics.lineTo(20,80); paddleA.graphics.lineTo(0,80); paddleA.graphics.endFill(); addChild(paddleA); paddleA.x = 10; paddleB.graphics.lineStyle(1,0x000000); paddleB.graphics.beginFill(0x000000); paddleB.graphics.lineTo(20,0); paddleB.graphics.lineTo(20,80); paddleB.graphics.lineTo(0,80); paddleB.graphics.endFill(); addChild(paddleB); paddleB.x = 430; ball.graphics.lineStyle(1,0x000000); ball.graphics.beginFill(0x000000); ball.graphics.lineTo(0,10); ball.graphics.lineTo(10,10); ball.graphics.lineTo(10,0); ball.graphics.endFill(); addChild(ball); //stage.addEventListener(KeyboardEvent.KEY_DOWN,onPushy); stage.addEventListener(Event.ENTER_FRAME,onTick); stage.addEventListener(MouseEvent.CLICK,onClicky); } public function onTick(evt:Event):void{ lastYA = paddleA.y; lastYB = paddleB.y; paddleA.y = mouseY - (paddleA.height/2); paddlePositions.splice(0,1); paddlePositions.push(paddleA.y); paddleB.y = paddlePositions[0]; if (gameState == "AIM"){ ball.x = paddleA.x+paddleA.width+2; ball.y = paddleA.y+(paddleA.height/2)-5; }else{ ball.x += ballHspeed; ball.y += ballVspeed; if (ball.x>450 || ball.x<0){ gameState = "AIM" score=0; } if (ball.y>450 || ball.y<0){ ballVspeed *=-1; } if (ball.hitTestObject(paddleB)){ score++; ball.x = paddleB.x-10; ballHspeed*=-1; ballVspeed += (paddleB.y-lastYB)/4; } if (ball.hitTestObject(paddleA)){ score++; ball.x = paddleA.x+paddleA.width; ballHspeed*=-1; ballHspeed+=0.5; ballVspeed += (paddleA.y-lastYA)/4; //dont make it easy to volley =p if (ballVspeed<0 && ballVspeed>-1){ ballVspeed=-1; } if (ballVspeed>=0 && ballVspeed<1){ ballVspeed=1; } } } if (score>record){ record = score; } scoreDisp.text = "Score: " + score; recordDisp.text = "Record: " + record; } public function onClicky(evt:MouseEvent):void{ if (gameState == "AIM"){ ballHspeed = 5; ballVspeed = (Math.random()*10)-5; gameState = "PLAY"; } } } } Memory Pong