Python 如何使图像在Pygame中移动?
我有以下代码:Python 如何使图像在Pygame中移动?,python,pygame,Python,Pygame,我有以下代码: plaxer = 20 player = 300 vel = 5 res = (720,720) thistle = (216,191,216) plum = (221,160,221) screen = pygame.display.set_mode(res) color = (255,255,255) color_light = (255,0,0) color_dark = (200,0,0) red = (128, 0, 128) reder = (31,0,31
plaxer = 20
player = 300
vel = 5
res = (720,720)
thistle = (216,191,216)
plum = (221,160,221)
screen = pygame.display.set_mode(res)
color = (255,255,255)
color_light = (255,0,0)
color_dark = (200,0,0)
red = (128, 0, 128)
reder = (31,0,31)
width = screen.get_width()
height = screen.get_height()
smallfont = pygame.font.SysFont('Corbel',35)
text = smallfont.render('Exit ' , True , color)
small = pygame.font.SysFont('Corbel',22)
texta = small.render('Customise Avatar ' , True , color)
screen.fill((0,0,255))
img1 = pygame.image.load("C:\\Users\\Path\\To\\Brown.png")
screen.blit(img1,(plaxer, player))
runs = True
while runs:
mouse = pygame.mouse.get_pos()
for ev in pygame.event.get():
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
plaxer =+ 0
screen.fill((0,0,255))
screen.blit(img1, (plaxer, player))
问题是精灵不能正常移动——它的移动太机械化了。如何修复此问题?您必须绘制播放器并更新应用程序循环中的显示:
运行时:
mouse=pygame.mouse.get_pos()
对于pygame.event.get()中的ev:
如果ev.type==pygame.QUIT:
运行=错误
keys=pygame.key.get_pressed()
如果键[pygame.K_a]:
plaxer+=1
屏幕填充((0,0255))
屏幕blit(img1,(plaxer,player))
pygame.display.update()
典型的PyGame应用程序循环必须:
- 通过或处理事件
- 根据输入事件和时间(分别为帧)更新游戏状态和对象位置
- 清除整个显示或绘制背景
- 绘制整个场景(
所有对象)blit
- 通过或更新显示
用于pygame.event.get()中的ev
)。你应该把它移出循环。您还应该创建一个pygame.time.Clock
,并使用它来调节帧速率。我编辑了您的帖子以删除个人信息,使缩进保持一致,然后。然而,我不明白你所说的“太机械化”是什么意思。试着制作一个最大力和最大速度变量,并尝试将其应用到你的角色中,以便玩家可以有一点真实的动作。