我正在开发一个libGDX(LWJGL上的库)游戏项目,并使用来自几个不同工作站的Intellij IDEA IDE:
我在Ubuntu盒子上使用OpenJDK for Java 6,在Windows盒子上使用Sun/Oracle Java 6(我听说Java 6是用于Android兼容性的那个).
在全屏幕上运行时:
进一步研究,我看到对Gdx.graphics.getHeight()和Gdx.graphics.getWidth()的调用返回覆盖两个显示所需的矩形的大小,在我的情况下是3200x1080,但当我告诉我的游戏时全屏运行,它只使用其中一个显示器,所以摄像机设置为1920x1080,但我的相机移动和平铺地图平移认为他们有3200x1080可以使用,使事情扭曲和无法使用(因为角色可以走开屏幕右侧).
我猜我的问题实际上来自awt.Toolkit的getScreenSize()调用返回的大小,但我不知道如何更深入地询问它以获得当我全屏时实际使用的屏幕大小.
我的DesktopStarter获取屏幕大小并设置全屏,如下所示:
LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
cfg.width = screenDimension.width;
cfg.height = screenDimension.height;
cfg.fullscreen = true;
new LwjglApplication(new Game1(), cfg);
Run Code Online (Sandbox Code Playgroud)
是否有解决方案来获得"全屏"实际启动的显示器的高度/宽度?
所以我遇到的麻烦就是执行game.jar文件,退出游戏,然后重复执行,导致Gdx.graphics.getDisplayModes()返回的模式列表中显示不同的显示模式 - 正如PT在下面指出的那样,这是一个围绕LWJGL的薄包装Display.getAvailableDisplayModes()
.为什么会这样?为什么在Ubuntu的后续运行中会出现一组不同的模式?
编辑:根据PT的建议,将LWJGL引用置于问题,因为它似乎是LWJGL提供的显示模式列表.
谢谢!
我刚刚开始使用Libgdx练习制作游戏,我使用网站上提供的项目创建.jar来创建初始项目.但是Android项目中出现错误,该错误表示:
android.os.Bundle无法解析.
我正在使用Eclipse for Java IDE.如果我将光标放在AndroidApplication
带有下划线的红色上,则表明我配置了构建路径.我相信我安装了Android SDK,因为它在一个简单的示例项目上的不同工作区上工作了一段时间.有谁知道我在这个新的工作空间里做错了什么?如何配置类的构建路径AndroidApplication
?
顺便说一下,我相信我正在使用Java 1.6,就像JAVA_HOME所指出的那样,尽管我也安装了Java 1.7.虽然这可能不相关......
package com.example.drop;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
cfg.useAccelerometer = false;
cfg.useCompass = false;
initialize(new Drop(), cfg);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读关于libgdx的javadoc和各种教程,我正在尝试找出与我类似或在libgdx中提供类似功能的各种概念之间的差异.
起初我认为scene2d是关于创建菜单等交互式项目,但我正在阅读的各种教程使用scene2d/actor作为主要游戏项目(即玩家等),其他人只是使用精灵.
在游戏中使用Sprite和Actor(即scene2D)之间的区别究竟是什么?你应该在什么时候选择?
谢谢.
我尝试在我的Android游戏中在libgdx上绘制简单文本,但它看起来很清晰.如何使文本在不同的分辨率下看起来流畅?我的代码:
private BitmapFont font;
font = new BitmapFont();
font.scale((ppuX*0.02f));
font.draw(spb, "Score:", width/2-ppuX*2f, height-0.5f*ppuY);
Run Code Online (Sandbox Code Playgroud) 我在使用Libgdx绘制如何绘制简单的2D文本时遇到了很多麻烦.这是我到目前为止编写的代码:
SpriteBatch spriteBatch;
BitmapFont font;
CharSequence str = "Hello World!";
spriteBatch = new SpriteBatch();
font = new BitmapFont();
spriteBatch.begin();
font.draw(spriteBatch, str, 10, 10);
spriteBatch.end();
Run Code Online (Sandbox Code Playgroud)
代码确实绘制了Hello World字符串,但是它会弄乱我所有的其他绘图.他们在那里,只是残忍地残缺,并且所有这一切都在移动.我试着Gdx.gl11.glPushMatrix()
和Gdx.gl11.glPopMatrix()
周围只是陈述的每一个子集.
我已经将残缺不全的图纸缩小到了font.draw()
电话,如果它被取出,一切正常(但当然没有文字).
我正在研究一个libGDX项目,我有一个名为CheerVArachnids的类,它有另一个内联类,它是一个事件监听器.当我在桌面上运行这个项目时它工作正常.但是当我在我的Android设备上运行时,它找不到内联类,我收到以下错误:
Could not find class 'com.bbj.cva.CheerVArachnids$PlaceUnitListener', referenced from method com.bbj.cva.CheerVArachnids.<init>
Run Code Online (Sandbox Code Playgroud)
以下是我班级的重要部分:
package com.bbj.cva;
public class CheerVArachnids implements ApplicationListener {
class PlaceUnitListener implements EventSubscriber<PlaceUnitEvent> {
@Override
public void onEvent(PlaceUnitEvent event)
{
//
}
}
public CheerVArachnids() {
EventBus.subscribe(PlaceUnitEvent.class, new PlaceUnitListener());
EventBus.subscribe(RemoveScreenObjectEvent.class,
new RemoveScreenObjectListener());
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么在Android上,在运行时它无法找到内联类?
我想创建一个按钮,当用户将其悬停或单击时,该按钮会发生变化.我创建了以下变量
Button buttonPlay = new Button();
Run Code Online (Sandbox Code Playgroud)
我现在不知道该怎么办,如何加载图片?如何在按钮中写入文字?如何实现事件/效果(悬停,点击)?
如果有人可以为按钮编写一些示例代码,那将非常有用.
我目前正在尝试扩展字体,但我收到错误"方法setScale(float,float)未定义类型BitmapFont"这是我得到错误的代码部分,特别是在第2行和第4行.
font = new BitmapFont(Gdx.files.internal("text.fnt"));
font.setScale (.25f, -.25f);
shadow = new BitmapFont(Gdx.files.internal("shadow.fnt"));
shadow.setScale (.25f -.25f);
Run Code Online (Sandbox Code Playgroud)
我在这里创建了变量
public static BitmapFont font;
public static BitmapFont shadow;
Run Code Online (Sandbox Code Playgroud)
当我检查使用setScale函数的其他示例时,这似乎是使用的格式.有关为什么会发生这种情况的任何想法?
我已经运行了设置ui,但是,我在-html项目中得到的两个错误比教程中描述的错误:libgdx教程
声明的教程错误如下(这是我看不到的错误):
要修复HTML5/GWT项目的错误,请转到"问题"视图,右键单击错误消息"WEB-INF/lib目录中缺少GWT SDK JAR gwt-servlet.jar"并选择"快速修复" ".单击"完成".
我遇到的错误是:
由于构建路径不完整,因此未构建项目.找不到com.google.gwt.core.client.EntryPoint的类文件.修复构建路径然后尝试构建此项目...
无法解析com.google.gwt.core.client.EntryPoint类型.它是从所需的.class文件间接引用的
无论如何我能解决这个问题吗?我刚刚更新了我的日食,我还下载了版本18 ADT,Android SDK工具版本19和Android SDK平台工具版本11.
我正在尝试将gdx-tools.jar添加到IntelliJ中的libGDX项目中.结果:
模块"android"不得包含源根".../android/src".root已经属于模块"android".
这就是我尝试过的:
项目结构>库>新项目库> java>选择"gdx-tools.jar">选择模块"桌面"
项目结构>模块>选择"桌面">新建>罐子或目录>选择"gdx-tools.jar">
想法?