2013-11-23 121 views
0
import pygame, random, time 
from time import sleep 
from pygame import* 
pygame.init() 
myname=input('What is your name') 
#set the window size 
window= pygame.display.set_mode((800,600) ,0,24) 
pygame.display.set_caption("Fruit Catch") 
gameover=pygame.image.load('fifa.jpg') 
#game variables 
myscore=0 
mylives=3 
mouth_x=300 
fruit_x=250 
fruit_y=75 
fruitlist=['broccoli.gif','chicken.gif'] 
#prepare for screen 
myfont=pygame.font.SysFont("Britannic Bold", 55) 
label1=myfont.render(myname, 1, (240, 0, 0)) 
label3=myfont.render(str(mylives), 1, (20, 255, 0)) 
#grapchics 
fruit=pygame.image.load('data/chicken.png') 
mouth=pygame.image.load('data/v.gif') 
backGr=pygame.image.load('data/kfc.jpg') 
#endless loop 
running=True 
while running: 
    if fruit_y>=460:#check if at bottom, if so prepare new fruit 
     fruit_x=random.randrange(50,530,1) 
     fruit_y=75 
     fruit=pygame.image.load('data/'+fruitlist[random.randrange(0,2,1)]) 
     caught= fruit_x>=mouth_x and fruit_x<=mouth_x+300 
    else:fruit_y+=5 


    #check collision 
    if fruit_y>=456: 
     mylives-=1 
    if fruit_y>=440: 
      if fruit_x>=mouth_x and fruit_x<=mouth_x+300 : 
        myscore+=1 
        fruit_y=600#move it off screen 
        pygame.mixer.music.load('data/eating.wav') 
    if mylives==0: 
     window.blit(backg,(0,0)) 
     pygame.time.delay(10) 
     window.blit(gameover,(0,0)) 
     pygame.display.update()   
    #detect key events 
    for event in pygame.event.get(): 
      if (event.type==pygame.KEYDOWN): 
       if (event.key==pygame.K_LEFT): 
         mouth_x-=55 
       if (event.key==pygame.K_RIGHT): 
         mouth_x+=55 

    label3=myfont.render(str(mylives), 1, (20, 255, 0)) 
    label2=myfont.render(str(myscore), 1, (20, 255, 0)) 

    window.blit(backGr,(0,0)) 
    window.blit(mouth, (mouth_x,440)) 
    window.blit(fruit,(fruit_x, fruit_y)) 
    window.blit(label1, (174, 537)) 
    window.blit(label2, (700, 157)) 
    window.blit(label3, (700, 400)) 
    pygame.display.update() 

当我的生命值达到0时,屏幕上的游戏出现,但它在正常背景之间闪烁。 我怎样才能让它留在屏幕上? 我认为它的东西与更新,但如果我采取了要么它不工作如何让我的游戏在屏幕上停留在屏幕上

回答

0

如果行是0,那么你运行一些位块传输和更新两次

第一内侧if mylives==0:(和它呆一段时间因为你使用延迟(10))

第二次在循环结束。

用途:

if mylives==0: 
    #blit and update game over 
else: 
    #blit and update normal game 
相关问题