Seite 1 von 1

[pygame] pygame.mouse.get_pos() --> Rückgabe

Verfasst: Dienstag 6. November 2007, 22:14
von C4S3
Hallo alle mitsammen!

Ich habe eine kurze Frage zu dem Befehl get_pos() aus dem pygame.mouse Modul.

Wenn ich

Code: Alles auswählen

print pygame.mouse.get_pos()
aufrufe, bekomme ich zum Beispiel: (100,100) als Rückgabe, bzw. in der Shell angezeigt.

Wenn ich aber versuche, die Rückgabe zu verwenden, z.B. mit

Code: Alles auswählen

x,y = pygame.mouse.get_pos()
, dann bekomme ich folgende Fehlermeldung:
>C:\Python25\python.exe -u "lerp.py"
File "lerp.py", line 34
x = pygame.mouse.get_pos()
^
SyntaxError: invalid syntax
>Exit code: 1
Kann mir jemand einen Tip geben? Ich verstehe das gerade gar nicht. Das sollte doch eigentlich funktionieren, oder?

Danke für die Anregung.

Verfasst: Mittwoch 7. November 2007, 09:40
von BlackJack
Das hat nichts mit der Funktion zu tun sondern ist ein Syntax-Fehler. Da die Zeile in Ordnung zu sein scheint ist der Fehler irgendwo davor oder die Zeile ist falsch eingerückt.

Verfasst: Mittwoch 7. November 2007, 10:05
von C4S3
Stimmt, du hattest recht. Ich sah den Wald vor lauter Bäumen nicht. :oops:

Die Funktion wurde absolut richtig aufgerufen, ich hatte in der Zeile davor eine schließende Klammer zu wenig. Das ist IMO bei Pygame manchmal ein Problem, dass man viele, viele Klammern hat.

Der Code stammt übrigens aus dem PyGame-Buch. Ich poste hier noch mal den gesamten Code...

Code: Alles auswählen

#!/usr/bin/env python

import pygame
from pygame.locals import *

screen = pygame.display.set_mode((640,480), 0, 32)

color1 = (221,99,20)
color2 = (96, 130, 51)

factor = 0.

def blend_color(color1, color2, blend_factor):
    red1, green1, blue1 = color1
    red2, green2, blue2 = color2
    
    red = red1+(red2-red1)*blend_factor
    green = green1+(green2-green1)*factor
    blue = blue1+(blue2-blue1)*factor
    
    return int(red), int(green), int(blue)
    
while True:
    
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
            
    screen.fill((255,255,255))
    
    tri = [(0,120), (639,100), (639, 140)]
    pygame.draw.polygon(screen, (0, 255,0), tri)
    pygame.draw.circle(screen, (0,0,0), (int(factor*639.), 120),10)
    
    x,y = pygame.mouse.get_pos()
    if pygame.mouse.get_pressed()[0]:
        factor = x/639.
        pygame.display.set_caption("PyGame Color Blend Test - %3f"%factor)
        
    color = blend_color(color1, color2, factor)
    print color
    pygame.draw.rect(screen, color, (0, 240, 640, 240))
    
    pygame.display.update()