나는 게임을하고 있는데, 나는 물건을 최적화하려고 노력하고있어. 나는 다음과 같은 코드를 단축하기 위해 루프를 만든에게 :내 코드가 이전에 작성한 방식과 다르게 동작하는 이유는 무엇입니까?
// if near pb1
if (pbMoveCheck_playerNearpb(pb1, pb2, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb1, pb2, x, y)) {
pb1Good = true;
pGood = true;
}
// if near pb1
if (pbMoveCheck_playerNearpb(pb1, pb3, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb1, pb3, x, y)) {
pb1Good = true;
pGood = true;
}
// if near pb1
if (pbMoveCheck_playerNearpb(pb1, pb4, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb1, pb4, x, y)) {
pb1Good = true;
pGood = true;
}
// if near pb2
if (pbMoveCheck_playerNearpb(pb2, pb1, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb2, pb1, x, y)) {
pb2Good = true;
pGood = true;
}
// if near pb2
if (pbMoveCheck_playerNearpb(pb2, pb3, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb2, pb3, x, y)) {
pb2Good = true;
pGood = true;
}
// if near pb2
if (pbMoveCheck_playerNearpb(pb2, pb4, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb2, pb4, x, y)) {
pb2Good = true;
pGood = true;
}
// if near pb3
if (pbMoveCheck_playerNearpb(pb3, pb1, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb3, pb1, x, y)) {
pb3Good = true;
pGood = true;
}
// if near pb3
if (pbMoveCheck_playerNearpb(pb3, pb2, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb3, pb2, x, y)) {
pb3Good = true;
pGood = true;
}
// if near pb3
if (pbMoveCheck_playerNearpb(pb3, pb4, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb3, pb4, x, y)) {
pb3Good = true;
pGood = true;
}
// if near pb4
if (pbMoveCheck_playerNearpb(pb4, pb1, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb4, pb1, x, y)) {
pb4Good = true;
pGood = true;
}
// if near pb4
if (pbMoveCheck_playerNearpb(pb4, pb2, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb4, pb2, x, y)) {
pb4Good = true;
pGood = true;
}
// if near pb4
if (pbMoveCheck_playerNearpb(pb4, pb3, b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(pb4, pb3, x, y)) {
pb4Good = true;
pGood = true;
}
그래서 나는이 그것을 아래로 다진 :
// Make lists of stuff
pushBlock1[] listPushBlocksA = { pb1, pb2, pb3, pb4 };
boolean[] pbGoodList = { pb1Good, pb2Good, pb3Good, pb4Good };
// if near pb loop
for (int i = 0; i < listPushBlocksA.length; i++) {
for (int j = 0; j < listPushBlocksA.length; j++) {
if (i != j & pbMoveCheck_playerNearpb(listPushBlocksA[i],
listPushBlocksA[j], b1, b2, b3, b4, m, p, x, y)
& pbMoveCheck_doublepb(listPushBlocksA[i],
listPushBlocksA[j], x, y)) {
pbGoodList[i] = true;
pGood = true;
}
}
}
뭔가 내가하려고 할 때 때문에 코드를 redid 때 분명히 이상 번역하지 않았다 테스트중인 게임 충돌로 전환하면 작동이 멈 춥니 다. 내 인생은 잘못 될 수있는 것을 볼 수 없습니까, 어떤 생각입니까?
을 * 그냥 (!) 참고로 : * 방법에 10 개 매개 변수를 전달하는 것이하지 않는 것 좋은 연습이 될 수 있습니다. [Value Object] (http://en.wikipedia.org/wiki/Value_object) 클래스를 만들고 그 인스턴스를 전달하는 것이 좋습니다. – Sujay
고마워, 나는 실제로 그 매개 변수의 대부분을 제거하고 제거하려고했는데, 나는 처음 두 개와 x와 y 만 필요로했다. – user1048723
그런 다음 수정 사항을 적용하고 변경 사항의 작동 여부를 확인한 다음 다시 돌아와 질문을하십시오 (* 문제가 발생할 경우를 대비하여 *). 이렇게하면 막연한 질문보다는 구체적인 질문을하는 데 도움이됩니다. – Sujay