Pygame(有点争吵)对象在那里,但不可见

时间:2016-09-15 13:07:25

标签: python pygame

我有几个对象定义/输​​入变量

car1 = pygame.image.load('C:\Users\itzrb_000\Downloads\download (3).png')
car2 = pygame.image.load('C:\Users\itzrb_000\Downloads\download (2).png')
car3 = pygame.image.load('C:\Users\itzrb_000\Downloads\images.png')
rock = pygame.image.load('C:\Users\itzrb_000\Downloads\Rock.png')

然后创建了一个名为cars的函数,它将x和y起始位置作为参数

def cars(thingx, thingy):
    objects = [car1, car2, car3, rock]
    num_of_objects = random.randint(1,4)
    for x in range(num_of_objects):
        y = random.choice(objects)
        gameDisplay.blit(y,(random.randrange(130, 625),-300))

game_loop函数

thing_startx = random.randrange(130,625)
thing_starty = -600
thing_speed = 10

然后我调用所有对象

background()
things(thing_startx, thing_starty, thing_width, thing_height, black)
car(x,y)
cars(thing_startx, thing_starty)
thing_starty += thing_speed
score(dodged)

car是玩家玩的车,things是一个绘制黑色方块的功能,以后是我不应该撞到的东西

def things(thingx, thingy, thingw, thingh, color):
    pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh])

我正在尝试显示汽车图像而不仅仅是黑色块,我在things中注释了game_loop函数及其调用。当我测试时没有任何可见的东西,但是我注意到我的车在某个时刻崩溃了,所以结论是汽车图像在那里,但它不可见。

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您在屏幕上关闭对象。 gameDisplay.blit(y,(random.randrange(130, 625),-300))将在x到130到625之间以及在-300(这意味着屏幕左边300)处将图像blit。

但功能正在做你想做的事情吗?每个循环都会在随机位置随机渲染随机数。我强烈建议找一个更好的教程,教授基础知识,如代码结构,良好的命名,如何使用文档字符串和面向对象的编程,如this