Python 你如何使你的精灵不在屏幕上复制自己?一旦文本出现,如何使精灵消失或重新开始?

Python 你如何使你的精灵不在屏幕上复制自己?一旦文本出现,如何使精灵消失或重新开始?,python,python-3.x,pygame,Python,Python 3.x,Pygame,所以,我又被卡住了,但在经过广泛的研究后,当一切都不起作用时,我就把它作为最后的手段。请不要因为这个而骂我,我是新手。所以,我基本上是想让我的精灵移动(yoyo),但随着yoyo的上下移动,画面不断复制。所以,我不知道如何解决这个问题。如果yoyo碰到游戏窗口的边界,它会发生碰撞,应该会显示一条文本,然后游戏会重新开始。但是,当yoyo与窗口边框发生碰撞时,它会重新启动,但卡住的yoyo仍将显示,并显示一个新的yoyo。文本将显示,但2秒后不会消失 import pygame imp

所以,我又被卡住了,但在经过广泛的研究后,当一切都不起作用时,我就把它作为最后的手段。请不要因为这个而骂我,我是新手。所以,我基本上是想让我的精灵移动(yoyo),但随着yoyo的上下移动,画面不断复制。所以,我不知道如何解决这个问题。如果yoyo碰到游戏窗口的边界,它会发生碰撞,应该会显示一条文本,然后游戏会重新开始。但是,当yoyo与窗口边框发生碰撞时,它会重新启动,但卡住的yoyo仍将显示,并显示一个新的yoyo。文本将显示,但2秒后不会消失

   import pygame
   import time
   pygame.init()

   width = 900
   height = 900
   red = (255,0,0)
   text = "game over"

   screem = pygame.display.set_mode((width,height))

   pygame.display.set_caption("yoyo")
   clock = pygame.time.Clock()

   background = pygame.image.load("room.png").convert()
   win.blit(background, [0,0])

   yoyo= pygame.image.load("yoyo.png").convert()


  def Yoyo (x,y):
    win.blit(yoyo, [x,y])


def mainloop():
   x = 87
   y = 90


yc = 0 


  while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Exit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:


    Yoyo(x,y)
    y += yc

    if y > 23 or y < -90:

    pygame.display.update()
    clock.tick(60)

mainloop()
pygame.quit()
quit()
导入pygame
导入时间
pygame.init()
宽度=900
高度=900
红色=(255,0,0)
text=“游戏结束”
screem=pygame.display.set_模式((宽度、高度))
pygame.display.set_标题(“yoyo”)
clock=pygame.time.clock()
background=pygame.image.load(“room.png”).convert()
win.blit(背景[0,0])
yoyo=pygame.image.load(“yoyo.png”).convert()
def Yoyo(x,y):
win.blit(yoyo,[x,y])
def mainloop():
x=87
y=90
yc=0
尽管如此:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
退出=真
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_UP:
Yoyo(x,y)
y+=yc
如果y>23或y<-90:
pygame.display.update()
时钟滴答(60)
mainloop()
pygame.quit()
退出

在每一帧中重新绘制整个场景。这意味着您也必须在每一帧中绘制背景

在绘制任何其他内容之前,在主循环中绘制(
blit
)背景:

不退出时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
退出=真
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_UP:
y_变化=-5
elif event.key==pygame。K_DOWN:
y_变化=5
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_向上或event.key==pygame.K_向下:
y_变化=0
y+=y_变化
如果y>405或y<-200:
碰撞()
GameLoop()

win.blit(bg,[0,0])#将代码发布到问题(或答案)后,立即选择刚粘贴的内容,然后键入Ctrl+K或单击编辑器界面中的
{}
按钮。这将正确格式化代码,而不会在尝试手动格式化代码时引入缩进错误。