2015-10-03 24 views
1

所以在使用pygamePython3 IM和它已經精細到這一點我得到這個errorpygame的矩形參數無效

下面是他的代碼生病添加#問題出在哪裏

import pygame 
import time 
import random 
pygame.init() 

display_width = 800 
display_height = 600 

black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 
green = (0,255,0) 

car_width = 73 

gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption('drivin meh truck-by me') 
clock = pygame.time.Clock() 

carImg = pygame.image.load('truck.png') 

def things(thingx, thingy, thingw, thingh, color): 
    pygame.draw.rect(gameDisplay, color,[thingx, thingy, thingw, thingh]) #this is were i get the error 

def car(x,y): 
    gameDisplay.blit(carImg,(x,y)) 

def text_objects(text, font): 
    textSurface = font.render(text, True, green) 
    return textSurface, textSurface.get_rect() 

def message_display(text): 
    LargeText = pygame.font.Font('freesansbold.ttf',80) 
    TextSurf, TextRect = text_objects(text,LargeText) 
    TextRect.center = ((display_width/2),(display_height/2)) 
    gameDisplay.blit(TextSurf, TextRect) 

    pygame.display.update() 

    time.sleep(2) 

    game_loop() 

def crash(): 
    message_display('you done goofed') 

def game_loop(): 

    x = (display_width * 0.45) 
    y = (display_height * 0.8) 

    x_change = 0 

    thing_startx = random.randrange,(0, display_width) 
    thing_starty = -600 
    thing_speed = 7 
    thing_width = 100 
    thing_height = 100 

    gameExit = False 

    while not gameExit: 

     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       pygame.quit() 
       quit() 

      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_LEFT: 
        x_change = -5 
       elif event.key == pygame.K_RIGHT: 
        x_change = 5 

      if event.type == pygame.KEYUP: 
       if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: 
       x_change = 0 

    x += x_change 

    gameDisplay.fill(white) 


    things(thing_startx, thing_starty, thing_width, thing_height, red) 
    thing_starty += thing_speed 
    car(x,y) 

    if x > display_width - car_width or x < 0: 
     crash() 


    pygame.display.update() 
    clock.tick(60) 

game_loop() 

pygame.quit() 
quit() 

我不知道爲什麼會這樣我甚至改變了括號[]{}()我仍然得到同樣的錯誤

回答

0

您正在使用list類型,您應該通過tuple。 這是正確的做法:

pygame.draw.rect(gameDisplay, color,(thingx, thingy, thingw, thingh)) 

和你有一個變種的問題,而是:

thing_startx = random.randrange(0, display_width) 

您有:

thing_startx = random.randrange,(0, display_width) 

的問題是,

+0

修復它謝謝你,我的noob錯誤 – GeeZillion