PyGame与瓷砖渲染地图的碰撞?
我在做一个瓷砖渲染器的时候遇到了一些问题,它会读取一个文本文件,找到里面的字符,然后把这些字符转换成矩形。我的问题是,现在只有最新的那个瓷砖/矩形会被计算在碰撞检测中。
这是我问题的视频:http://youtu.be/7wAHp-vgrLU
我的代码是这样工作的:
wall = pygame.draw.rect(screen, (40,40,40), (current_tile_x,current_tile_y,tile_size,tile_size), 0)
if wall.colliderect(collision) == 1:
print "Collision!"
玩家的矩形被定义为碰撞体。我觉得问题在于每次处理墙壁瓷砖的时候,变量 wall 都会被覆盖,那么我该怎么解决这个问题呢?
1 个回答
2
你刚才自己已经回答了这个问题,你应该创建一个可以遍历的列表,把所有需要测试的矩形放进去:
#load all the rects in one list for example
walls = get_wall_list() #returns a list [rect0,rect1,rectn]
for wall in walls:
if wall.colliderect(collision): #'if True == 1:' works as the same 'if True:'
print "Collision!"