Tag: libgdx

如何通过代理设置libGDX项目

我正在使用libgdx项目创建者( gdx-setup.jar )来设置一个新项目。 但是,我在我的Windows机器上使用代理连接来访问互联网,而gdx-setup.jar无法检测设置,因此我无法下载所需的jar文件并生成任何项目。 如何以及在何处更改java代理设置以便我能够实现此目的? PS:我已经尝试编辑控制面板 – > Java->网络设置下的设置,但无济于事。

在通过AssetManager加载时,无法使用libgdx在IOS中加载TextureAtlas文件

我开始将我的LIBGDX应用程序移植到IOS。 我使用libgdx的Xamarin工作室端口在IOS上运行我的应用程序。 我成功移植但应用程序无法在Iphone模拟器中加载TextureAtlas文件和BitmapFont文件。 我试过的代码是 … AssetManager assetManager = new AssetManager(); assetManager.load(“packer/help.txt”, TextureAtlas.class); if (assetManager.update()) { } … 上面的代码在桌面和Android上运行正常,但在Iphone Simulator上运行时,我得到了以下日志。 Unhandled Exception: 0 iosgame 0x000f4f7e mono_handle_exception_internal_first_pass + 2190 1 iosgame 0x000f69c2 mono_handle_exception_internal + 1602 2 iosgame 0x000f750f mono_handle_exception + 47 3 iosgame 0x0013a662 mono_x86_throw_exception + 306 4 ??? 0x0b730f8f 0x0 + 192089999 at com.badlogic.gdx.assets.AssetManager.update () [0x0009c] […]

Libgdx第一人称相机控制

我刚刚开始在libgdx中使用3D进行游戏。 我已经知道如何绘制基本Model ,我CameraController用CameraController玩CameraController 。 现在我想创建一个FirstPersonCamera或FirstPersonCameraController 。 我考虑过扩展PerspectiveCamera并MyMovingObject target添加一个MyMovingObject target 。 MyMovingObject将保持x, y, z position ,其中y是一个常数值,因为此刻我无法up/down移动。 所以我的动作基本上是2D。 MyMovingObject还会存储其moving direction / xSpeed, zSpeed所需的left/right rotation 。 但是Player也应该能够向上和向下查看,而MyMovingObject并不需要这种向上/向下旋转,因为它只会改变视图而不会改变其他属性。 所以我不确定我是否走正确的路。 我希望能够通过使用W,A,S,D向前,向左,向右,向后W,A,S,D并使用鼠标向左旋转。 此外,我想通过使用鼠标来上下打量,就像大多数First Person游戏一样。 我应该使用另一种方式,而不是通过扩展PerspectiveCamera创建我自己的相机? 或者这种方法是否良好,我只需要在MyMovingObject存储向上/向下旋转,如果只需要视图? 或者用W,A,S,D and mouse控制相机并根据相机的位置和旋转更新MyMovingObject的位置会更好吗? 我希望你明白我的意思。 解释它似乎有点复杂(至少对我而言)。 编辑:我现在使用Vector3 direction , Vector3 position和Vector3 size为我的NPC和播放器。 我通过这样做来计算速度: xSpeed = direction.x / (direction.x + direction.z) * speed; zSpeed也一样。 通过这样做,我“过滤”了它的y值,我只得到x和y的百分比。 唯一的问题是,当我直视x和z为0 。 […]

LibGDX项目找不到资产文件夹

我突然遇到了构建环境的问题,我无法弄清楚原因。 我可以使用gradlew桌面运行我的项目:运行然而,当我尝试使用右键单击运行作为桌面应用程序从Eclipse运行项目时(当然在桌面项目上)它突然找不到我的pack.atlas文件。 毫无疑问文件存在。 我多次刷新了我的eclipse项目,使用gradle命令行运行项目很好。 昨天工作正常。 我唯一能想到的就是它让我搞砸了昨天我在IDE中运行了一个Gradle命令但是我不确定它怎么会像这样搞砸了。 由于我不能将Eclipse调试器与此错误一起使用,因此我必须弄清楚这个问题。 有没有人猜到为什么Eclipse没有看到资产文件夹?

Libgdx在运行时更改Texture的颜色

