Java 爪哇及;LibGDX:限制精灵的渲染范围
最近,我从使用整数的Java 爪哇及;LibGDX:限制精灵的渲染范围,java,libgdx,sprite,render,Java,Libgdx,Sprite,Render,最近,我从使用整数的数组作为Java屏幕切换到使用库。我使用的库是LibGDX,对我来说,转换是完全不同的。大多数事情我已经开始掌握,我自己还在写一些代码 在这一点上,我很好奇是否可以限制Sprites的渲染范围和任何其他绘图因素,例如,如果一个Sprite卡在盒子的一半,它不会渲染突出的部分(如此:) 有没有一种方法可以在特定范围内进行渲染,如果部分超出范围,则不会渲染超出范围的内容,或者我必须自己进行渲染?您可以使用 由于OpenGL是有状态的,并且许多LibGDX绘图API都缓存在缓存
数组
作为Java屏幕切换到使用库。我使用的库是LibGDX
,对我来说,转换是完全不同的。大多数事情我已经开始掌握,我自己还在写一些代码
在这一点上,我很好奇是否可以限制Sprite
s的渲染范围和任何其他绘图因素,例如,如果一个Sprite卡在盒子的一半,它不会渲染突出的部分(如此:)
有没有一种方法可以在特定范围内进行渲染,如果部分超出范围,则不会渲染超出范围的内容,或者我必须自己进行渲染?您可以使用
由于OpenGL是有状态的,并且许多LibGDX绘图API都缓存在缓存中,因此请确保在剪切范围内“刷新”或“结束”批处理。请参见和如果我没有误解您的意思,您正在寻找
摄像头
使用
摄影机
可以定义视口
(大小),并且只能看到该视口内的东西
你也可以把它向四周移动,看看世界的其他地方 例如:
OrthographicCamera cam = new OrthographicCamera(80, 45);
这定义了一个摄像机
,它在x轴上显示80个单位,在y轴上显示45个单位。默认情况下,P(0/0)在屏幕的中间,所以这个<代码>相机< /代码>显示对象从-x到+x在x和-22.5到+22.5。
您可以移动它,使P(0/0)位于左下角:
camera.position.x = -40;
camera.position.y = -22.5;
camera.update();
这将使相机向左移动40个单位,向下移动22.5个单位,使p(0/0)成为左下角。不要忘记调用update()
,因为这会重新计算投影和视图矩阵
最后,要使用该摄像机
进行绘制,需要将SptieBatch
sprojectionMatrix
设置为摄像机
之一:
spriteBatch.setProjectionMatrix(camera.combined);
现在您可以使用此SpriteBatch
进行绘制。你还应该考虑SE代码> VistabistMulk剔除< /C> >,也就是说,你不把东西从<代码>相机中提取出来,因为它们永远不会出现在屏幕上,但是绘制调用需要一些性能。