Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对象被命中,但分数未更新_Python_Pygame - Fatal编程技术网

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)

非常感谢你!成功了!你真棒!非常感谢你!成功了!你真棒!