#python #attributes
Вопрос:
(python, pygame) В моем коде есть момент, когда создаются множественные атрибуты, и я хочу, чтобы у каждого из них было другое имя. Я думаю, что это, может быть, называется динамическим созданием ??
for row, tiles in enumerate(self.mapData): for colone, tile in enumerate(tiles): if tile == 'w': self.wall = Wall(self,colone, row) if tile == '8': self.camera = Camera(self, colone, row, "up") if tile == '2': self.camera = Camera(self, colone, row, "down") if tile == '6': self.camera = Camera(self, colone, row, "right") if tile == '4': self.camera = Camera(self, colone, row, "left")
Поэтому я хочу, чтобы у каждой созданной камеры было другое имя, но я не знаю, как это сделать. Это для изменения каждого из них здесь.
if self.camera.x lt;= self.player.x lt; self.camera.x1 and self.camera.y lt;= self.player.y lt; self.camera.y1: print("detecté") self.alive = False
Я пробовал использовать группы pygame, но это не сработало. Поэтому, пожалуйста, не могли бы вы мне чем-нибудь помочь ?
Комментарии:
1. почему бы вам не добавить экземпляры Camera в список, а затем выполнить итерацию по списку? это немного сбивает с толку, почему вы переопределяете предыдущие значения атрибута экземпляра
camera
, но именно это вы и делаете.self.camera
будет ссылаться наCamera
созданную на основе значения последней плитки2. используйте список камер и добавьте каждый объект камеры в этот список