在一个用Libgdx制作的游戏中我有一个TextureAtlas ,我在其中存储了所有的TextureRegion用于Player Animation TextureRegion 。 默认情况下, Player有一个蓝色T恤(例如)。 现在我希望能够拥有一个以上的Player ,每个Player都应该拥有另一种T恤颜色。 所以基本上我想用第二个Player用红色代替蓝色,用第三个Player代替绿色等等。 我相信我可以用PixMap做到这一点,但是我不会失去TextureAtlas的优势吗? 还有其他可能吗? 或者我需要在TextureAtlas每个“颜色版本”作为TextureAtlas ? 另一个小问题: 使用Gimp(可能还有一些其他程序),您可以使用“.gif”文件的颜色索引。 通过为文件中的每种颜色保存索引,然后使用此索引来描述像素,这会减小所有Texture的大小。 因此,对于每个红色像素,您将拥有“1”而不是“#FF0000”,并且文件中的某处有“1 =#FF0000”。 如果然后在TextureAtlas打包带有颜色索引的“.gif”文件,那么索引是否会丢失并恢复默认的RGB颜色或会产生问题? 非常感谢!

libGDX – 添加分数并将其显示在屏幕的左上角?

以下是libGDX中简单游戏的示例代码。 当雨滴落入水桶时,分数应增加1。 总分应显示在左上角。 如果错过3滴而不是显示GAME OVER。 我知道要增加分数,但我不知道要显示它。 谢谢。 public class Drop implements ApplicationListener { Texture dropImage; Texture bucketImage; Sound dropSound; Music rainMusic; SpriteBatch batch; OrthographicCamera camera; Rectangle bucket; Array raindrops; long lastDropTime; @Override public void create() { // load the images for the droplet and the bucket, 64×64 pixels each dropImage = new Texture(Gdx.files.internal(“droplet.png”)); bucketImage = […]

如何使用libgdx获取手机语言?

我正在设置我的游戏的默认语言,我希望它是手机的语言,问题是:我怎样才能获得手机的语言?

LibGDX – 正确使用Polygon类

我创建了Polygon对象来包裹我的飞机(飞机的TextureRegion大小是256×74,但是这个游戏的大小是70×20)。 所以: TextureRegion[] texRegsAirplane = TextureRegion.split(textureAirplane, 256, 74); Rectangle bounds = new Rectangle(0, 0, 70, 20); Polygon polygon = new Polygon(new float[]{0,0,bounds.width,0,bounds.width,bounds.height,0,bounds.height,0,0}); 在我的updatefunction之后,我update它的位置: public void update(float delta){ Vector2 v = getPosition(); v.add(velocity); polygon.setPosition(vx, vy); } 然后我渲染多边形以了解它的位置: public void render(SpriteBatch spriteBatch, float pixelPerUnitX, float pixelPerUnitY){ spriteBatch.draw(testTexture,polygon.getX()*pixelPerUnitX, polygon.getY()*pixelPerUnitY, polygon.getBoundingRectangle().width*pixelPerUnitX,polygon.getBoundingRectangle().height*pixelPerUnitY); } 最后,我创建了2架飞机,让它们相互飞行,每次迭代我都会尝试检测碰撞,如下所示: public void detectCollision(){ for(Airplane airplane1 : […]

Libgdx和Google In-App-Purchase结果

我按照这些说明使用ActionResolver接口集成了Libgdx和本机android代码。 我从我的代码的Libgdx部分调用Android方法没有问题。 但是,当我尝试将Google IAP与Libgdx集成时,我正在走向死胡同。 根据TrivialDrive示例,它使用mPurchaseFinishedListener(在调用方法之外)。 我的问题是:如何将此IAP结果代码传递回Libgdx,因为侦听器在调用方法之外? 目前,购买过程已经完成,但我的代码中的libgdx部分未被“通知”购买状态/结果。 这是我的代码: 任何帮助深表感谢。 ActionResolver: public interface IActionResolver { public int requestIabPurchase(int product); } 主要活动: public class MainActivity extends AndroidApplication implements IActionResolver { // Debug tag, for logging static final String TAG = “greatgame”; // Does the user have the premium upgrade? boolean mIsUpgraded = false; // SKUs for our […]

“AL lib:alc_cleanup:1设备未关闭”是什么意思?

我正试图让自己参与Libgdx OpenGL框架。 我已经使用LwjglApplication来创建一些简单的应用程序来渲染框,一些网格和一些纹理。 我遇到了Aurelien Ribon的应用程序,它创建了刚性的Box2D机身。 他使用LwjglCanvas与Java的Swing集成。 我自己尝试制作一个JFrame然后添加了LwjglCanvas 。 然后将JFrame的默认操作设置为接近EXIT_ON_CLOSE 。 但是,每次关闭应用程序时,都会记录到我的控制台: AL lib: alc_cleanup: 1 device not closed 。 我不知道这意味着什么,这对我没有任何伤害。 我只是想知道这意味着什么。 根据LwjglCanvas文档: All OpenGL calls are done on the EDT. This is slightly less efficient then a dedicated thread, but greatly simplifies synchronization. Note that you may need to call stop() or a Swing application […]