我的朋友和我前几天都很无聊,决定用python做一个简单的游戏。物体从显示窗口的顶部落下,用户必须控制一个盒子才能在它们撞到地面之前捕获它们。我们决定让不同的对象比其他对象更有价值。我的问题是,你如何让一个物体的实例随机切换图像。
我尝试使用0-10之间的随机整数变量自己做。如果整数小于5,则将图片设置为bat。如果整数大于5,则将图片设置为重影。
我尝试编码如下:
#Detect if user has missed a bomb#
bomb_img = 0
bomb_y += vel_y
if bomb_y > 500:
bomb_x = random.randint(0, 500)
bomb_y = -50
bomb_img = random.randint(0,10)
lives -= 1
if lives == 0:
game_lost = True
#Detect if user has saved a bomb#
elif bomb_y > pos_y:
if bomb_x > pos_x and bomb_x < pos_x + 120:
score += 10
bomb_x= random.randint(0,500)
bomb_y = -50
bomb_img = random.randint(0,10)
#Change bomb img#
ghost = pygame.image.load("ghost2.png").convert_alpha()
bat = pygame.image.load("bat2.png").convert_alpha()
bat_resize = pygame.transform.scale(bat, (133,95))
if bomb_img <= 5:
_display_window.blit(bat_resize, (bomb_x, bomb_y))
else:
_display_window.blit(ghost, (bomb_x, bomb_y))
但是,这在运行时无法正常工作。这张照片确实变成了一个幽灵,但只有一瞬间变回蝙蝠,然后继续下降。
我还尝试切换以下代码行:
if bomb_img <= 5:
_display_window.blit(ghost, (bomb_x, bomb_y))
else:
_display_window.blit(bat_resize, (bomb_x, bomb_y))
在这种情况下,图片将在一瞬间随机变为蝙蝠,然后再变回幽灵
基本上我可以让图像改变,但只能快速一秒。有什么想法吗?
答案 0 :(得分:0)
看起来问题是您在循环开始时重置了bomb_img,即代码的第一行:
bomb_img = 0
...
你应该把那条线拉出你的圈子。