2015-10-03 4 views
1

Так в Python3 им с помощью pygame, и это было прекрасно до этого момента я получить эту errorPygame Rect аргумент неверен

Вот он код плохо добавить #, где проблема

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)) 

И у вас есть проблемы Var, вместо:

thing_startx = random.randrange(0, display_width) 

У вас есть:

thing_startx = random.randrange,(0, display_width) 

Проблема является ,.

+0

, который исправил его, спасибо, мои ошибки noob – GeeZillion

Смежные вопросы