Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************************
- * A Simple Game by Ian Guthridge *
- ********************************************/
- //total time since the game started
- var ttlTime:Number = 0;
- //time that has elapsed since the last frame
- var elapsed:Number;
- //sime since the last blocks dropped
- var timeSinceDrop:Number =0;
- var gameOver:Boolean = false;
- var score:uint = 0;
- var rate:Number = 1;
- //hex color codes for our falling blocks
- var colors:Array = [0xcccc00, 0xff8509, 0xcc0000, 0xcc00cc, 0x0066cc, 0x00cc66, 0x66cc00];
- var nextBlock:int;
- var fallingBlocks:Array = new Array();
- //initialize
- for(var j:int =0;j<3;j++){
- //Generate a random number
- nextBlock = int(Math.floor(.5+Math.random()*5));
- //create a new block
- var block:Box = new Box();
- var colorTransform:ColorTransform = block.transform.colorTransform;
- colorTransform.color = colors[nextBlock];
- block.transform.colorTransform = colorTransform;
- block.y = 30;
- block.x = int(Math.floor(.5+Math.random()*220))+10;
- fallingBlocks.push(block);
- addChild(block);
- }
- var player:Box = new Box();
- colorTransform = player.transform.colorTransform;
- colorTransform.color = 0x000000;
- player.transform.colorTransform = colorTransform;
- player.x = 130;
- player.y = 470;
- addChild(player);
- this.addEventListener(Event.ENTER_FRAME, enterFunc);
- //the next 2 event listeners must be addeed to the stage!
- stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeyDown);
- stage.addEventListener(KeyboardEvent.KEY_UP, checkKeyUp);
- /*********************
- * Keyboard utilities*
- *********************/
- //Aliases for the keycodes of the arrow keys. This will save on typing.
- //Further, you could remap the keys without much work.
- var left:int = Keyboard.LEFT;
- var right:int = Keyboard.RIGHT;
- var up:int = Keyboard.UP;
- var down:int = Keyboard.DOWN;
- //code for a fancy smancy input handler
- var keyArray:Array = new Array();
- //initialize array with "false" (in other words, no key is pressed)
- for(var i:int =0;i<222;i++){
- keyArray.push(false);
- }
- function checkKeyDown(event:KeyboardEvent):void{
- keyArray[event.keyCode]=true;
- }
- function checkKeyUp(event:KeyboardEvent):void{
- keyArray[event.keyCode]=false;
- }
- function isKeyDown(keyCode:int):Boolean{
- return keyArray[keyCode];
- }
- /*********************
- * Game Logic *
- *********************/
- function enterFunc(event:Event){
- /*The next few lines calculate how much time has elapsed
- *since the last frame. Flash should keep things at
- *clost to 30 fps, but we want to make sure nothing acts wacky*/
- var t:uint = getTimer();
- //convert to seconds
- elapsed = (t-ttlTime)/1000.0;
- ttlTime += elapsed*1000;
- if(!gameOver)
- {
- if(timeSinceDrop >= 2) {
- for(var j:int =0;j<3;j++){
- //Generate a random number
- nextBlock = int(Math.floor(.5+Math.random()*5));
- //create a new block
- var block:Box = new Box();
- var colorTransform:ColorTransform = block.transform.colorTransform;
- colorTransform.color = colors[nextBlock];
- block.transform.colorTransform = colorTransform;
- block.y = 30;
- block.x = int(Math.floor(.5+Math.random()*220))+10;
- fallingBlocks.push(block);
- addChild(block);
- }
- timeSinceDrop = 0;
- }
- else {
- timeSinceDrop += elapsed;
- }
- for(var i:int = 0; i < fallingBlocks.length; i++){
- if(fallingBlocks[i].hitTestObject(player)) gameOver = true;
- else if(fallingBlocks[i].y >=510) {
- removeChild(fallingBlocks[i]);
- fallingBlocks.splice(i,1);
- }
- else fallingBlocks[i].y += 20*rate*elapsed;
- }
- if(isKeyDown(left) && player.x >= 10) player.x -= 100*elapsed; //move left at 40 pixels a second
- if(isKeyDown(right) && player.x <= 230) player.x += 100*elapsed; //move left at 40 pixels a second
- if(player.x < 10) player.x = 10;
- else if(player.x > 230) player.x = 230;
- if(isKeyDown(up) && player.y >= 310) player.y -= 100*elapsed; //move left at 40 pixels a second
- if(isKeyDown(down) && player.y <= 490) player.y += 100*elapsed; //move left at 40 pixels a second
- if(player.y < 310) player.y = 310;
- else if(player.y > 490) player.y = 490;
- score++;
- rate += .001;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement