私はゲームに取り組んでおり、物事を最適化しようとしています。次のコードを短縮するために for ループを作成しました。
// 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;
}
}
}
コードを書き直したときに何かが明らかに変換されませんでした。これは、これがテストしているゲームの衝突でそれを切り替えようとすると機能しなくなるためです。私の人生では、何が間違っている可能性があるのか わかりませんか、何かアイデアはありますか?