psychic simulation
♥0 |
Line 173 |
Modified 2015-09-17 00:40:29 |
MIT License
archived:2017-03-20 08:36:12
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/4naD
*/
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();
//hud
var infoText:TextField = new TextField();
//input compents
var Vo:TextField = new TextField;
var Vf:TextField = new TextField;
var time:TextField = new TextField;
var VoText:TextField = new TextField;
var VfText:TextField = new TextField;
var timeText:TextField = new TextField;
var player: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 simTime :Number = 0;
var gravityBool:Boolean = false;
var gravityInt:Number = 9.8;
var gravityTime:Number = 0;
var playerX:Number = 0;
var playerY:Number = 0;
var speed:Number = 5;
//create player
player.graphics.lineStyle(0x000000);
player.graphics.beginFill(0xFFFFFF);
player.graphics.drawRect(0,0,5,5);
player.graphics.endFill();
//add to stage
addChild(player);
addChild(devText);
addChild(infoText);
addChild(VoText);
addChild(VfText);
addChild(timeText);
addChild(time);
addChild(Vf);
addChild(Vo);
//start/begin/initilaze
//pos
infoText.x = stage.stageWidth - infoText.width;
infoText.y = stage.stageHeight/2;
timeText.y = 200;
VfText.y = 300;
VoText.y = 400;
time.y = 200;
Vf.y = 300;
Vo.y = 400;
time.x = 50;
Vf.x = 50;
Vo.x = 50;
time.height = 20;
Vf.height = 20;
Vo.height = 20;
time.border = true;
Vf.border = true;
Vo.border = true;
time.type = "input";
Vf.type = "input";
Vo.type = "input";
//text
infoText.text = "g press Gravity \n space press start/stop";
timeText.text = "time:";
VoText.text = "Vo:";
VfText.text = "Vf:";
function init(e:Event = null):void
{
}
//loop
addEventListener(Event.ENTER_FRAME, function(_:Event):void {
//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){
if(spacePressed == false){
spacePressed = true;
simTime = 0;
playerX = player.x;
playerY = player.y;
}else{
spacePressed = false;
}
}
if(event.keyCode == 71){
if(gravityBool == true){
gravityBool = false;
}else{
gravityBool = true;
gravityTime = 0;
}
}
});
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;
}
if(event.keyCode == 32){
}
});
//player move
if(upPressed == true){
player.y += -speed;
}
if(downPressed == true){
player.y += speed;
}
if(leftPressed == true){
player.x += -speed;
}
if(rightPressed == true){
player.x += speed;
}
//gravity
if(gravityBool == true){
gravityTime += 1/stage.frameRate;
player.y += gravityInt * gravityTime * gravityTime;
}
//teleport back on stage
if(player.y > stage.stageHeight){
player.y = stage.stageHeight - 20;
gravityBool = false;
}
if(player.y <= stage.stageHeight - 20){
gravityBool = true;
}
if(player.y < 0){
player.y = 20;
}
if(player.x < 20){
player.x = 20;
}
if(player.x > stage.stageWidth){
player.x = 20;
}
//simulation start bool
if(spacePressed == true && Number(time.text) > 0 && Number(Vo.text) > 0){
simTime += 1/stage.frameRate;
player.x += Number(Vo.text) * 1/stage.frameRate;
player.y -= Number(Vo.text) * 1/stage.frameRate;
}
if(Number(time.text) > 0){
if(simTime >= Number(time.text )){
}
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void {
player.startDrag();
});
stage.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void {
player.stopDrag();
});
});
}
}
}