gpt4 book ai didi

python - 在pygame中移动角色而不重复复制图像

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

像大多数角色一样,我的角色应该被重复替换几个像素的相同图像以模拟运动。相反,我的代码会导致在移动图像时复制图像,现在它更像是绘图应用程序而不是移动角色。有人可以告诉我为什么会发生这种情况以及可以采取什么措施来替换以前的图像吗?提前致谢。

import pygame, sys
from pygame.locals import *

pygame.init()
DISPLAYSURF=pygame.display.set_mode((800,800))
pygame.display.set_caption('Hola Amigos!')

pixel_one=pygame.image.load('pixel_one.png')
pixel_one=pygame.transform.scale(pixel_one, (5,5))

def pixel(pixel_onex,pixel_oney):
DISPLAYSURF.blit(pixel_one, (pixel_onex, pixel_oney))

pixel_onex=10
pixel_oney=10

x_change=0
y_change=0

while True: #main game loop
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5
elif event.key == pygame.K_RIGHT:
x_change = 5
elif 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_LEFT or pygame.K_RIGHT or pygame.K_UP or pygame.K_DOWN:
x_change=0
y_change=0
if event.type==QUIT:
pygame.quit()
sys.exit()

pixel_onex += x_change
pixel_oney += y_change

pixel(pixel_onex,pixel_oney)

pygame.display.update()

最佳答案

在进入主循环之前,添加如下语句

background = pygame.Surface(DISPLAYSURF.get_size())

然后将背景传输到 DISPLAYSURF 上。在每次迭代中,在更新所有内容之后但在绘制其他任何内容之前,将背景传输到 DISPLAYSURF 上以创建干净的表面。

关于python - 在pygame中移动角色而不重复复制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182813/

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