我想用Pygame和Tiled来制作一个游戏。问题是,当我尝试移动我的角色时,它从一个平铺快速移动到另一个(16x16平铺网格),即使我降低fps,它看起来就像是从一个平铺传送到另一个平铺(我的移动增加了16个像素,因此它与地图匹配)。我想实现的是,当你在口袋妖怪中移动时,你可以看到平滑的动画,因为它从一个瓷砖移动到另一个瓷砖(我用Pyganim来制作行走动画)。在
while running:
ColDetectposX = gameMap.get_tile_properties(((posX/16)+1),((posY/16)),1)
ColDetectnegX = gameMap.get_tile_properties(((posX/16)-1),((posY/16)),1)
ColDetectposY = gameMap.get_tile_properties(((posX/16)),((posY/16)+1),1)
ColDetectnegY = gameMap.get_tile_properties(((posX/16)),((posY/16)-1),1)
if facedown:
screen.blit(chardown,(posX,posY))
elif faceup:
screen.blit(charup,(posX,posY))
elif faceleft:
screen.blit(charleft,(posX,posY))
elif faceright:
screen.blit(charright,(posX,posY))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
walking = True
if event.key == pygame.K_RIGHT:
try:
if ColDetectposX['Collision'] == 'true':
walkright.blit(screen, (posX,posY))
facedown=False
faceup=False
faceleft=False
faceright=True
pass
else:
walkright.blit(screen, (posX,posY))
facedown=False
faceup=False
faceleft=False
faceright=True
posX+=16
except TypeError:
facedown=False
faceup=False
faceleft=False
faceright=True
posX+=16
elif event.key == pygame.K_LEFT:
try:
if ColDetectnegX['Collision'] == 'true':
walkleft.blit(screen, (posX,posY))
facedown=False
faceup=False
faceleft=True
faceright=False
pass
else:
facedown=False
faceup=False
faceleft=True
faceright=False
walkleft.blit(screen, (posX,posY))
posX-=16
except TypeError:
facedown=False
faceup=False
faceleft=True
faceright=False
walkleft.blit(screen, (posX,posY))
posX-=16
elif event.key == pygame.K_UP:
try:
if ColDetectnegY['Collision'] == 'true':
walkup.blit(screen, (posX,posY))
facedown=False
faceup=True
faceleft=False
faceright=False
pass
else:
facedown=False
faceup=True
faceleft=False
faceright=False
walkup.blit(screen, (posX,posY))
posY-=16
except TypeError:
facedown=False
faceup=True
faceleft=False
faceright=False
walkup.blit(screen, (posX,posY))
posY-=16
elif event.key == pygame.K_DOWN:
try:
if ColDetectposY['Collision'] == 'true':
walkdown.blit(screen, (posX,posY))
facedown=True
faceup=False
faceleft=False
faceright=False
pass
else:
facedown=True
faceup=False
faceleft=False
faceright=False
walkdown.blit(screen, (posX,posY))
posY+=16
except TypeError:
facedown=True
faceup=False
faceleft=False
faceright=False
walkdown.blit(screen, (posX,posY))
posY+=16
pygame.display.update()
fps.tick(11)
我希望我能清楚地说明我想做什么,如果没有,我会尽力回答他们。我不懂面向对象编程,而且由于我的日程安排,我没有时间学习,所以我希望你能帮助我而不使用类。如果相关的话,我也使用python3.4.4。在
目前没有回答
相关问题 更多 >
编程相关推荐