前几天我和朋友很无聊,决定用 python 做一个简单的游戏。物体从显示窗口的顶部落下,用户必须控制一个盒子在它们落地之前接住它们。我们决定我们将拥有比其他对象更有价值的不同对象。我的问题是,你如何让一个物体随机切换图像的实例。
我尝试自己使用一个介于 0-10 之间的随机整数变量来执行此操作。如果整数小于5,则将图片设置为蝙蝠。如果整数大于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))
在这种情况下,图片会在一瞬间随机变为蝙蝠,然后再变回幽灵
基本上我可以改变图像,但只是一秒钟。有什么想法吗?