Seite 1 von 1

Pygame Fehler...

Verfasst: Freitag 27. Juli 2012, 21:37
von Pyanfänger
Hi an alle :)

nach einer kleinen Auszeit mal wieder mit Pygame was rumprobiert, aber dabei habe ich folgende Probleme:



- "Objekt" wird bei einem Klick nur sehr selten angezeigt, dh von 10 Klicks irgendwo hin Blitzt einmal kurz "Objekt" auf und verschwindet wieder.
- Das pygame.QUIT event funktionniert nicht immer, dh ab und zu shcließt es sich, ab und zu bleibt esaber auch einfach hängen...

Code: Alles auswählen


# -*- coding: UTF-8 -*-
 
import pygame
import Tilemap
import sys
 




pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Tribal Age")
pygame.mouse.set_visible(1)
#pygame.key.set_repeat(1, 30)
 
clock = pygame.time.Clock()
 
map = Tilemap.Tilemap()

Objekt = pygame.image.load('Objekt.png')
Objekt_rect = Objekt.get_rect() 
 
running = True
while running:

    clock.tick(50) # 50frames maximal...
    screen.fill((0, 0, 0))
    for event in pygame.event.get():

        if event.type == pygame.MOUSEBUTTONDOWN:
            pos1 = pygame.mouse.get_pos()
            xm = pos1[0]
            ym = pos1[1]
            screen.blit(Objekt,[xm,ym])
            pygame.display.flip()
            
        if event.type == pygame.QUIT:
            running = False
            sys.exit()
 
        if event.type == pygame.KEYDOWN:
                
            if event.key == pygame.K_ESCAPE:
                pygame.event.post(pygame.event.Event(pygame.QUIT))
                sys.exit()
 
                map.handleInput(event.key)
 
    map.render(screen)
 
    pygame.display.flip()
Hat wer ne Ahnung wieso :( ?

Re: Pygame Fehler...

Verfasst: Samstag 28. Juli 2012, 14:10
von /me
Pyanfänger hat geschrieben:- "Objekt" wird bei einem Klick nur sehr selten angezeigt, dh von 10 Klicks irgendwo hin Blitzt einmal kurz "Objekt" auf und verschwindet wieder.
Du zeichnest das Objekt ja auch nur, wenn überhaupt irgendein Event passiert. Danach bügelst du es wieder platt.

Re: Pygame Fehler...

Verfasst: Samstag 28. Juli 2012, 14:14
von Pyanfänger
Thx für die Antwort :D

Naja aber selbst wenn ich die Maus gedrückt halte - das Objekt wird nciht angezeigt :(

Re: Pygame Fehler...

Verfasst: Samstag 28. Juli 2012, 20:24
von /me
Pyanfänger hat geschrieben:Naja aber selbst wenn ich die Maus gedrückt halte - das Objekt wird nciht angezeigt :(
Wenn du die Maus gedrückt hältst gibt es ja auch kein Event.

Re: Pygame Fehler...

Verfasst: Sonntag 26. Mai 2013, 18:08
von LPython
Pygame.QUIT funktioniert nicht weil die prozesse in idle durcheinander kommen :/
Versuch das Programm mal mit cmd oder einem codeeditor
wie spe auszuführen. :D

Re: Pygame Fehler...

Verfasst: Donnerstag 20. Juni 2013, 19:41
von Py19917062
Wenn du Pygame mit pygame.init() initialisierst, solltest du es auch beim Schließen mit pygame.quit() verlassen. Das ist der Grund warum es "hängen" bleibt.

Code: Alles auswählen

if event.type == pygame.QUIT:
    running = False
    pygame.quit()
    sys.exit()
Wobei ich persönlich auf sys.exit() verzichten würde, da es nicht schön in der Shell aussieht und auch ohne bestens funktioniert :)

Und screen.blit(Objekt,[xm,ym]) passt in die vorletzte Zeile besser rein. Dann kannst du auch auf pygame.display.flip() in der Eventabfrage verzichten.