私が取り組んでいるこのプロジェクトについて以前に投稿しました (そしてあなたの回答が役に立ちました!) が、衝突検出が正しく報告されない理由についてはまだ少し曖昧です。プレイヤー キャラクターを衝突可能なタイルに移動するときなど、プレイが進むすべてのタイルで true が返されます。衝突検出アルゴリズムに問題があるかどうか、または他の場所に問題があるかどうかを知りたいだけです。
def checkPlayerEnvCollision(self,player):
rowCount = 0
for row in self.cLayer:
colCount = 0
for col in row:
print("col: " + str(col))
#print(str(self.Level.tileLayer[row][col]) + ": " + str(c[row][col]))
if col:
grid_position = (colCount*32, rowCount*32)
collide_x = False
collide_y = False
print(str(grid_position))
# check x axis for collision
if player.x + 32 > grid_position[0]:
collide_x = True
elif player.x < grid_position[0] + 32:
collide_x = True
print("Player x: " + str(player.x) + " Player y : " + str(player.y))
# check y axis for collision
if player.y < grid_position[1] + 32:
collide_y = True
elif player.y + 32 > grid_position[1]:
collide_y = True
print("collide_x: " + str(collide_x) + " " + "collide_y: "+ str(collide_y))
# act on a collision on both axis
if collide_x and collide_y:
print("COLLISION DETECTED")
else:
print("NOCOLLISION___")
colCount += 1
rowCount += 1
助けてくれてありがとう!