ich hab mal PyMike s GeoStrike an unseren Touchscreen gekoppelt.
Das rockt, bei jeder Bewegung mit den Finger wird das Raumschiff bewegt und ein Schuß abgegeben.
Scheinbar sind es aber zu viele Signale vom Touchscreen oder so.
Es erscheint nämlich manchmal die Fehlermeldung: AttributeError: 'Shot' object has no attribute 'vx'
Ich geh jetzt mal davon aus, das die update funktion aufgerufen wird, aber der Schuß noch nicht mit __init__ durch ist. Wie kann ich in der Update abfragen, ob es self.vx schon gibt? "if self.vx:" geht leider nicht ;(
Code: Alles auswählen
SHOT_POINTS = [(0, -7), (-2, 7), (0, 4), (2, 7)]
class Shot(VectorObject):
def __init__(self, pos, offset=0, speedoffset=0):
VectorObject.__init__(self, points=SHOT_POINTS, pos=pos)
self.move(offset, 5)
self.vx = speedoffset
def update(self):
self.move(self.vx, -14)
if self.pos[1] <= 0:
self.kill()