Actionscript 3 命中测试弹跳
我想为flash做一个类似气球大战的游戏。我在屏幕的顶部有一个天花板,所以当玩家点击它时,它应该会从屏幕上弹起。问题是,我不知道该怎么做。这是代码 我在摆弄数字。在uppumping变量中,问题就在这里,我想让角色在命中后反弹下来,但它只会这样做一次。之后,它就穿过天花板。也许我走错了方向Actionscript 3 命中测试弹跳,actionscript-3,flash,2d-games,Actionscript 3,Flash,2d Games,我想为flash做一个类似气球大战的游戏。我在屏幕的顶部有一个天花板,所以当玩家点击它时,它应该会从屏幕上弹起。问题是,我不知道该怎么做。这是代码 我在摆弄数字。在uppumping变量中,问题就在这里,我想让角色在命中后反弹下来,但它只会这样做一次。之后,它就穿过天花板。也许我走错了方向 //gravity and stuff var gravity:Number = 0.3; var fall:Number = 0.3; var downBumping:Boolean = false; va
//gravity and stuff
var gravity:Number = 0.3;
var fall:Number = 0.3;
var downBumping:Boolean = false;
var upBumping:Boolean = false;
//direction I guess
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var spaceKeyDown:Boolean = false;
//character movement ya'll
var mainSpeed:Number = 6;
stage.addEventListener(Event.ENTER_FRAME, game);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
function game(e:Event): void{
//if certain keys are down then move dat fool
if(leftKeyDown){
Monkey.x -= mainSpeed;
}
if(rightKeyDown){
Monkey.x += mainSpeed;
}
if(upKeyDown){
fall = fall-0.9;
gravity = 0.3;
}
if(Floor.hitTestObject(Monkey)){
downBumping = true;
trace("downBumping");
}
if(Ceiling.hitTestObject(Monkey)){
upBumping = true;
trace("upBumping");
trace(Monkey.y);
}
if(upBumping){
Monkey.y += 20;
}
Monkey.y = Monkey.y+fall;
gravity = gravity*1.0;
fall = fall+gravity;
}
这里是我将如何做跳跃和反弹-这不包括像从左向右移动,因为你已经得到了其他代码
function game(e:Event):void {
if(jumping){
yVelocity += 0.1; //gravity
Monkey.y += yVelocity;
if(Floor.hitTestObject(Monkey)){
jumping = false;
while(Floor.hitTestObject(Monkey)){
y--;
}
}
if(Ceiling.hitTestObject(Monkey)){
yVelocity = 0;
while(Ceiling.hitTestObject(Monkey)){
y++;
}
}
}
if(upKeyDown && !jumping){
jumping = true;
yVelocity = -3;
}
}
显然,声明本例中使用的变量。这是一个非常广泛的问题,此类问题在SO中通常不太受欢迎。如果你真的想做你自己的物理引擎,你需要比hitTestObject更深入的挖掘。您也可以使用AS3可用的任何物理引擎,例如@Pier:I恭敬地表示不同意。有一个简单的代码片段说明了Bindlestick想要做什么,对于一个简单的游戏来说,物理引擎通常是不必要的。我想这是一个主观的问题。这就是为什么我没有(也不会)否决这个问题谢谢,格拉多斯克。我是否用重力和落差变量来代替跳跃和yVelocity?