最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
简单的物体二段跳效果
时间:2022-07-02 17:06:19 编辑:袖梨 来源:一聚教程网
package {
/*author : CYPL*/
import .display.*;
import flash.events.*;
import flash.utils.Timer;
public class JumpTest extends Sprite {
private static const G:int=1;
private var box:Sprite;
private var landObject:Sprite;
private var ySpeed:int=0;
private var jumpSpeed:int=-15;
private var keyPressed:Boolean= false;
private var keyReleased:Boolean=true;
private var comboJump:Boolean=false;
private var inAir:Boolean=true;
private var timer:Timer;
public function JumpTest() {
box=drawRect((stage.stageWidth-50)/2,100,50,50,0xff0000);
landObject=drawRect(0,300,stage.stageWidth,20);
(timer=new Timer(30)).start();
configureControl();
}
private function configureControl():void {
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler,false,0,true);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler,false,0,true);
timer.addEventListener(TimerEvent.TIMER,timerHandler,false,0,true);
}
private function drawRect(posX:Number,posY:Number,w:Number,h:Number,color:uint=0):Sprite {
var rect:Sprite;
with (rect=new Sprite) {
graphics.beginFill(color);
graphics.drawRect(0,0,w,h);
x=posX;
y=posY;
}
return Sprite(addChild(rect));
}
private function keyDownHandler(evt:KeyboardEvent):void {
keyReleased && inAir && !comboJump&&(comboJump=true,ySpeed=jumpSpeed,trace("comboJump"));
!keyPressed&&(keyPressed=true,inAir=true,ySpeed=jumpSpeed,timer.start());
keyReleased=false;
}
private function keyUpHandler(evt:KeyboardEvent):void {
keyReleased=true;
ySpeed0&&ySpeed=0;
}
private function timerHandler(evt:TimerEvent):void {
evt.updateAfterEvent();
ySpeed+=G;
box.y+=ySpeed;
ySpeed>0&&(box.hitTestObject(landObject))&&(trace(landObject.y),box.y=landObject.y-box.height,timer.stop(),keyPressed=false,inAir=false,comboJump=false);
}
}
}
/*author : CYPL*/
import .display.*;
import flash.events.*;
import flash.utils.Timer;
public class JumpTest extends Sprite {
private static const G:int=1;
private var box:Sprite;
private var landObject:Sprite;
private var ySpeed:int=0;
private var jumpSpeed:int=-15;
private var keyPressed:Boolean= false;
private var keyReleased:Boolean=true;
private var comboJump:Boolean=false;
private var inAir:Boolean=true;
private var timer:Timer;
public function JumpTest() {
box=drawRect((stage.stageWidth-50)/2,100,50,50,0xff0000);
landObject=drawRect(0,300,stage.stageWidth,20);
(timer=new Timer(30)).start();
configureControl();
}
private function configureControl():void {
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler,false,0,true);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler,false,0,true);
timer.addEventListener(TimerEvent.TIMER,timerHandler,false,0,true);
}
private function drawRect(posX:Number,posY:Number,w:Number,h:Number,color:uint=0):Sprite {
var rect:Sprite;
with (rect=new Sprite) {
graphics.beginFill(color);
graphics.drawRect(0,0,w,h);
x=posX;
y=posY;
}
return Sprite(addChild(rect));
}
private function keyDownHandler(evt:KeyboardEvent):void {
keyReleased && inAir && !comboJump&&(comboJump=true,ySpeed=jumpSpeed,trace("comboJump"));
!keyPressed&&(keyPressed=true,inAir=true,ySpeed=jumpSpeed,timer.start());
keyReleased=false;
}
private function keyUpHandler(evt:KeyboardEvent):void {
keyReleased=true;
ySpeed0&&ySpeed=0;
}
private function timerHandler(evt:TimerEvent):void {
evt.updateAfterEvent();
ySpeed+=G;
box.y+=ySpeed;
ySpeed>0&&(box.hitTestObject(landObject))&&(trace(landObject.y),box.y=landObject.y-box.height,timer.stop(),keyPressed=false,inAir=false,comboJump=false);
}
}
}
//文档类
相关文章
- 无主之地4全载具获取方法 载具怎么解锁全攻略 09-16
- 魔兽世界沙塔斯城怎么去-沙塔斯城前往方法 09-16
- 超级机器人大战Y轮回的世界怎么过 多周目终极挑战攻略 09-16
- 无主之地4嚎叫森林农场宝箱怎么开启 嚎叫森林农场宝箱开启方法 09-16
- 无主之地4支线月是故乡明怎么做 支线月是故乡明图文攻略 09-16
- 超级机器人大战Y超越妖魔之力怎么过 终极妖魔战攻略 09-16