我正在创建简单的 Flash 游戏。我已经为角色添加了与墙壁、舞台等的碰撞。但正如我现在看到的,碰撞是与我添加到舞台的所有对象发生的。当我添加背景时 - 角色无法移动(因为与背景发生碰撞)。如何避免它?
这是带有字符(英雄)的 myCollisionList:
var myCollisionList:CollisionList = new CollisionList(Hero);
myCollisionList.addItem(stage1);
myCollisionList.addItem(stage2);
myCollisionList.addItem(stage3);
这是将字符移动到左侧的部分代码。添加背景时,我总是得到跟踪(“触摸墙!”)。如何避免它?
if(left){
Hero.x_speed = -walkspeed;
setDirection(1);
if(myCollisionList.checkCollisions().length > 0) { // checking if is anything in collision list
// I think here is problem, but don't know how to fix It?
if (hitTestPoint(char.x - 26, char.y+20, true)){ //checking if character touching any object (have collision with anything)
trace("Touching wall!");
Hero.x_speed = 0;
}
else {
Hero.x_speed = 8;
}}
我也尝试过使用 HitTestObject(但如果可能的话,我需要使用 HitTestPoint)
if (Hero.HitTestObject(stage1 || stage2 || stage3)){
.....
}
但它仅适用于第一阶段 1,其他 2 不起作用。