Ich habe ein Problem, wobei das Aufrufen einer Variablen all_sprites als pygame.Group() keine Werte zurückgibt, und ich kann nicht herausfinden, warum.Problem beim Zeichnen in Pygame mit der Gruppe
class game:
def __init__(self):
pg.init()
self.screen = pg.display.set_mode((screenwidth, screenheight))
pg.display.set_caption("Gammee")
self.clock = pg.time.Clock()
def run(self):
while True:
self.dt = self.clock.tick(FPS)/1000
self.events()
self.update()
self.draw()
def new(self):
self.othersprites = pg.sprite.Group()
def draw(self):
self.screen.fill(BGCOLOR)
self.othersprites.draw(self.screen)
pg.display.flip()
def quit(self):
pg.quit()
sys.exit()
def update(self):
self.othersprites.update()
def events(self):
for event in pg.event.get():
if event.type == pg.QUIT:
self.quit()
g = game()
while True:
g.new()
g.run()
Dies ist der Code für das Spiel
class Player(pg.sprite.Sprite):
def __init__(self, game, x, y):
self.groups = game.all_sprites
pg.sprite.Sprite.__init__(self, self.groups)
self.game = game
self.image = pg.Surface((30, 30), SRCALPHA)
self.image.fill(YELLOW)
self.rect = self.image.get_rect()
self.vx, self.vy = 0, 0
self.x = x
self.y = y
def get_keys(self):
keys = pg.key.get_pressed()
if keys[pg.K_LEFT] or keys[pg.K_a]:
self.vx = -PLAYER_SPEED
if keys[pg.K_RIGHT] or keys[pg.K_d]:
self.vx = PLAYER_SPEED
if keys[pg.K_UP] or keys[pg.K_w]:
self.vy = -PLAYER_SPEED
if keys[pg.K_DOWN] or keys[pg.K_s]:
self.vy = PLAYER_SPEED
if len(keys) != 0:
self.vx *= 0.9
self.vy *= 0.9
def update(self):
self.get_keys()
self.x += self.vx * self.game.dt
self.y += self.vy * self.game.dt
self.rect.x = self.x
self.rect.y = self.y
jedoch nichts mit dem Geröll gezogen wird. Ich habe auch von
setzen getestetfor sprite in self.all_sprites:
print(sprite)
, die auf dem Sprite Ausgabe info verwendet, aber jetzt tut nichts,
irgendwelche Ideen, was ich falsch mache?
Haben Sie vielleicht vergessen, den 'Player' zu instanziieren? Der Code ist nicht ausreichend, um den Fehler zu finden. Bearbeiten Sie daher Ihre Frage und geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) an. – skrx
Danke für die Antwort, ich habe die Frage aktualisiert, um den vollständigen Spielecode einzubeziehen. Um den Player instanziieren zu können, muss ich irren, wenn ich anmaße, dass er automatisch instanziiert wird, wenn er der Gruppe hinzugefügt wird? –