Seite 2 von 2

Re: Maus auf Bild Zentrieren

Verfasst: Sonntag 19. April 2020, 14:27
von __blackjack__
@Giben: Du hast da zwei verschachtelte Ereignisschleifen. Das sollte nur eine sein.

Re: Maus auf Bild Zentrieren

Verfasst: Sonntag 19. April 2020, 17:24
von Giben
Ich kapiers einfach nicht :cry:
Wie bekomme ich jetzt das Sprite dazu um es mit der maus zu bewegen?? :cry:

Code: Alles auswählen

import pygame
from pygame.locals import *

#from pygame_functions import *
BREITE = 800    
HOEHE  = 600
WEIS =(255,255,255)
FPS = 60
pygame.display.set_caption("Varroa Invaders")
clock = pygame.time.Clock()
fenster = pygame.display.set_mode([BREITE,HOEHE])
hintergrund = pygame.image.load("bilder/wiese.jpg")

class Player (pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load('Bilder/Daco50x49.png')
        self.rect = self.image.get_rect()
        self.rect.center = (0,0)
    
    def update(self):
            
        event = pygame.event.get() 
        if event.type == pygame.MOUSEMOTION:
            self.rect.top +=1
            
       
def main():
    spielaktiv = True
    spieler = Player()
    spritesall = pygame.sprite.Group(spieler)
   
    pygame.init()
    while spielaktiv:
        for event in pygame.event.get():
            if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
                spielaktiv = False
            
        fenster.blit(hintergrund,(0,0))
        spritesall.update()
        spritesall.draw(fenster)
        pygame.display.update()

        pygame.display.flip()
        clock.tick(FPS)
    pygame.quit()
if __name__ == "__main__":
    main()          

Re: Maus auf Bild Zentrieren

Verfasst: Sonntag 19. April 2020, 18:04
von __blackjack__
@Giben: Das Problem ist nicht das ``for`` sondern das da überhaupt `pygame.event.get()` aufgerufen wird. Das hat in einem `Sprite` nix zu suchen, das gehört ins Hauptprogramm.

`event.type` führt ja auch zu einem `AttributeError` weil das gar kein einzelnes Ereignis ist.

Re: Maus auf Bild Zentrieren

Verfasst: Sonntag 19. April 2020, 18:21
von Giben
Erstmal danke für deine Geduld :)

Also soweit bin ich auch gekommen.Aber wie bekomme ich jetzt die Mausteuerung hin?Wie schaffe ich es die Mauskoordinaten zur def update(sel)f zu übertragen?
Die koordinaten werden mir mit Print angezeigt, scheint also soweit zu funktionieren...

Code: Alles auswählen

   def update(self):
        self.rect.center 
            
       
def main():
    spielaktiv = True
    spieler = Player()
    spritesall = pygame.sprite.Group(spieler)
    
    pygame.init()
    while spielaktiv:
        for event in pygame.event.get():
            if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
                spielaktiv = False
            if event.type == pygame.MOUSEMOTION:
                bewegung = event.pos
                print (bewegung)
        spieler.update()
        fenster.blit(hintergrund,(0,0))
        #spritesall.update()
        spritesall.draw(fenster)
        pygame.display.update()