Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Avatar(pygame.sprite.Sprite): # Erschaffe Spriteklasse namens Avatar def __init__(self): # fülle die Klasse Avatar mit folgenden Daten pygame.sprite.Sprite.__init__(self) # initialisierung des Sprites (super wichtig!) self.image = pygame.image.load(os.path.join(img_folder, "Rahl_rechts.png")).convert() # lade Spriteimage aus Bilderordner self.image.set_colorkey(schwarz) # weise colorkey eine Farbe zu (diese Farbe wird daraufhin transparent wiedergegeben) self.rect = self.image.get_rect() # Erschaffe Quadrat um den Avatar so groß wie Avatar self.rect.center = (x, y) # setze die Startkoordinaten self.y_speed = 2 # def update(self): self.rect.x += 2 # Bewegungsgeschwindigkeit auf der X-Achse self.rect.y += self.y_speed # Bewegungsgeschwindigkeit auf der Y-Achse if self.rect.bottom > höhe - 20: self.y_speed = - 2 if self.rect.top < 20: self.y_speed = 2 if self.rect.left > breite: self.rect.right = 2 |
Quellcode |
|
1 2 3 4 5 6 7 8 9 |
pressedKeys = pygame.key.get_pressed() # Abfrage der Eingaben if pressedKeys[pygame.K_UP] == 1 and pressedKeys[pygame.K_RIGHT] == 1: x = x + 4.5 y = y - 4.5 elif pressedKeys[pygame.K_UP] == 1 and pressedKeys[pygame.K_LEFT] == 1: x = x - 4.5 y = y - 4.5 |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Maltrix« (23.02.2018, 15:49)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Maltrix« (23.02.2018, 15:37)
Administrator
Wie gesagt, wenn Python den Wert einer Variablen als Ganzzahl ansieht dann kannst du die zwar mit einer Kommazahl multiplizieren, das Ergebnis bleibt aber eine Ganzzahl. Möglicherweise kannst du mit typeof mal gucken was für einen Typ die Variable hat.
Quellcode |
|
1 2 |
x = 5 # x ist Integer x *= 1.5 # x ist jetzt Float und hat den Wert 7.5 |
Quellcode |
|
1 2 3 |
elif pressedKeys[pygame.K_UP] == 1 and pressedKeys[pygame.K_LEFT] == 1: self.rect.x = self.rect.x - 1 self.rect.y = self.rect.y - 1 |
Quellcode |
|
1 2 3 |
if pressedKeys[pygame.K_DOWN] == 1 and pressedKeys[pygame.K_RIGHT] == 1: self.rect.x = self.rect.x + 1 self.rect.y = self.rect.y + 1 |
Administrator
Das ist falsch. Ein Integer multipliziert mit einem Float ergibt einen Float. Und nicht vergessen, dass Python dynamisch typisiert ist, d. h. dass Variablen ihren Typ ändern können:
Werbeanzeige