2013-11-23 2 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, то запустить некоторые Blits и обновлять дважды

Первый в if mylives==0: (и остаться на какое-то время потому что вы используете задержку (10))

Второй раз в конце цикла.

Использование:

if mylives==0: 
    #blit and update game over 
else: 
    #blit and update normal game 
Смежные вопросы