我正在用libgdx制作游戏。我想展示关于游戏开始和几秒钟后消失的教程。我的代码如下
public class HeroCar{
static final int TUTE_STATE_SHOW = 0;
static final int TUTE_STATE_HIDE = 1;
int tuteState;
float tuteStateTime = 0;
public HeroCar()
{
tuteState = TUTE_STATE_SHOW;
}
public void update
我在libgdx中做一个项目,我被困在一个点上,我想要一个算法或Java代码,这样我就可以在每次点击屏幕时创建多个爆炸,而不考虑已经在运行的那个,如果我一次点击屏幕10次,我可以看到10个爆炸。
请帮助我完成此操作?一个解决方案:
保持一个运行爆炸的数组。在渲染时,对它们进行迭代-对于每个未找到的对象,绘制。然后,循环并移除完成的部分,然后释放回池(如果您使用的是池,您确实应该这样做),或者释放。您可以在开始循环之前使用a和begin(),然后使用end()组合这些步骤
单击后,向阵列添加新效果
我想知道如何使用操纵杆、游戏板或键盘键轻松地添加对使用LibGDX遍历scene2d菜单(表)的支持
有人知道该怎么做吗?你需要在菜单中加入焦点的概念,休息很容易。(就像旧的电子游戏一样)
在菜单中维护焦点变量
以不同的方式绘制菜单项的焦点(可能是一个附加边框)
正确处理关键事件以更新焦点值
希望这能有所帮助。在处理输入时移动滚动窗格将是一个很好的方法。
实际上,我使用相机缩放(在主相机上使用正交平铺贴图渲染器绘制平铺贴图的一部分)。在box2d世界中,摄像机位于玩家位置(玩家始终位于屏幕中心)的中心
// Set camera postion center on player (box2d body) on every update
camera.position.set(player.getBody().getWorldCenter(), 0);
我想用第二个摄像头创建一个小地图。一个简单的填充矩形,其中有一个点代表玩家在地图上的位置。
因
这似乎是一项简单且有充分记录的任务。
我有两个代表模型位置的Vector3对象
我希望指向一个位于一个Vector3位置的对象,这样它就会看到另一个Vector3位置
最初我看了一些资料来源,如;
它似乎记录了这个方法,即求角的点积和轴的叉积
查看四元数源代码,似乎“setFromCross”为我做到了这一点。
所以我尝试了以下代码
Vector3 thisPoint=this.transState.position.cpy();
Vector3 targetPoint=target.tran
我想创建一个圆角三角形形状。我不能使用雪碧,因为形状会一直变化,所以ShaperEnder似乎是一个不错的选择。我目前:
shapeRenderer.setProjectionMatrix(camera.combined);
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.setColor(0.2f, 0f, 0f, 1f);
// shapeRenderer.filledTriangle(50f, 5
我正在使用Libgdx在Android上分析声音。我已经下载了libgdx1.6.1和0.9.8,但我不能使用import com.badlogic.gdx.audio.analysis.FFT;我检查了包中的所有.jar库,但找不到任何FFT类。谁能帮我一下吗
提前感谢。FFT库于2014年4月被删除,为1.0.0版本做准备。看
您可以在0.9.2版本中找到FFT库:
您可以向前移植代码,因为它基本上独立于Libgdx的核心。如果您知道纯数据,这里有一个最近的Libgdx扩展:
纯数据实现F
处理多个级别的最佳方法是什么?我应该有一些特定的表,其中包含关于每个级别的信息,还是应该为每个级别编写代码?例如,《愤怒的小鸟》、《割断绳子》等游戏有很多关卡,它们是如何处理的?在libgdx中有什么具体的方法来解决我的问题吗?可能存在一些工具来打包有关级别的所有信息。你推荐什么 我不能为《愤怒的小鸟》说话,也不能割断绳子,因为我只是把制作libGDX/box2d游戏作为一种爱好。但是我可以想象使用您自己的级别编辑器或者一些可用的编辑器是首选。在游戏中手工编码每一关似乎都是一件巨大的痛苦
使用编
我用它为我的游戏Sprites创建并绘制一个轮廓。然而,我得到的只是一个空白的红色屏幕。我对Shaders非常陌生,所以我不确定是否遗漏了一些非常琐碎的东西。我的顶点和片段着色器是从上述教程复制粘贴的
(评论教程似乎不起作用,因此我无法在那里寻求帮助。)
我的代码:
float x = 0, y = 0, height = 256, width = 256, angle = 0, outlineSize = 1f;
@Override
public void create() {
ba
如何在libGDX中使用色调、饱和度和亮度而不是r、g、b、a值指定颜色。我注意到颜色构造函数只接受rgba,至少自动补全只提供rgba。这可能吗?我想创建一个从色调=0到色调=255的渐变。我不认为这是内置在Libgdx中的,除非它是在我上次检查后添加的。我为它做了一个实用的方法。这将色调、饱和度和值视为0到1之间的值。(因此,如果你使用的是刻度,请预先除以255)。对于色调,它从红色到黄色到绿色再到青色再到蓝色再到洋红再回到红色。或者相反的方向,忘记了。我根据Android的颜色类修改了算法
标签: Libgdx
screen-resolutionscreen-size
我创建了一个使用FitViewport的应用程序。因此,它将在任何手机上保持纵横比
但我如何解决我的字体?我的按钮等都按比例缩放,使其外观相同,但字体不同。
因此,我需要一些解决方案,不同的字体大小,不同的屏幕分辨率
在libgdx中如何处理这个问题?对于动态字体大小,可以为每个分辨率使用多个位图字体文件,也可以动态使用并生成它们
标签: Libgdx
robovmjavascriptcore
我的基本想法是libGDX使用RobotVM将Java编译成llvm——比如字节码,然后是平台指定的代码
我想知道我是否可以在libGDX应用程序中使用。它是针对android的,我想这应该可以编译。问题在于它依赖于JavaScriptCore,它是在C/C++中构建的。RobotVM是否编译C/C++代码?听起来你对RoboVM是什么有一个错误的想法
LibGDX使用RoboVM在iOS上运行。RoboVM于2016年4月15日停产。LibGDX现在使用英特尔多操作系统引擎在iOS上运行
An
有时,当我的活动启动时,Libgdx的计时器线程根本没有启动(我通过附加一个断点来解决这个问题),并且所有计时器功能都不起作用()。这种情况并不总是发生。这是一个已知的错误吗?计时器在主线程中执行任务。但它在自己的线程中执行调度
标签: Libgdx
audiorecordamplitude
我试图在LibGdx中使用android的音频记录,但当我按下“将库'android-android-25'添加到classpath”时,什么都没有发生。
我不能使用LibGdx的录音机,因为我想获得麦克风的振幅(比如.getMaxAmplificate)
谢谢您不能使用Android平台的AudioRecord类,因为LibGDX是跨平台开发库
但您只能在Android平台上使用LibGDX的接口和核心模块,这里是它的图片:阅读以下内容:
当任何两个实体相互接触时,不会调用此接触脚本。我尝试过在任何对象体接触时简单地调用该方法,但这也不起作用
world.setContactListener(new ContactListener() {
@Override
public void beginContact(Contact contact) {
Fixture f1 = contact.getFixtureA();
Fixture f2 = cont
我正在尝试使用libgdx制作一个简单的游戏。我一直坚持的一件事是让敌人在特定时间繁殖。如果我做了类似的事情
if (t == 10)
new Enemy();
float t = 0
float timeElapsed = 0;
update (float delta) {
timeElapsed += getDeltaTime();
if (timeElapsed > 0.1) {
t++;
timeElapsed = 0;
我正在用Libgdx制作一个游戏,在这个游戏中,我想在特定的时间间隔内显示和隐藏一个纹理,并重复这个过程。我可以使用Timer类进行此操作。
请给我举个例子。我不知道你在这里想做什么。可以在渲染循环中设置一个标志
Texture texture;
long lastFlip = 0;
long flipTime = 1000;
boolean display = false;
//..In your rendering loop
if(lastFlip+flipTime > System
我正在考虑使用blutooth和LibGdx为一个游戏配对两台设备,到目前为止,我所发现的一切都不能很好地解释,而且是不完整的。任何人都有使用这种功能的游戏的好来源吗 Libgdx中没有对蓝牙的特定支持,因此您只需使用平台提供的任何东西(可能您的重点是安卓后端?)
一旦您了解了平台的API,您将希望使用以下方法来访问它:
标签: Libgdx
spritespritebatchbatching
我是一名使用libgdx引擎的新程序员,对sprite批处理的行为感到好奇。特别是如何在程序生命周期中将精灵添加到绘图批中。到目前为止,所有精灵示例都使用了类似以下代码:
batch.begin();
雪碧.抽(批);
batch.end()
等,我不清楚我将如何绘制不同数量的精灵,因为每个精灵。绘制必须在批中调用。。。提前感谢您的解释 简单地说,将每次调用sprite.draw()视为在某个点绘制sprite的请求。每次调用sprite.draw()都会将精灵添加到批处理中。调用batch.e
标签: Libgdx
units-of-measurement
你好,我想问你们一个关于LibGDX及其单位的问题
首先,我用类地球引力矢量创建了一个世界:
world = new World(new Vector2(0f, -9.2f);, true);
接下来,我创建了每米PPM像素的恒定值
public static final float PPM = 32;
它基本上意味着32像素在Box2D世界中等于一米
然后我创造了球员的身体形状,这里只有重要的线条:
shape.setAsBox(16 / PPM, 40 / PPM);
fixtureDe
我有一组爆炸和一组僵尸,但我正在努力找到一种有效检测碰撞并移除碰撞的爆炸和僵尸的方法。有什么建议吗
Iterator<Rectangle> blastIter = blasts.iterator();
while(blastIter.hasNext()) {
Rectangle blast = blastIter.next();
blast.x += 200 * Gdx.graphics.getDeltaTime();
标签: Libgdx
collision-detectionbullet
我正在尝试使用LibGDX项目中使用的Bullet库检测btCompountShape和btSphereShape之间的冲突
我的检测方法如下所示:
def checkCollision(left: btCollisionObject, right: btCollisionObject) = {
val leftWrapper = new CollisionObjectWrapper(left)
val rightWrapper = new CollisionObjectWrapper(
我试图创建一个示例圆来测试每米的像素数
我的PPM设置为100。
高度和宽度设置为320和480
你知道为什么它不会在y轴上居中,但会在x轴上居中吗。而且,当我将半径设置为50时,它不会绘制任何图形。我是不是遗漏了什么
this.world = new World(new Vector2(0.0f, -9.8f), true);
BodyDef bodyDef = new BodyDef();
bodyDef.position.set( App.WIDTH
我有一个显示文本的简单框和一个按钮。
我正试图让文本在表格中换行。
不幸的是,文本溢出了表格,无法换行
我原以为这很简单,但这已经成为一种痛苦
Label description = SkinController.getInstance().getLabel(Strings.NoAdsDescription, Values.FONT_SCALE_SMALL);
description.setWrap(true);
description.setAlignment(Align.center);
我想在libgdx ModelBatch中呈现位图字体。我只找到了带有“SpriteBatch”的样品。当然,我可以在3D空间中移动SpriteBatch,但它在“ModelBatched”对象之前或之后渲染。但我想把它渲染到正确的z位置
例如
渲染模型实例a(z=20)
渲染字体(z=30)
渲染模型实例b(z=40)
然后modelInstanceB应该覆盖渲染字体应该覆盖modelInstanceB
换句话说,我希望在ModelBatch上下文中呈现字体
modelBatch.begi
我正在构建一个3D场景。直到现在,我还不需要任何视口。现在我正在添加scene2dui元素,我需要一个Viewport实例,因为Stage的构造函数接受Viewport实例,就像在newstage(Viewport)中一样
摄像机按以下方式实例化:
camera=newPerspectiveCamera(45,Gdx.graphics.getWidth(),Gdx.graphics.getHeight())
然而,一旦我设置了一个视口,我的场景就会变得一团糟。相机的位置变化很大,我的任何物体都不
我在Scene2d中启动了一个非常小的Libgdx项目。我下载了LGDX的最新版本。我试图找到一些信息,但不清楚。
问题是我只得到了死亡的黑屏。什么也没发生
我已经按照代码和日志进行了操作,我确信我在Actor中绘制了方法,但没有结果:
先谢谢你
public class ActorBall extends Actor implements Disposable {
private Texture ballTexture;
private TextureRegion ballTextureRe
我正在开发一个简单的游戏,遇到了一个问题。我的虚拟屏幕大小是640x360,但如果我在设备上启动游戏时屏幕分辨率为1920x1080,那么演员的边界将保留在我的虚拟世界坐标中,而不是1920x1080,因此我无法检测到任何输入。有人能帮我吗
private Stage stage;
private Preferences SoundPrefs;
private Texture TitleTexture, PlayTexture, BallsTexture, RatingsTexture, S
我想知道如何在libgdx中实现像这个游戏一样的复古效果
我可以使用什么着色器?通常,在一个问题中,您应该显示到目前为止您已经尝试了什么。。。关于复古图形,只需使用块状像素,这通常足以实现复古外观。看看他发布的视频,@munyul,我认为他在寻找我称之为“CRT效果”或其他后期处理/着色器的东西。不过我同意,Harry应该真正描述他迄今为止的发现和尝试,否则他的问题似乎离题。好的,我发现了这个,我会尝试实现它。链接视频不可用。通常在问题中,你应该展示你迄今为止的尝试。。。关于复古图形,只需使用块
标签: Libgdx
sprite-sheettexturepacker
对于我的LibGdx项目,我有包括用于动画的单个图像和精灵表的资产。我知道将所有内容打包到单个图集中是很有效的
但是说到雪碧纸,我怎么包装呢?包装时我必须使用一张雪碧纸还是一张雪碧纸的图片?
我有一张名为“蛇”的雪碧纸,有4帧。
我还有蛇01、蛇02、蛇03和蛇04中的蛇框
哪种方法更好?第二种方法的管理时间要少得多。因此,为动画的每一帧使用单独的文件,如snake_01.png、snake_02.png等
LibGDX TexturePacker将自动将所有这些区域命名为“snake”,并给它
我正在尝试使用Scene2D为libGDX项目中的排行榜构建用户界面。
我的基准是谷歌游戏/游戏中心排行榜。有点像一个覆盖在现有的屏幕上,使用幻灯片刷新功能
我不知道如何更新已经渲染的Scene2D元素中的数据。
这就是我创建排行榜的方式。按下按钮时会调用下面的函数。现在,如何在刷新时更新下面呈现的排行榜表中的数据?当我尝试将排行榜类型从全球改为社交型,或将alltime改为上周时,同样的挑战也会出现
public Table getLeaderboard(com.myapp.models.Le
我正在用LibGDX制作一个游戏,到目前为止,我一直在使用形状和调试线来勾勒玩家和敌人的轮廓。但当我想为我的播放器添加一个图形时,我下载了一个spacehsip的png,并将其打包在TexturePacker中。在我的游戏屏幕(我的主游戏屏幕)中,我构建了如下精灵:
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("Spaceship.atlas"));
sprite = new Sprite(new TextureRegion(
我目前在使用LibGDX和Box2d时遇到一些问题,可能是因为我的相机设置
在调查过程中,我发现:
Gdx.graphics.getWidth() == 320
Gdx.graphics.getHeight() == 526
即使我将舞台和正交摄影机设置为1080/1920或270/480(我在玩数值)
然后我按照文档进行操作,看起来这个值与舞台无关,也与相机无关。在那之后,我检查了我只有一种显示模式可用:
DisplayMode[] dms = Gdx.graphic
我正在编写一个小游戏,它是基于瓷砖的。但当我渲染它时,有时这些瓷砖之间的小空间是可见的,并且(绿色)背景是暴露的(如视频中所示)
(绿色线条正在出现)
我想知道,是否有一些双缓冲技术可以解决这个错误,但我已经读到,双缓冲已经实现。请看一下我很久以前做的。我已经把我的解决方案作为答案贴在那里了
这基本上是由于在平铺之间没有任何填充,所以有时,由于舍入,您将正好在两个平铺之间命中,这就是为什么渲染背景。解决方案是使用一个旧的libgdx工具,按照论坛线程中的描述,将填充添加到您的互动程序中。这是我的
为ios构建时出现以下错误
ld: file too small (length=0) file '/Users/………./.robovm/cache/ios/x86/default/Users/ ……/.m2/repository/org/robovm/robovm-dist/0.0.13/unpacked/robovm-0.0.13/lib/robovm- rt.jar/java/nio/PipeImpl$PipeSinkChannel.class.o' for architect
据我所知,对于背景音乐,我们应该使用一个音乐实例,因为它是从磁盘流出来的,并且不会占用内存。但同时它比声音播放慢一点(我说的对吗?)
现在在我的比赛中,我有这样的音乐,但我也有雨发生在周围。为此,我将循环一个6秒的雨声。现在我该怎么办?在libgdx教程中,有一篇文章是关于一个“简单游戏”的,在这个游戏中,你可以移动一个水桶来捕捉雨滴。有一个背景雨音乐,这是一个音乐
到目前为止,我从libgdx中学到的是,您将浪费大量时间发明轮子,特别是如果它已经由经验丰富的人实现了,并且有适当的文档记录 声
我在libGDX中有一个六边形的tmx映射。渲染效果很好,但是我很难找到一种方法来检测这些瓷砖中的点击 它不是libGDX特定的,但我相信它很好地回答了你的问题可能是libGDX特定的,但我相信它很好地回答了你的问题可能是libGDX特定的
失败:生成失败,出现异常
出了什么问题:
配置根项目“SetupGame”时出现问题
无法解析配置“:classpath”的所有依赖项。
无法解析de.richsource.gradle.plugins:gwt gradle plugin:0.6。
要求:
:设置游戏:未指定
无法解析de.richsource.gradle.plugins:gwt gradle plugin:0.6。
''.
无法获取“”。
jcenter.bintray.com
尝试:
使用--stacktrace选项运
当用户单击时,我试图删除我放在文本字段中的占位符文本(说明等),但我得到了错误:
com.badlogic.gdx.scenes.scene2d.ui.TextField不是封闭类
我的代码:
final TextField searchField = new TextField("Who are you looking for?", newSkin);
searchField.setFocusTraversal(false);
s
我正在尝试从图集加载一组帧以制作动画。使用TexturePacker打包图像后,我的atlas文件如下所示:
ufo_data2.png
size: 2048,2048
format: RGBA8888
filter: Nearest,Nearest
repeat: none
Ufo_gfx/red/ufo_0_red0000
rotate: false
xy: 2, 1030
size: 512, 512
orig: 512, 512
offset: 0, 0
inde
我正在用libgdx做一个游戏。我有一个超级类怪物,它的子类是战士、法师等等。我想在playScreen类中呈现这个怪物类(实际上是他的孩子)。每个类都有自己的动画和纹理、伤害/健康值。我该怎么做?我在哪个类中定义渲染的位置,那个怪物的动画?在儿童班、超级班还是在游戏屏幕上?我目前的代码如下:
public class Monster {
public Animation monster;
public TextureAtlas atlas;
public int health;
public
标签: Libgdx
collision-detection
我有两个演员,一个是“蛋糕”,另一个是“一些飞行物体”。我想检测“一些飞行物体”与“蛋糕”接触时的接触或碰撞。我怎样才能准确地检测到它 幸运的是,有一个很好的API叫做Bullet,LibGDX为我们提供了一个包装器来使用它(Bullet是用C++编写的)。Bullet旨在管理游戏中的所有体能。为了了解它是如何工作的,我推荐xoppa提供的本教程:可能重复的
我根据GitHub中给出的源代码创建了点光源。但是当它超出视口边界时就会关闭@Squiddie你能告诉我如何禁用剔除吗
我正在使用Libgdx框架制作一款赛车游戏,游戏结束后,屏幕上会有一个重试按钮,点击该按钮进入游戏屏幕,我想在该屏幕上重新启动游戏,但这不会发生,游戏屏幕上显示的屏幕是游戏结束后的最后一个屏幕
private void updateGameOver() {
if(Gdx.input.justTouched()){
guiCam.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
我知道我可以使用AssetManager.isLoadedAssetDescriptor.filename、AssetDescriptor.type。
但是,为什么没有AssetManager.isLoadedAssetDescriptormethod 投票关闭,因为你知道如何解决它,这里没有真正的问题。它不存在,因为没有人实现它。libGDX是开源的,可以在github上使用。如果您认为该方法有用,请使用该方法提出拉取请求。我理解,但在此页面上找不到关闭按钮。
标签: Libgdx
collision-detection
我有一个匀速移动的平台,当我的球员跳到平台上时,我需要更新我的球员位置。但是我在碰撞检测方面有问题。下面是我如何检测播放器底部矩形和平台矩形之间的碰撞
for(GameObject t2 : list){
if(t2 instanceof Platform){
platform = (Platform) t2;
render.rect(platform
大家好,我制作了一个简单的游戏,里面有一架飞行的直升机,你需要躲避导弹。如果gameOver布尔值为真,我想移除屏幕上创建的所有导弹。现在发生的事情是,只有当直升机因为击中导弹而死亡时,它才会被移除,但是如果它因为击中地面而死亡,游戏中的消息显示,但是导弹没有被移除
我试着用
if(heliR.overlaps(missiles)){gameOver=true; Iter.remove; }
但就像我说的,只有在我被导弹击中致死时,所有的导弹才会被移除,有人能帮我吗
这是我的密码:
@Ove
在libgdx-box2d中,一个带有多个圆形夹具的动态实体可减少fps
//alpts是矢量2类型的数组列表
bodyDef.type=BodyType.DynamicBody;
车身定义位置设置(0,0);
Body Body=world.createBody(bodyDef);
正文.setUserData(“链”);
对于(int i=0;i0){
矢量2开始=阿尔卑斯山到达(i-1);
矢量2端=阿尔卑斯峰(i);
}
Fixture Fixture=body.createFixtur
LibGDX提供了可以附加到按钮的事件侦听器。在监听器内部有一个方法touchUp()我们可以重写。我来自iOS开发者,在iOS中有一个选项touchUpInside和touchUpOutside。也就是说,如果用户在调用按钮touchUpInside的区域内松开手指,并且如果用户在按钮区域外抬起手指,则调用touchupExide。libGDX是否提供类似的功能,还是由开发人员来实现?默认的libgdx修补不会将这些场景区分开来
编辑:我使用了这个代码,但这是非常不精确的。我得到了很多假润色
我一直在尝试在我的屏幕上显示一个模型(来自Blender的一个简单的UVSphere)。我首先将其导出为.fbx格式,然后使用gdx-conv-win32.exe将其转换为.g3db格式。到目前为止,我已经有了这个代码,但它显示给我的只是一个空白的黑屏。。。它仅适用于本教程中的模型(an.obj模型)
}由于没有公认的答案:
如文件中@Xoppa所述,不透明度设置为零,在gd3j文件中设置为1.0000
"opacity": 0.000000
//TODO 1:在搅拌器中查找材料的属性
//
1 2 3 4 5 6 ...
下一页 最后一页 共 18 页