sape hat geschrieben:Gnush, könntest du den 10-Zeiler Posten?
Gerne. Er sieht jetzt allerdings etwas anders aus, weil ich hinter ein Geheimnis von Python gekommen bin
(Ja, ich weiß ich bin noch Anfänger)
Habe ich nämlich:
Code: Alles auswählen
Foo = [1, 2]
Bar = [Foo, Foo, Foo]
print Bar
for x in Bar:
x[0] = 7
print Bar
So wird die Liste geändert.
Habe ich hingegen
Code: Alles auswählen
Foo = 1
Bar = [Foo, Foo, Foo]
print Bar
for x in Bar:
x = 7
print Bar
so werden die Elemente nicht verändert. Dies half mir dabei, folgenden Code zu verbessern, vom ursprünglichen Problem ist nichts mehr übrig:
Code: Alles auswählen
for Ship in self.__Ships:
Pos, Alive, Initialized, CounterClock = Ship
PosX, PosY = Pos
if PosY >= 0 and not Initialized:
Screen.blit(EnemiesImg, Pos, EnemyBlackRect)
UpdateRects.append((PosX, PosY, EnemyWidth, EnemyHeight))
PosY = PosY + 2
if CounterClock and PosY >= self.__Bottom2:
PosY = self.__Bottom2
Initialized = True
elif not CounterClock and PosY >= self.__Bottom1:
PosY = self.__Bottom1
Initialized = True
Pos = (PosX, PosY)
Screen.blit(EnemiesImg, Pos, self.__ImgRect)
UpdateRects.append((PosX, PosY, EnemyWidth, EnemyHeight))
elif PosY < 0:
PosY = PosY + 1
else:
NumInit = NumInit + 1
Ship[0] = (PosX, PosY)
Ship[2] = Initialized
if NumInit == self.__Num:
self.__MoveInit = False
if len(UpdateRects) > 0:
pygame.display.update (UpdateRects)
Bei diesem Code geht es darum, dass gerade feindliche Raumschiffe von oben den Bildschirm betreten und sich so positionieren, daß sie Captain Tux (
) angreifen können. Dort, wo Ship[0]=(PosX, PosY) steht, bestand mein ursprüngliches Problem.
Liebe Grüße
Gnushi