gpt4 book ai didi

python - 你如何让你的 Sprite 不在屏幕上复制自己?一旦文本出现,你如何让你的 Sprite 消失或重新开始?

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:46 25 4
gpt4 key购买 nike

因此,我再次陷入困境,但在经过大量研究后没有任何效果时,我将其用作最后的手段。请不要为此烤我,我是新手。所以,基本上我试图让我的 sprite 移动 (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()

最佳答案

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

在绘制其他任何内容之前,在主循环中绘制(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)

关于python - 你如何让你的 Sprite 不在屏幕上复制自己?一旦文本出现,你如何让你的 Sprite 消失或重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55598896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com