Instanzvariable unbekannt..??
Verfasst: Mittwoch 2. März 2011, 22:41
Hallo und so,
ich habe im Moment echt Mühe und sehe wirklich keinen Fehler... es geht um Folgendes:
Hab mir eine Creep-Klasse gebastelt. Die hat eine update-Methode (Creeps bewegen und animieren etc), hier ein kleiner Teil davon (also die update-Methode selbst und die Methode, welche Probleme bereitet):
Im Hauptscript wird eine Wave aus Creeps erzeugt, welche dann alle ihre update-Methode durchgehen. Das sieht etwa so aus:
Das alles hatte prächtig funktioniert - bis ich die get_blitpos() - Methode hinzugefügt habe... jetzt kommt folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 86, in <module>
invasion()
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 80, in invasion
BILDSCHIRM.blit(creep.imagesets[str(creep.dir)][creep.cycleindex], (creep.blit_x, creep.blit_y))
AttributeError: Creep instance has no attribute 'blit_x'
es kommt noch besser: Die get_blitpos()-Methode gibt's gar nicht! Macht Ihr gugg:
...und dann heisst es:
Traceback (most recent call last):
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 87, in <module>
invasion()
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 67, in invasion
creep.get_blitpos()
AttributeError: Creep instance has no attribute 'get_blitpos'
Das gibt's doch nicht?! Sieht jemand wat wat ich nich seh..?
es grüsst:
Henry
ich habe im Moment echt Mühe und sehe wirklich keinen Fehler... es geht um Folgendes:
Hab mir eine Creep-Klasse gebastelt. Die hat eine update-Methode (Creeps bewegen und animieren etc), hier ein kleiner Teil davon (also die update-Methode selbst und die Methode, welche Probleme bereitet):
Code: Alles auswählen
def get_blitpos(self):
"""Ermittelt die effektive Blitposition des Creeps"""
x_diff = self.width - self.u
y_diff = self.height - self.u
self.blit_y = self.y - (self.u / 2 + y_diff)
self.blit_x = self.x - (self.u / 2 + x_diff)
self.blitpos = (self.blit_x, self.blit_y)
def update(self, wave):
self.walk()
delta, wave = self.zielupdate(wave)
if delta != None:
self.dir = richtungscheck((self.x, self.y), (self.zielpunkte[self.zielindex]))
if delta > 0:
self.walk(delta)
self.bildupdate()
self.get_blitpos()
return wave
Code: Alles auswählen
wave = get_wave()
for creep in wave:
creep.einreihen(karte)
while len(wave) > 0:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
BILDSCHIRM.fill(farben.schwarz)
BILDSCHIRM.blit(hintergrund, (0, 0))
for creep in wave:
wave = creep.update(wave)
BILDSCHIRM.blit(creep.imagesets[str(creep.dir)][creep.cycleindex], (creep.blit_x, creep.blit_y))
slow_motion()
Traceback (most recent call last):
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 86, in <module>
invasion()
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 80, in invasion
BILDSCHIRM.blit(creep.imagesets[str(creep.dir)][creep.cycleindex], (creep.blit_x, creep.blit_y))
AttributeError: Creep instance has no attribute 'blit_x'
es kommt noch besser: Die get_blitpos()-Methode gibt's gar nicht! Macht Ihr gugg:
Code: Alles auswählen
wave = get_wave()
for creep in wave:
creep.einreihen(karte)
creep.get_blitpos()
Traceback (most recent call last):
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 87, in <module>
invasion()
File "C:\Python25\Game Development\Power Defense\td_experience_nih.py", line 67, in invasion
creep.get_blitpos()
AttributeError: Creep instance has no attribute 'get_blitpos'
Das gibt's doch nicht?! Sieht jemand wat wat ich nich seh..?
es grüsst:
Henry