嗨,请看一下代码。当我按下键盘时,物体会熄灭但是我想要的是当它达到一定深度时它应该回来..任何帮助将不胜感激,谢谢
//rope coding
var rope = MovieClip(this.root).boat_mc.rope_mc;
var ropeMove:Boolean = false;
stage.addEventListener(Event.ENTER_FRAME, ropeCode);
stage.addEventListener(KeyboardEvent.KEY_UP, onSpacebarUp);
function onSpacebarUp(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.SPACE)
ropeMove = !ropeMove; // toggles ropeMove (i.e. if it's true, sets it to false, and vice versa)
}
function ropeCode(e:Event):void
{
//check direction of rope
if(yDirection)
{
rope.y += ropeSpeed;
}
else
{
rope.y -= ropeSpeed;
}
// move the rope
if( ropeMove )
{
if( rope.y < 230)
{
yDirection = true;
trace(rope.y);
}
// stop moving if we've gone too far
else if (rope.y > 230)
{
yDirection = false;
}
}
}
答案 0 :(得分:0)
你有2个支票,如
if( rope.y < 230)
和
if( rope.y > 230)
我认为你的动画在y为230时会卡住 所以让其中一个像
那样测试平等if( rope.y < =230)
或添加第三个案例
else if(y==230)
编辑: 添加一个名为yDirection的新变量/字段
var yDirection:Boolean=true;
当你想改变方向时,请翻转这个标志
if( rope.y <=0)
yDirection=true;
else
yDirection=false;
if(yDirection)
rope.y=+=speed;
else
rope.y-=speed;
EDIT2 嗨在之前的编辑中有一个错误,用你需要的值(minY值)替换rope.y&lt; = 0
EDIT3 解决方案很简单,您必须检查ropeMove值,
if(ropeMove){
if( rope.y <=0)
yDirection=true;
else
yDirection=false;
if(yDirection)
rope.y=+=speed;
else
rope.y-=speed;
}
您的问题非常基础,因此您应该学习算法的基础知识,