Как проверить наличие коллизий в рицах?
Это на самом деле не работает. (Что я делаю)
Я уже пробовал:
def goDownStairs(self):
if self.rect.colliderect(self.rect.right, self.game.stair.rect.left):
self.level += 1
self.game.load_data(self.level)
но это дало ошибку:
File "/home/hackings/PycharmProjects/Tile_Game/Sprites.py", line 25, in goDownStairs
if self.rect.colliderect(self.rect.right, self.game.stair.rect.left):
TypeError: Argument must be rect style object
Это мой код:
ИГРОК:
def goDownStairs(self):
if self.rect.colliderect(self.rect.right, self.game.stair.rect.left):
self.level += 1
self.game.load_data(self.level)
ИГРА:
def run(self):
# game loop - set self.playing = False to end the game
self.playing = True
while self.playing:
self.dt = self.clock.tick(FPS) / 1000
self.events()
self.update()
self.draw()
self.player.move()
self.player.goDownStairs()
def load_data(self, level):
gameFolder = path.dirname(__file__)
self.mapData = []
self.level = level
if level < 4:
print(level)
with open(path.join(gameFolder, 'Maps/' + str(level)), 'rt') as f:
for line in f:
self.mapData.append(line)
Я просто ожидал, что он изменит уровень и загрузит новый уровень, но он сделал это:
TypeError: Argument must be rect style object
if self.rect.colliderect(self.rect.right, self.game.stair.rect.left):