首页 > 解决方案 > 精灵奇怪地运动

问题描述

我是python的新手,但我已经在学习了pygame,我有这个问题,当玩家上下时精灵不跟随它,它出现在右侧墙的中间并移动到中心,使用我想要的正确动画,如果你停止按下按钮,玩家会出现在他向右移动时应该出现的位置。似乎这是绘图功能的问题,但我已经编辑了可能的内容,但没有任何改变,希望有人可以帮助我。

这是代码:

class player(object):
    def __init__(self,x,y,width,height):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.vel = 10
        self.isJump = False
        self.left = False
        self.up = False
        self.dawn = False
        self.right = False
        self.walkCount = 0

    def draw(self, win):
        if self.walkCount + 1 >= 27:
            self.walkCount = 0

        if self.left:
            win.blit(walkLeft[self.walkCount//3], (self.x,self.y))
            self.walkCount += 1
        elif self.right:
            win.blit(walkRight[self.walkCount//3], (self.x,self.y))
            self.walkCount += 1
        elif self.dawn:
            win.blit(walkDawn[self.walkCount//3],(self.y,self.x))
            self.walkCount += 1
        elif self.up:
            win.blit(walkUp[self.walkCount//3], (self.y,self.x))
            self.walkCount += 1
        else:
            win.blit(char, (self.x,self.y))

标签: pythonpygamesprite

解决方案


问题出在 draw 函数中,在 walkup 和 walkdawn 中,需要将 +=1 转换为 -=1 并且 (self.y, self.x) 需要更改顺序,所以现在它可以正常工作了. 但是,如果有人知道这个问题的其他答案,我接受,谢谢:)。


推荐阅读