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

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

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.
Gruß!
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.
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

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()
Gruß!
Antworten