在pygame中使用负坐标的最佳方法是什么?
此刻我的表面是原始表面的1.5倍,然后需要绘制的所有内容向上移动一定量(以确保负坐标变为正)并绘制。
有没有更容易/替代的方法呢?
答案 0 :(得分:1)
一个简单的解决方案是从世界坐标到pygame屏幕坐标
编写线性映射函数def coord(x,y):
"Convert world coordinates to pixel coordinates."
return 320+170*x, 400-170*y
并在绘制所有世界对象时使用它。请查看here以获取完整示例。
答案 1 :(得分:0)
无法从0,0移动曲面的原点。
实现自己的绘图类,它将传入的所有坐标转换为曲面空间。
答案 2 :(得分:0)
如果它类似于RPG地图情况,那么你有世界坐标和屏幕坐标: 使用将世界转换为本地的函数,反之亦然。
但我不确定你是否在寻找Rect的属性?
rect.bottomright = (width, height) # bottom right at window corner
如果你想使用中心坐标来进行blit,那么左上角是(0,0)
ship.rect.center = (20, 30) # don't need to translate by adding w/2 to topleft
另请参阅:Rect.move_ip()