我有一个砖夹,当被球夹击中时会进入第2帧。这段代码在brick类中,这就是为什么它被称为"这":
if (this.hitTestObject(_root.mcBall)){
_root.ballYSpeed *= -1;
this.gotoAndStop(2);
}
我的问题是它第二次被击中时它怎么能进入第3帧?我需要添加什么代码?
答案 0 :(得分:1)
尝试一种“干净”的方法,如下所示:
if (this.hitTestObject(_root.mcBall)){
_root.ballYSpeed *= -1;
if (this.currentFrame !== 3) {
this.nextFrame();
}
}
如果当前帧不是3,则剪辑将转到下一帧。
答案 1 :(得分:0)
您可以验证砖块的当前边框,然后验证它的第2帧是否转到第3帧,如下所示:
if (this.currentFrame === 2){
this.gotoAndStop(3)
}
您还可以使用boolean
来表明您的砖块是否已被击中。如果是true
,请转到第3帧。
修改
AS代码:
- 使用布尔值:
...
var hit:Boolean = false
...
if (this.hitTestObject(_root.mcBall)){
_root.ballYSpeed *= -1
if(!hit){ // this is the 1st time so set hit to true and go to frame 2
hit = true
this.gotoAndStop(2)
} else { // this is the 2nd time so go to frame 3
this.gotoAndStop(3)
}
}
- 使用currentFrame:
if (this.hitTestObject(_root.mcBall)){
_root.ballYSpeed *= -1
if (this.currentFrame == 1){ // we are in the 1st frame so go to frame 2
this.gotoAndStop(2)
} else { // we are certainly not in the 1st frame so go to frame 3
this.gotoAndStop(3)
}
}
我希望更清楚。