我有兩種方法在我的板級內檢查碰撞。一個用於其他玩家對象,另一個用於地圖邊界。地圖的工作正常,但玩家的碰撞已關閉。 這裏是方法:基於控制檯的遊戲衝突不起作用
def check_mob(self, player, enemy):
dx = player.x - enemy.x
dy = player.y - enemy.y
distance = math.sqrt(dx ** 2 + dy ** 2)
if distance <= 1:
return True
else:
return False
def check_brd(self, board, player, enemy, direction):
'''Deals with collision '''
brd_x = len(self.board)
brd_y = len(self.board[0])
if direction == 'down':
if player.x + 1 == brd_x or self.check_mob(player, enemy):
return False
else:
return True
elif direction == 'up':
if player.x - 1 == brd_x - brd_x -1 or self.check_mob(player, enemy):
return False
else:
return True
elif direction == 'left':
if player.y - 1 == brd_y - brd_y - 1 or self.check_mob(player, enemy):
return False
else:
return True
elif direction == 'right':
if player.y + 1 == brd_y or self.check_mob(player, enemy):
return False
else:
return True
玩家或敵人會走到另一個,會被卡住。當這種情況發生時,我需要他們能夠彼此離開。 整個,現在的工作,代碼爲here.
向我們展示在檢測到碰撞後您對玩家所做的事情。 –
就像函數被調用時一樣?一旦發現碰撞,我認爲我沒有做任何事情。 –
你必須做點什麼,否則球員會穿過對方或穿過牆壁。 –