libgdx里的坐标系有点乱,让我头疼了一天。
最后总结了一下实际上就是有一点问题。
就是:
SpriteBatch在画图形的时候,(0,0)点在左下角。
其他的(Pixmap,Texture,touch event)的(0,0)点都在左上角。
(0,0)点不就是原点吗,的确是,不过libgdx里边还有一个Origin(原点),它是用于图像旋转,缩放等变换的,与我们这里的不一样。
这里用一个例子演示一下:
pixmap = new Pixmap(16, 16, Pixmap.Format.RGB888);//新创建一个Pixmap
pixmap.setColor(Color.RED);
pixmap.fill(); //设置背景色为红色
pixmap.setColor(Color.BLUE);
pixmap.fillRectangle(0, 0, 8, 8); //靠近原点画了一个蓝色的小正方形
texture = new Texture(pixmap);
texture = new Texture(32, 32, Pixmap.Format.RGB888); //创建了一个texture,格式设为不透明的便于观察
texture.draw(pixmap, 0, 0); //把上边的Pixmap画到它的原点附近
这是运行显示的效果,texture的格式如果选RGBA8888会透明的,现在是黑色
这里没提到触摸事件坐标,原点也在右上角
后记:
我也是刚学,如有误导求指出,欢迎拍砖,意见和鼓励