2017-01-27 2 views
-1

Hey ich mache nur ein kleines Spiel in Python seine Python 2.7.13 ich benutze Ursache bin ich an seine Syntax gewöhnt (lol ich habe einen Syntaxfehler in gewisser Weise seine Art mit TypeError zu tun: Argument 1 muss pygame.Surface sein, nicht funktionieren), aber ich nehme ein Bild aus dem gleichen Verzeichnis und versuche, es auf dem Bildschirm anzuzeigen, nur um das Layout des Spiels zu bekommen, aber ich kann es nicht bekommen, den Fehler zu bekommen, den ich bekomme ist auf dieserPYTHON PYGAME Bild

display.blit(floor,(x,y)) 

DIE Fehlerzeile: File "1stgame.py", Zeile 38, in Boden (x, y) File "1stgame.py": Traceback (jüngste Aufforderung zuletzt) Zeile 25, im Stockwerk Anzeige .blit (Boden, (x, y)) Typeerror: Argument 1 pygame.Surface sein muss, funktionieren nicht

here's the code

import pygame 

#Start pygame 

pygame.init() 

#Window/Screen/Display 

display_x = 800 
display_y = 600 
display = pygame.display.set_mode((display_x,display_y)) 
pygame.display.set_caption('Platforms') 

clock = pygame.time.Clock() 

#Colors 

black = (0,0,0) 
green = (1,166,17) 

#Images 

floor = pygame.image.load('rock.jpg') 
def floor(x,y): 
    display.blit(floor,(x,y)) 
x = (display_x * 0.45) 
y = (display_y * 0.8) 

not_dead=True 
while not_dead: 
    for event in pygame.event.get(): 
     if (event.type==pygame.QUIT): 
      not_dead=False 

    display.fill(black) 
    pygame.draw.rect(display, green, [0,550,800,50]) 

    floor(x,y) 


    pygame.display.update() 
    clock.tick(60) 
print "Hello" 

pygame.quit() 
+0

Sie haben? Inwiefern? Entweder heißt es 'SyntaxError' oder nicht. Wenn Sie "es nicht zur Arbeit bringen können", was macht es, anstatt zu arbeiten? Bearbeiten Sie Ihre Frage in [mcve]. – TigerhawkT3

+0

Ich bin mir nicht sicher, es ist ein Syntaxfehler, aber ich bin positiv, es ist ich aktualisiert den Beitrag mit ein bisschen mehr Details und den Fehlercode. Es öffnet sich dann schließt sofort – jmonster555games

+0

Wenn ich alles mit Bildern (nicht Rechteck) auskommentieren den Code funktioniert perfekt – jmonster555games

Antwort

1

Sie müssen nur die Zurückverfolgungs lesen:

Hier ist der Fehler:

def floor(x,y): 
    display.blit(floor,(x,y)) 

Wenn Sie def floor tun, definieren Sie die Funktion floor. Der Wert von floor ist nun eine Funktion anstelle der Oberfläche, die Sie zuvor festgelegt haben. Also, in Ihrer Funktion versuchen Sie blit eine Funktion, und nicht eine Surface.

Sie müssen die Variablennamen entweder von

  • die Funktion
  • die Oberfläche eine Syntax ändern Fehler "in einer Art und Weise"
+0

Dank ich änderte floor = pygame ,,,,, zu floor_1 – jmonster555games

+0

Hey gibt es eine Möglichkeit, das Bild zu wiederholen – jmonster555games

+0

Ja, ändern Sie die X/Y-Position und Blit. Aber das ist nicht der Sinn von StackOverflow. Finde einen Tuto, um Pygame zu lernen, sonst wirst du viel Energie ausgeben, für nicht viel am Ende. – math2001