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

2024-06-02 05:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我又被困住了,但我用这个作为最后的手段,当没有什么工作后,广泛的研究。请不要因为这个烤我,我是个新手。所以,基本上我想让我的精灵移动(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()

Tags: image文本importevent游戏iftimedisplay
2条回答

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

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

while not Exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Exit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                y_change = -5
            elif event.key == pygame. K_DOWN:
                y_change = 5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                y_change = 0 

  y += y_change
  if y > 405 or y < -200:
      collision()
  GameLoop() 

  win.blit(bg, [0,0]) # <  - draw background
  Bee(x,y)            # <  - draw the bee on the background

  # [...] all further drawing has to be done here

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

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

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

while not Exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Exit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                y_change = -5
            elif event.key == pygame. K_DOWN:
                y_change = 5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                y_change = 0 

  y += y_change
  if y > 405 or y < -200:
      collision()
  GameLoop() 

  win.blit(bg, [0,0]) # <  - draw background
  Bee(x,y)            # <  - draw the bee on the background

  # [...] all further drawing has to be done here

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

相关问题 更多 >