正如我所理解的pygame绘制方法一样,blit函数()的第二个参数告诉pygame在哪里绘制给定的表面(例如开始绘制的偏移量,或者更确切地说是表面在屏幕上的位置)。虽然,从最近的实验来看,似乎pygame表面的位置是固定的,并且用于在pygame将其推到屏幕上之前裁剪表面,以提高效率。screen.blit(surface, (0,0))(0,0)表面放置是否真的固定(我的后一个观察是否正确)?如果是这样,是否有另一种方法可以方便地将已绘制的表面移动到屏幕上的另一个位置?还是我应该实现自己的移动复杂“可绘制”对象的方式?谢谢!
1 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
一个玩偶。表面物体没有位置,它只有大小。请注意,由 pygame 返回的对象的位置。Surface.get_rect() 始终为 (0, 0)。
当你在另一个上放置一个时,每个像素都会被复制并放置在目标的相应位置。因此,当 a 位于目标 上时,始终必须指定一个位置。RectSurfaceSurfaceSurfaceSurfaceblitSurface
另请参阅为什么我的碰撞测试总是返回“true”,为什么图像矩形的位置总是错误(0,0)?
[...]如果是这样,是否有另一种方法可以方便地将已绘制的表面移动到另一个位置[...]
你有一个基本的误解。A 不能被“移动”。在与游戏窗口关联的对象上复制 A。
似乎正在移动,因为整个场景在每一帧中绘制。首先绘制背景,然后在背景顶部绘制对象(精灵,表面),最后更新显示(在每一帧中)。如果一个对象在每一帧中的位置略有不同,则该对象看起来移动得很平稳。SurfaceSurfaceSurfaceSurface
添加回答
举报
0/150
提交
取消
