Actionscript 3 AS3-HitTest无法正常工作
玩家不会立即停止,而是以10像素的速度(我将玩家定位为+=10)稍微深入障碍物 更新功能Actionscript 3 AS3-HitTest无法正常工作,actionscript-3,Actionscript 3,玩家不会立即停止,而是以10像素的速度(我将玩家定位为+=10)稍微深入障碍物 更新功能 function update(evt:Event) { if(rightMovementAllowed) { player.x += 10; } if(lefttMovementAllowed) { player.x -= 10; } } 检查碰撞功能 function checkCollision() { if(player.hi
function update(evt:Event) {
if(rightMovementAllowed) {
player.x += 10;
}
if(lefttMovementAllowed) {
player.x -= 10;
}
}
检查碰撞功能
function checkCollision() {
if(player.hitTestObject(enemy)) {
rightMovementAllowed = false;
leftMovementAllowed = false;
}
}
当玩家与物体发生碰撞时,将其发送到其先前的位置(即碰撞前的位置)。
或者,通过获取播放器和碰撞对象的尺寸(宽度和高度),可以将播放器放置在某个位置,使其仅接触碰撞对象。例如,确定发生了碰撞后,您可以向Player类添加以下函数:
function collision(collisionObject:MovieClip) {
if (x>_oldX) {
x = collisionObject.x - ((this.width * 0.5) + (collisionObject.width * 0.5));
} else {
x = collisionObject.x + ((this.width * 0.5) + (collisionObject.width * 0.5));
}
if (y>_oldY) {
y = collisionObject.y - ((this.height * 0.5) + (collisionObject.height * 0.5));
} else {
y = collisionObject.y + ((this.height * 0.5) + (collisionObject.height * 0.5));
}
}
此函数假定您的播放器和碰撞对象MovieClips的参考点位于其中心。另外_oldX和_oldY是私人玩家变量,用于跟踪其以前的位置。请注意,如果每帧触发一次,此功能将异常运行。仅当碰撞刚刚发生时才应调用它