我正在尝试创建类似于《战争年代》的游戏。我有针对敌方基地的碰撞检测功能,但我无法弄清楚如何对玩家角色进行碰撞,使他们彼此堆叠。
我已经通过检查骑士名单来尝试过,但是它不起作用。
def player_knight_position():
global player_knight_list
global player_walk
for player_knight_pos in player_knight_list:
stop = False
stop = player_knight_collision_check(player_knight_pos,stop)
if stop == False:
if player_knight_pos[2] + 1 >= 7:
player_knight_pos[2] = 0
player_knight_pos[0] += 2
player_knight_pos[3] += 2
player_walk +=1
if player_walk >=7:
player_knight_pos[2] += 1
player_walk = 0
else:
pass
def player_knight_collision_check(player_knight_pos,stop):
global player_knight_list
p_x = player_knight_pos[0]
print(player_knight_list)
for knight_pos in player_knight_list:
print(knight_pos[0])
if p_x <= saved_enemy_base_x or p_x < knight_pos[0] -100:
stop = False
return stop
else:
stop = True
return stop
您是否对所有角色都使用Sprite类?如果是这样,请看一下spritecollide函数,我认为这将处理您尝试实现的很多事情。