def check_collisions(self, jeff, level_select):
for j in range(len(self.level_data["DATA"])):
# if self.y - 50 * (j + 1) < jeff.get_pos()[1]:
# break
for i in range(int(self.level_cursor), int(self.level_cursor) + int(Constant.WIN_WIDTH / 50) + 1):
if i >= len(self.level_data["DATA"][j]) or (i - self.level_cursor) * 50 > jeff.get_pos()[0] + 50:
break
if self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"] == "End":
self.lvl_end = True
level_select.unlock_next_level(self.last_level)
if pygame.Rect([jeff.get_pos()[0] + 2, jeff.get_pos()[1] - 2],
[46, 46]).colliderect(pygame.Rect([(i - self.level_cursor) * 50, self.y - 50 * (j + 1)], [50, 50])) and \
self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"] == "Bloc":
print(self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"])
jeff.die()
elif pygame.Rect([jeff.get_pos()[0] + 10, jeff.get_pos()[1] - 10],
[30, 30]).colliderect(pygame.Rect([(i - self.level_cursor) * 50, self.y - 50 * (j + 1)], [50, 50])):
if self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"] == "Pic":
print(self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"])
jeff.die()
elif self.level_data["TILES"][self.level_data["DATA"][j][i]]["NAME"] == "Energy":
self.level_data["DATA"][j][i] = 0
jeff.obtain_energy()
评论列表
文章目录