forked from: psychic simulation
forked from psychic simulation (diff: 179)
ActionScript3 source code
/**
* Copyright PXshadow ( http://wonderfl.net/user/PXshadow )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/MW6r
*/
// forked from PXshadow's psychic simulation
package {
import flash.text.TextFieldAutoSize;
import flash.text.TextField;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
public class FlashTest extends Sprite {
public function FlashTest() {
// write as3 code here..
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
var devText:TextField = new TextField();
var devBox:MovieClip = new MovieClip();
var playerXold:Number = 0;
var playerYold:Number = 0;
var player:MovieClip = new MovieClip();
var shipCollison:MovieClip = new MovieClip();
var ship:MovieClip = new MovieClip();
//key bools
var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
var spacePressed:Boolean = false;
var i:Number = 0;
var playerX:Number = 0;
var playerY:Number = 0;
var shipRotationOld:Number = 0;
var speed:Number = 5;
//create player
player.graphics.lineStyle(0x000000);
player.graphics.beginFill(0xFFFFFF);
player.graphics.drawRect(-2.5,-2.5,5,5);
player.graphics.endFill();
//create ship
shipCollison
shipCollison.graphics.drawRect(-80,-55,130,80);
ship.graphics.lineStyle(1,0xFF0000);
ship.graphics.drawRect(-80, -55, 130, 80);
devBox.graphics.lineStyle(0x000000);
devBox.graphics.beginFill(0xFFFFFF);
devBox.graphics.drawRect(-2.5,-2.5,5,5);
devBox.graphics.endFill();
//add to stage
addChild(shipCollison);
addChild(player);
addChild(devText);
addChild(devBox);
addChild(ship);
shipCollison.visible = false;
//pos
shipCollison.x = stage.stageWidth/2;
shipCollison.y = stage.stageHeight/2;
shipCollison.rotation = 0;
player.x = shipCollison.x;
player.y = shipCollison.y;
playerXold = player.x;
playerYold = player.y;
function init(e:Event = null):void
{
}
//loop
addEventListener(Event.ENTER_FRAME, function(_:Event):void {
ship.rotation += 1;
ship.x = shipCollison.x;
ship.y = shipCollison.y;
//ship.rotation = shipCollison.rotation;
shipCollison.rotation = ship.rotation;
//key board
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(event:KeyboardEvent):void {
//display key number aka code
//devText.text = String("key " + event.keyCode);
if(event.keyCode == 38){
upPressed = true;
}
if(event.keyCode == 40){
downPressed = true;
}
if(event.keyCode == 37){
leftPressed = true;
}
if(event.keyCode == 39){
rightPressed = true;
}
if(event.keyCode == 32){
}
});
stage.addEventListener(KeyboardEvent.KEY_UP, function(event:KeyboardEvent):void {
if(event.keyCode == 38){
upPressed = false;
}
if(event.keyCode == 40){
downPressed = false;
}
if(event.keyCode == 37){
leftPressed = false;
}
if(event.keyCode == 39){
rightPressed = false;
}
});
//player move
if(upPressed == true){
player.x += Math.cos(player.rotation * Math.PI/180) * speed;
player.y += Math.sin(player.rotation * Math.PI/180) * speed;
}
//collison
if(shipCollison.hitTestPoint(player.x,player.y ,true)){
player.x = playerXold;
player.y = playerYold;
if(shipCollison.hitTestPoint(playerXold,playerYold,true)){
if(shipCollison.x > player.x){
player.x += speed;
}else{
player.x += -speed;
}
if(shipCollison.y > player.y){
player.y += speed;
}else{
player.y += -speed;
}
}
}
playerXold = player.x;
playerYold = player.y;
stage.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void {
player.startDrag();
});
stage.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void {
player.stopDrag();
});
});
}
}
}
