OMGame
/**
* Copyright dr.crazy2012 ( http://wonderfl.net/user/dr.crazy2012 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/hlXR
*/
package {
import flash.text.TextField;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class Main extends Sprite {
/* WORLD XYNTA */
private var GRAVITY:Number = 1;
private var FRICTION:Number = 0.8;
/* PLAYER */
private var player:Sprite;
private var sX:Number, sY:Number;
/* XYNTA */
private var keys:Array;
private var tf:TextField;
private var enems:Array;
public function Main() {
keys = new Array();
enems = new Array();
tf = new TextField();
tf.text = "Use arrows";
tf.selectable = false;
addChild(tf);
// Pilip player'a
player = new Sprite();
player.graphics.beginFill(0x000000);
player.graphics.drawRect(0,0,50,100);
player.graphics.endFill();
player.alpha = 0;
this.addChild(player);
sX = 20;
sY = 0;
createEnemy(100,100, 0xFF0000, 1.5, 4);
createEnemy(200,200, 0x00FF00, 3, 9);
/* EVENT LISTENERS */
this.stage.addEventListener(Event.ENTER_FRAME, updateGame);
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
this.stage.addEventListener(KeyboardEvent.KEY_UP, keyUpListener);
}
private function updateGame(e:Event):void
{
/* UPDATING PLAYER */
player.x += sX;
player.y += sY;
if(player.y + player.height > stage.stageHeight)
{
sY = 0;
player.y = stage.stageHeight - player.height;
}
sX *= FRICTION;
sY += GRAVITY;
if(keys[37])
{
player.rotation = -5;
sX = -5;
}
else if(keys[39])
{
player.rotation = 5;
sX = 5;
}
else
{
player.rotation = 0;
}
if(player.alpha < 1)
{
player.alpha += 0.03;
}
if(player.x < 0)
{
player.x = 0;
sX = 0;
}
else if(player.x + player.width > stage.stageWidth)
{
player.x = stage.stageWidth - player.width;
sX = 0;
}
for each(var ce:Object in enems)
{
ce.view.x += ce.sX;
ce.view.y += ce.sY;
ce.sX *= FRICTION;
ce.sY += GRAVITY;
if(ce.view.y + ce.view.height > stage.stageHeight)
{
ce.view.y = stage.stageHeight - ce.view.height;
}
if(player.x + player.width/2 > ce.view.x + ce.view.width/2)
{
ce.sX = ce.speed;
}
else if(player.x + player.width/2 < ce.view.x + ce.view.width/2)
{
ce.sX = -ce.speed;
}
if(ce.view.hitTestObject(player) && ce.view.y == stage.stageHeight - ce.view.height)
{
ce.sY = -ce.jumpHeight;
if(player.y == stage.stageHeight - player.height)
{
sY = -5;
}
sX = ce.sX;
}
}
}
private function keyDownListener(e:KeyboardEvent):void
{
keys[e.keyCode] = true;
if(e.keyCode == 38)
{
if(player.y == stage.stageHeight - player.height)
{
sY = -10;
}
}
if(e.keyCode == 40)
{
}
}
private function keyUpListener(e:KeyboardEvent):void
{
keys[e.keyCode] = false;
}
private function createEnemy(px:Number, py:Number, color:int, speed:Number=4, jumpHeight:Number=5):void
{
var newEnemy:Object = new Object();
newEnemy.view = new Sprite();
newEnemy.view.graphics.beginFill(color);
newEnemy.view.graphics.drawRect(0,0,50,80);
newEnemy.view.graphics.endFill();
newEnemy.sX = new Number(0);
newEnemy.sY = new Number(0);
newEnemy.view.x = px;
newEnemy.view.y = py;
newEnemy.speed = new Number(speed);
newEnemy.jumpHeight = new Number(jumpHeight);
this.addChild(newEnemy.view);
enems.push(newEnemy);
}
}
}