所以我做了一个基于成熟,我不能得到冲突的工作。
这个代码在主循环显示的瓷砖:
tile_rects = []
y = 0
for layer in game_map:
x = 0
for tile in layer:
if tile == '1':
display.blit(dirt, (x * tile_size, y * tile_size))
if tile == '2':
display.blit(grass, (x * tile_size, y * tile_size))
if tile != '0':
tile_rects.append(pygame.Rect(x * tile_size, y * tile_size, tile_size, tile_size))
x += 1
y += 1
和这个代码的应该是使冲突的工作,但不知怎的,它不,这是在播放器类。
def collisions(self):
global tile_rects
self.rect.x += self.x_vel
self.rect.y += self.y_vel
for tile_rect in tile_rects:
if self.rect.colliderect(tile_rect):
if abs(tile_rect.top - self.rect.bottom) < 10:
self.y_vel -= 1
if abs(tile_rect.bottom - self.rect.top) < 10:
self.y_vel += 1
if abs(tile_rect.right - self.rect.left) < 10:
self.x_vel -= 1
if abs(tile_rect.left - self.rect.right) < 10:
self.x_vel += 1
else: tile_rects = []
任何修复?