Python 对象被命中,但分数未更新
我写了一个简单的游戏(将只显示问题部分),除了Python 对象被命中,但分数未更新,python,pygame,Python,Pygame,我写了一个简单的游戏(将只显示问题部分),除了健康分数外,一切都很好。我放了一个print语句来检查一个对象是否被另一个对象击中。因此,if语句是True,因为我看到了print语句,但是我的健康状况分数没有更新。我是不是遗漏了什么?谢谢你的帮助 sqrls = pygame.image.load("crazySquirrel1.gif") sqrlsrect = sqrls.get_rect() sqrls_startx = 200 sqrls_starty = 530 sqrlsrect.c
健康
分数外,一切都很好。我放了一个print语句来检查一个对象是否被另一个对象击中。因此,if语句
是True
,因为我看到了print语句,但是我的健康状况
分数没有更新。我是不是遗漏了什么?谢谢你的帮助
sqrls = pygame.image.load("crazySquirrel1.gif")
sqrlsrect = sqrls.get_rect()
sqrls_startx = 200
sqrls_starty = 530
sqrlsrect.center = (sqrls_startx, sqrls_starty)
girl = pygame.image.load('girl1.gif')
girlrect = girl.get_rect()
x = 850
y = 278
girlrect.center = (x, y)
screen.blit(girl,(x, y))
## adding health score
health = 3
font = pygame.font.SysFont("Comic Sans MS", 20)
text = font.render("Health: " + str(health),1, RED)
## main game loop **********************************
x_change = 0
endGame = False
while not endGame:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
x_change = -2
elif event.key == pygame.K_RIGHT:
x_change = 2
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
x += x_change
sqrlsrect = sqrlsrect.move(sqrls_speed) # moving squirrel 1
if sqrlsrect.left < 0 or sqrlsrect.right > w:
sqrls_speed[0] = -sqrls_speed[0]
if sqrlsrect.top < 0 or sqrlsrect.bottom > h:
sqrls_speed[1] = -sqrls_speed[1]
if sqrlsrect.center == girlrect.center:
print ('Ouch s!')
health -= 1
screen.blit(bg, (0, 0))
screen.blit(sqrls, sqrlsrect)
screen.blit(girl, (x, y))
screen.blit(text, (w*0.88, h*0.03))
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
sqrls=pygame.image.load(“crazySquirrel1.gif”)
sqrlsrect=sqrls.get_rect()
sqrls_startx=200
sqrls_starty=530
sqrlsrect.center=(sqrls\u startx,sqrls\u starty)
girl=pygame.image.load('girl1.gif')
girlrect=girl.get_rect()
x=850
y=278
girlrect.center=(x,y)
银幕布利特(女孩,(x,y))
##添加健康评分
健康=3
font=pygame.font.SysFont(“Comic Sans MS”,20)
text=font.render(“健康状况:+str(健康状况),1,红色)
##主游戏循环**********************************
x_变化=0
终局=错误
虽然没有结束游戏:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_左:
x_变化=-2
elif event.key==pygame.K_RIGHT:
x_变化=2
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_左或event.key==pygame.K_右:
x_变化=0
x+=x_变化
sqrlsrect=sqrlsrect.move(sqrls#u速度)#移动松鼠1
如果sqrlsrect.left<0或sqrlsrect.right>w:
sqrls_速度[0]=-sqrls_速度[0]
如果sqrlsrect.top<0或sqrlsrect.bottom>h:
sqrls_速度[1]=-sqrls_速度[1]
如果sqrlsrect.center==girlrect.center:
打印(‘哎哟!’)
健康-=1
屏幕光点(背景,(0,0))
screen.blit(sqrls,sqrlsrect)
银幕布利特(女孩,(x,y))
屏幕.blit(文本,(w*0.88,h*0.03))
pygame.display.update()
时钟滴答(60)
pygame.quit()
退出
尽管您正在修改运行状况
,但您并没有修改正在显示的实际文本。相反,请尝试使用以下方法:
if sqrlsrect.center == girlrect.center:
print ('Ouch s!')
health -= 1
text = font.render("Health: " + str(health),1, RED)
尽管您正在修改
运行状况
,但并没有修改正在显示的实际文本。相反,请尝试使用以下方法:
if sqrlsrect.center == girlrect.center:
print ('Ouch s!')
health -= 1
text = font.render("Health: " + str(health),1, RED)
非常感谢你!成功了!你真棒!非常感谢你!成功了!你真棒!