Ich konnte die anderen Fragen in Stackoverflow nicht verstehen. Wenn sich der Kreis zum Ende des Bildschirms bewegt, bewegt er sich in die entgegengesetzte Richtung.Python TypeError: Argument 1 muss pygame.Surface sein, nicht pygame.Rect
import pygame
import sys
pygame.init()
screen = pygame.display.set_mode([640,480])
screen.fill([255,255,255])
circle = pygame.draw.circle(screen, [255,0,0],[100,100],30,0)
x = 50
y = 50
x_speed = 5
y_speed = 5
done = "False"
while done == "False":
for event in pygame.event.get():
if event.type == pygame.QUIT:
done="True"
pygame.time.delay(20)
pygame.draw.rect(screen,[255,255,255],[x,y,30,30],0)
x = x + x_speed
y = y + y_speed
if x > screen.get_width() - 30 or x < 0:
x_speed = -x_speed
if y > screen.get_height() - 30 or y < 0:
y_speed = -y_speed
screen.blit(circle,[x,y])
pygame.display.flip()
pygame.quit()
Eine Fehlermeldung wird ausgegeben, ohne dass sie implementiert wurde.
screen.blit(circle,[x,y])
TypeError: argument 1 must be pygame.Surface, not pygame.Rect
Was ist das Problem?
pygame.draw.circle (Kreis, [255.0.0], [30, 30], 30), Wenn [30, 30] erhöht wird, die kollidierenden Wand kein Fenster Fenster ist. Es scheint nicht mit pygame Oberfläche() verwandt zu sein. Was ist das Problem? Lass mich die Antwort wissen ... – SsolGom
'Wenn x> screen.get_width() - 30', musst du die 30 auf 60 ändern, denn das ist die Größe des Kreises in meinem Beispiel. Ich habe die Antwort bearbeitet. – skrx