Cocos2d-JS를 사용하여 작은 브레이크 아웃 클론을 생성 할 때, 블로킹을 성공 시키거나 1) X 또는 Y 값.오브젝트가 얼마나 많은 아이템을 하나의 오브젝트와 충돌/무효화했는지 탐지합니다.
적어도 볼 (실제로 스프라이트가있는 작은 직사각형)은 한 번에 두 개의 블록을 히트 할 때까지 작동합니다.이 시점에서 X 또는 Y 값은 두 번 무효화됩니다.
공이 튀어 나오지 않고 계속 진행되면서 매우 짧고 매우 이상한 브레이크 아웃 게임이됩니다.
얼마나 많은 항목이 공과 충돌했는지 감지하고 무시하는 방법이 있습니까?
또는 다른 방법이 있습니까?
감사합니다. (나는 당신이나 후드 아래 엔진이 requestAnimationFrame, 또는하여 setInterval을 사용한다고 가정하고 그냥 반복하고 당신이 충돌 체크를 시작하는 방법을 아는없이
if (Tools.rectsIntersect(this, g_Ball)) {
if (g_Ball.y < this.y || g_Ball.y > this.y) {
g_Ball.yDirection = g_Ball.yDirection * -1;
}
else if (g_Ball.x < this.x || g_Ball.x > this.x) {
g_Ball.xDirection = g_Ball.xDirection * -1;
}
this.destroyBlock();
}
Tools.rectsIntersect = function (obj1, obj2) {box
var aRect = obj1.collideRect();
var bRect = obj2.collideRect();
return cc.rectIntersectsRect(aRect, bRect);
};
cocos2D에 내장 된 cc.rectIntersectsRect 함수를 사용했습니다. 나는 그것이 어떻게 기능하는지 완전히 모르겠다. 그러나 당신은 블록을 배열에 넣는 올바른 아이디어를 가지고 있었다. 나는 충돌에 어려움을 겪었지만 때로는 방향이 바뀌지 않았지만 초기 코드에서는 지금까지 모두 방향이 바뀌 었습니다. –