Auf Knopfdruck Klick einen neuen Sprite erstellen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Micky2010
User
Beiträge: 34
Registriert: Donnerstag 19. Mai 2011, 17:06
Wohnort: Hessen

Hallo liebe Pythoner,
Ich würde gerne auf Knopfdruck/Mausklick einen neuen Sprite erstellen.
Wie man einen Sprite ersetzt wüsste ich gerne.
Das gleiche mit Sprite entfernen.


LG Micky2010
Zuletzt geändert von Micky2010 am Mittwoch 6. Juli 2011, 20:24, insgesamt 1-mal geändert.
Errare humanum est, in errore perseverare stultum (Irren ist menschlich, im Irrtum verbleiben ist dumm)
Manus manum lavat (Eine Hand wäscht die andere)
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Wie wäre es damit den Sprite der weg soll einfach nicht mehr zu zeichnen?
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Lateralus
User
Beiträge: 5
Registriert: Dienstag 19. April 2011, 19:45

Du solltest vielleicht angeben, unter was du entwickelst. In pygame würdest du das Sprite.kill() aufrufen um es aus sämtlichen Sprite groups zu entfernen. Neue erstellen kannst du, indem du die events entsprechend prüfst und dann einfach ein neues sprite object erstellst und in deine sprite group einfügst.

Beispiel:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygame
from pygame.locals import *

display = pygame.set_mode((800, 600))
background = pygame.image.load("background.png").convert()
display.blit(background, (0, 0))
clock = pygame.timer.Clock()
running = True

sprites = pygame.sprite.Group()

mysprite = pygame.sprite.Sprite()
mysprite.image = pygame.image.load("blub.png").convert()
mysprite.rect = mysprite.image.get_rect()

sprites.add(mysprite)

while running:
  clock.tick()

  for event in pygame.event.get():
    if event.type == QUIT:
      running = False
    # neues sprite erstellen
    elif event.type == MOUSEBUTTONDOWN:
      mysprite.kill()
      newsprite = pygame.sprite.Sprite()
      newsprite.image = pygame.image.load("bla.png").convert()
      newsprite.rect = mysprite.image.get_rect()
      sprites.add(newsprite)
  
  sprites.clear(display, background)    
  sprites.update()
  sprites.draw(display)
  pygame.display.flip()
Antworten