我有几个对象定义/输入变量
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
函数及其调用。当我测试时没有任何可见的东西,但是我注意到我的车在某个时刻崩溃了,所以结论是汽车图像在那里,但它不可见。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
您在屏幕上关闭对象。 gameDisplay.blit(y,(random.randrange(130, 625),-300))
将在x到130到625之间以及在-300(这意味着屏幕左边300)处将图像blit。
但功能正在做你想做的事情吗?每个循环都会在随机位置随机渲染随机数。我强烈建议找一个更好的教程,教授基础知识,如代码结构,良好的命名,如何使用文档字符串和面向对象的编程,如this。