【发布时间】:2016-06-15 04:31:30
【问题描述】:
我有一个名为 Block 的类,我用它来绘制和移动块:
class Block:
def __init__(self, pos_x, pos_y, size_x, size_y):
self._posX = pos_x
self._posY = pos_y
self._sizeX = size_x
self._r = pygame.draw.rect(gameDisplay, (200,100,100), (pos_x,pos_y,size_x,size_y), 0)
def bMove(self, new_x, new_y):
self._r.left = new_x
self._r.top = new_y
现在,绘图部分效果很好。问题是我无法使用带有 ie 的 bMove 类移动矩形。 'Box1.bMove(100, 100)'。 代码编译没有任何错误,但在游戏中矩形没有发生变化。 即使使用 'move(x,y)' 或将类修改为如下所示:
class Block:
def __init__(self, pos_x, pos_y, size_x, size_y):
self._posX = pos_x
self._posY = pos_y
self._sizeX = size_x
pygame.draw.rect(gameDisplay, (200,100,100), (pos_x,pos_y,size_x,size_y), 0)
def bMove(self, new_x, new_y):
self.left = new_x
self.top = new_y
没有做任何好事。 有谁知道如何解决这个问题? 任何帮助将不胜感激
【问题讨论】:
-
您没有在
bMove方法中绘制矩形。__init__仅在您创建类的实例时调用一次。 -
那么正确的方法是在init之外绘制它?
-
如果你在 init 里面绘制它,你不能移动它,所以是的。
-
你能告诉我一个适当的代码修改作为答案吗?