如何解决Pygame“继续前进” IF声明
我是编码和pygame的新手,我正在尝试创建一个简单的游戏。我为此感到挣扎:
if player.collidrect(enemy): #If player collides with enemy
if screen.blit(image1,(110,0)): #check if this image is on the screen
screen.blit(image2,0)) #If it is,put this image on top
(ps不必担心定义东西,我的问题与之无关)
我想发生的是,当玩家与敌人碰撞时,检查“ image1”是否在屏幕上,如果是,则在屏幕上放置“ image2”。问题是,它显示“ image2”,但仅在玩家与敌人碰撞时才显示。玩家停止碰撞后,图像消失。但是要它留在那里。如果您理解了,即使玩家停止与敌人碰撞,也可以帮我找到使“ image2”停留在其中的命令吗?谢谢
解决方法
screen.blit(image1,(110,0))
不返回图像是否在屏幕上,它返回图像在屏幕上的矩形,例如,如果image1
是100x100,它将返回( 110、0、100、100)。您将需要找到另一种方法来查看图像是否在屏幕上,也许将其放到屏幕上时将其设置为True即可。
show_image1 = True
show_image2 = False
if show_image1:
screen.blit(image1,0))
if show_image2:
screen.blit(image2,0))
if player.collidrect(enemy): #If player collides with enemy
if show_image1: #check if this image is on the screen
show_image2 = True #If it is,put this image on top
,
首先screen.blit
不在屏幕上时返回。第二,这就是您想要的。
尝试一下:
if player.collidrect(enemy): #If player collides with enemy
if <ON_SCREEN>
show_image = True
现在,当您渲染所有内容时,请执行以下操作:
if show_image:
screen.blit(image2,0))
重要提示:请确保在游戏开始时将show_image
设置为False
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。