python - 精灵奇怪地运动
问题描述
我是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))
解决方案
问题出在 draw 函数中,在 walkup 和 walkdawn 中,需要将 +=1 转换为 -=1 并且 (self.y, self.x) 需要更改顺序,所以现在它可以正常工作了. 但是,如果有人知道这个问题的其他答案,我接受,谢谢:)。
推荐阅读
- javascript - 错误:'list' 未定义 no-undef 'route' 未定义 no-undef
- python - Tensorflow:下载并运行预训练的 VGG 或 ResNet 模型
- swift - 以编程方式显示 TabBar 元素的子 ViewController(并传递数据)
- excel - 执行直到循环以获取大于某个数字的单元格的值
- javascript - 捕获 html 画布进行处理
- c# - 对于这种观点,这是一个有效的模型吗?
- docker - 如何使用 dns 从主机访问 docker 网络?
- javascript - 从 Javascript 调用 Wicket - ajax 请求未完成
- angularjs - AngularJS ng-if 具有真或假对象值
- java - 如何处理 CompletableFutures 链中的错误响应?