上回说到用pygame绘制一个静止的小方块,今天将会实现通过鼠标或者键盘来控制小方块的移动
在这之前,首先我们需要考虑一个问题:
我们怎样才会认为一个物体在运动?风动,幡动还是仁者心动?
小方块在屏幕上的相对位置发生了变化,那就代表它移动了
与连续的现实世界不同的是,计算机内部的世界是离散化的,我们其实并没有真的去移动初始的小方块
而是在屏幕上不断的擦去旧的小方块,画出新位置上的小方块,玩家看起来就像它在移动一样
因此移动的实现逻辑就得到了:
在每一帧中擦去上一帧画的小方块
获取小方块当前的位置,并在这个位置画一个新的小方块
只要帧数足够多(超过视觉暂留的需求),就实现了小方块的“连续移动”
下面我们定义一个小方块的类
class Robot(object):
def __init__(self:
self.x = 120
self.y = 350
def Move(self):
self.x+=1
self.y+=1
pygame.draw.rect(screen,color1,Rect(self.x,self.y,20,20))
小方块的初始为止在(120,350),每调用一次Move,坐标就会修改,如果绘制出新的矩形,就实现了移动
我们用这个类创建一个对象
robot = Robot()
然后开始绘制屏幕
while True:
clock.tick(60)
for event in py