pygame矩形参数无效

2024-04-26 20:51:39 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在Python3im中使用pygame,到目前为止,我得到了这个error

这是他的代码,我会加上一个问题所在

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

我不知道为什么会这样,我甚至把括号改成了[]{}和{},我仍然得到同样的错误


Tags: keytextimporteventifdefdisplaychange
1条回答
网友
1楼 · 发布于 2024-04-26 20:51:39

您使用的是list类型,应该传递一个tuple。 这是正确的方法:

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

相反,你有一个var问题:

^{pr2}$

你有:

thing_startx = random.randrange,(0, display_width)

问题是,。在

相关问题 更多 >