シンプルなフラッシュゲームを作っています。キャラクターと壁、ステージなどの衝突を追加しました。しかし、今のところ衝突は、ステージに追加するすべてのオブジェクトとの衝突です。背景を追加すると、キャラクターは移動できません(背景との衝突のため)。それを避ける方法は?
キャラクター (Hero) の 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)){
.....
}
ただし、最初のstage1でのみ機能し、他の2つは機能しません。