我正在使用LibGDX为Android开发游戏.我添加了捏缩放和平移.我的问题是如何避免走出游戏区域.实际上,你可以在游戏区域外平移到黑暗中.当我完全缩小时,我知道如何处理它,我只是说:
if(camera.zoom == 1.0f) ;
else {
}
Run Code Online (Sandbox Code Playgroud)
但是,如果放大,我该如何做到这一点.我知道这并不复杂,我似乎无法弄明白.创建后,我将相机设置在屏幕中间.我知道如何平移,我正在使用camera.translate(-input.deltaX,-input.deltaY,0),我只需要在此调用之前进行测试,看看该位置是否在游戏区域之外.当我放大时,如何测试我是否在屏幕边缘?
我正在使用Monotouch和MonoGame为iOS开发游戏,我需要在没有状态栏的情况下全屏制作游戏.在iOS 6中这不是问题,但在iOS 7中我无法弄清楚如何禁用状态栏.我在Objective-C中找到了如何执行此操作的结果,但无法在MonoTouch中找到如何执行此操作的结果.
这篇文章说这是不可能的,但Netflix iOS 7应用程序全屏,没有状态栏(播放视频时).
我正在将游戏从iOS和Windows Phone移植到Android.我关注的大部分代码都来自Windows Phone版本,因为它与Java最相似.我的问题与LibGDX中的OrthographicCamera类有关.
我正在使用游戏对象作为此游戏的组件容器方法.这可以在这里阅读:http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ 这样你就可以了解我在说什么.因此,游戏中的所有内容都扩展了Component组件类.每个游戏对象即一个球是一个游戏对象,它由组件组成,即Sprite,RigidBody(用于物理),Transform2(位置,旋转等).这包括Camera2类,它只包裹一个OrthographicCamera成员.
我有两个问题,我一直在研究它.我无法弄清楚如何进行分层.游戏有一个抽屉,用户可以向下滑动以拖动打开.这应该是游戏中的其他任何东西.开发XNA版本的人完成此任务的方式是通过使用多个SpriteBatches并基本上将每个SpriteBatch视为一个层.这在LibGDX中不起作用,使用多个SpriteBatches是不好的做法.问题是,游戏对象被组织为树,并且它们根据树的遍历进行渲染,因此排序最终基于对象插入树中的时间.我已经调查了DecalBatch,因此我可以使用Z顺序,但是由于游戏几乎完成,因此需要重新配置.正如我所说,我尝试使用多个SpriteBatches,但无论出于何种原因,这也不起作用.
由于这已经很长,我将在另一篇文章中提出我的第二个问题.