我刚刚在LibGDX游戏中实现了box2dlight。它在其他方面工作得很好,但在我添加静态实体后,它们不会投射阴影
然而,墙确实以某种方式增加了点光源
以下是我使用Box2D和Box2Lights的代码部分:
Vector2重力=新的Vector2(0,0);
debugRenderer=new-box2debugrenderer();
世界=新世界(重力,假);
rayHandler=新的rayHandler(世界);
rayHandler.setCombinedMatrix(came
这是我第一次使用xml,我遇到了以下问题:
以下是xml文件:
<file>
<extension>.png</extension>
<animated>false</animated>
</file>
当我执行程序时,它给出了java.lang.NullPointerException错误我找到了答案
xmlTextureFile是一个元素,当您解析文件时,用于解析的第一个元素是这里的first标记文件
所以在这里
在Android Studio中生成APK文件最简单的方法是什么
我的项目的android/build/outputs文件夹包含两个apk文件:android debug,android debug unaligned。我应该用这些吗?哪一个?读这篇文章
向下滚动到android studio部分
默认情况下,该文件应位于//android目录中
apk的默认名称为android release。apk您可以在android Studio中生成apk,如下所示:
在Android Studio
我已经三天没有读到关于如何在libGDX中管理资产的内容了。我在文档中读到的第一件事是从不将AssetManager或任何纹理设置为静态,但到目前为止,我看到的所有示例都将AssetManager设置为静态。
是否有人可以共享AssetManager的一个项目/代码,而该项目/代码尚未用作Singleton?
或者告诉我怎么做。我曾经在我的Main extends Game类实例中创建AssetManager。然后,由于我正在使用,我正在将main实例传递给构造函数,我可以通过它访问assetM
我想知道在不使用scene2d的情况下,是否有一种方法可以检测特定纹理上的触摸。Gdx.input.isTouched()检测整个屏幕上的触摸,有没有一种方法可以让我在没有scene2d的情况下检测纹理上的触摸?当然有,我也从不使用screne2d
在更新方法中
if(Gdx.input.isTouched())
{
Vector3 tmp=new Vector3(Gdx.input.getX(),Gdx.input.getY();
camera.unproject(tmp);
我是libgdx新手,正在为我正在创作的游戏书寻找一个播放视频的解决方案。经过一些研究,我发现这篇文章:
然而,天真的我不知道闪屏和XMLUI代码去了哪里?我们是在核心项目还是android项目中实现它?
如果有人也能在CORE和android之间共享事件调用机制,那也会很有帮助。
非常感谢 您的游戏类文件将转到核心项目,您可以为所有平台编写一次代码
您的所有资产文件图形、声音。。。转到Android项目>资产。桌面项目有一个指向该资产文件夹的链接,因此您只需存储资产一次
如果您是Libgdx
我想要一个演员画一个可画的,但剪辑到演员的大小。我从Widget派生这个类,并使用一些硬编码值作为一个简单的测试:
public class MyWidget extends Widget {
public MyWidget(Drawable drawable) {
setDrawable(drawable);
setSize(100, 100);
}
public void draw(Batch batch, float parent
标签: Libgdx
collision-detectionoverlappolygons
我想创建一个多边形,它将使用overlapse与矩形碰撞。我唯一的问题是我不知道如何创建多边形,我的意思是只创建多边形。每次我试图在互联网上找到它,我都会发现有史以来最复杂的代码。所以,如果你能告诉我如何创建一个多边形,并解释如何声明它的形状,我将不胜感激
多边形大致如下所示:
注意:它应该是对称的,但我不确定我是否绘制了对称的…根据多边形类上的,您可以简单地使用它的构造函数定义一个新多边形。例如:
//we want to create a simple square shaped polyg
LIBGDX中的增量时间是多少?我读了很多关于这个的帖子。据我所知,三角洲时间是
上一帧和当前帧之间的时间间隔
增量时间加起来最多为1,因为它是每秒x帧的计算,即(帧的1/x)
为了使游戏的速度恒定,我们使用dt
如果我们说60*dt,那么它将每秒移动60帧,不管移动设备的速度如何(例如)
这就是我对增量时间的了解,但我没有得到一个清晰的认识,因为无论是对于更新还是渲染方法,我们都在传递增量时间,但在代码中我们指定每秒计算的是什么
比如说,
public void update(fl
在LibGDX中,我试图创建一个游戏,在这个游戏中,你扮演一个必须在僵尸浪潮中生存的角色。计划是,当一个僵尸接触玩家时,玩家失去生命,僵尸死亡;在旋转任何精灵之前,这都可以正常工作。下面是我可以想象的原因的屏幕截图:
要检查碰撞,我使用:
if (sprite.getBoundingRectangle().overlaps(Game.pl1.sprite.getBoundingRectangle())) {}
。。这是在僵尸类中,并且游戏。pl1。精灵指属于玩家的精灵。
因此,红色框是我假设的
当我在桌面上测试我的游戏时,prefs工作正常,正确的分数和highscore被输出,但当我在移动设备上运行时,数值不保存,两个分数都显示为0。也没有错误。只是需要一些帮助来解决这个问题。谢谢你,亚历克斯
pref = Gdx.app.getPreferences("Scores");
if(pref.contains("Score") == false) {
pref.putInteger("Score", 0);
if(pre
我很抱歉,如果这个主题是重复的,但我没有发现一些简单的其他主题
我是LibGDX的3D新手,我正在尝试做一个3D地形(即使非常简单,也只是一个斜面)和地形跟随相机的基本实现
我在谷歌上搜索过,但没有发现一个对初学者来说这么简单的例子
谁能给我一个示例代码或指出我在哪里可以找到?
我尝试过使用这个:,但它不起作用,因为我正在OpenGL2.0中使用libgdx1.9.3
提前感谢您的帮助
标签: Libgdx
actorstagescene2dspritebatch
我想画一个纹理。只要我在屏幕的渲染方法中执行此操作,此操作就可以正常工作:
public void render(float delta) {
batch.begin();
batch.draw(new Texture(Gdx.files.internal("badlogic.jpg")), 0f, 0f, 100, 100f);
batch.end();
}
但是,如果使用我的演员渲染纹理,图像将无法正确显示。我看到的不是图像,而是一个太大的像素
// The co
我正在使用libgdx开发一个游戏,但刚刚遇到了一个问题,我将如何在各种屏幕尺寸下实现它?我知道如何定位不同大小和分辨率的图像,但我们如何使精灵支持不同的屏幕大小?我在320x480上的背景很好,但在480 x 800上占据了很小的位置,如何实现这一点,使其在所有屏幕上都能工作?根据您喜欢做的事情,您有各种选择
a。你可以使用一组缩小的HQ精灵来适应每个屏幕,比如
在resize()中
然后在渲染()中
将在整个屏幕上绘制精灵(假设正交摄影机以0,0为中心)
b。您可以使用不同分辨率的不同精灵集
我在试着让一个柔软的身体表现得像果冻一样。软体由中心的圆形和沿半径的12个较小的圆组成。所有径向圆都连接到中心及其相邻圆。从这里捡的
为了获得果冻粘贴的效果,每当径向体与形状碰撞时,我都会创建一个距离关节。这种方法效果很好,身体看起来像粘住了一样
我的问题是,由于径向圆和中心圆通过弹性距离接头连接,径向圆有时会穿过实心墙。当身体靠着墙移动时,身体从开始移动到结束
我尝试过提高速度、位置迭代次数,甚至每秒调用step 360次,但这并不能解决问题 也许可以为关节添加一个最大长度?将collideC
您好,我有一个box2d复合车身,该车身旨在成为侧面图中所示的车辆。当它向后移动时,我希望它朝向另一个方向,即在x轴上翻转/反射。有没有一个简单的方法可以做到这一点?我在谷歌上找不到任何东西,尽管由于其他单词反射的使用,有很多错误点击
我可以重新创建身体,但我必须做整个超时删除/添加的事情?而且似乎有点麻烦。我尝试了body.getFixtureList并设置了顶点,但该方法已被标记,因此不更改列表。这是否意味着不添加或删除?还是不编辑?不管怎样,屏幕上没有任何变化。去仔细检查我的代码
我遗漏了
我试图编写一个简单的函数,将我的播放器的配置文件保存到一个内部文件中,但它在outputWriter初始化时抛出一个NullPointerException
public void saveProfile(String filePath){
BufferedWriter outputWriter;
try{
outputWriter = new BufferedWriter(new OutputStreamWriter(Gdx.files.local(fi
如何在libgdx中为参与者创建自定义操作?如果我不能,那么是否至少有一个操作来运行自定义代码段(例如调用方法操作)?谢谢
编辑:
我创建了这个类:
class GapSizeAction extends TemporalAction {
private float newSize;
private Blocker blocker;
public static GapSizeAction getRotateAction(float newSize, float duration) {
我正在将一个简单的three.js场景转换为libgdx。一切加载和运行正常,但似乎我的对象的UV纹理坐标没有正确应用?我将.obj/.mtl用于模型和纹理。我知道在教程中提到,在制作中应该使用.g3db格式而不是.obj格式,我计划这样做,但我仍然很好奇为什么我的.objs没有正确映射纹理?以前有人见过这种情况吗?我是不是错过了什么
LIBGDX
THREEJS
package com.freedom.三十;
导入com.badlogic.gdx.ApplicationListener;
我有一个5列的表格,插入到ScrollPane中,我希望ScrollPane只滚动到下一个元素,即使速度太高。
有人遇到过这个问题吗?Scrollpane类中有各种设置选项,例如,您是否尝试过setFlickScroll(布尔flickScroll)-老实说,我从未使用过Scrollpane类,我只是想知道您尝试过什么?谢谢您的回复。但我已经解决了我的问题,只是把掷骰子放得太小了。
第一次在LibGDX项目中使用json解析时,我无法正确获得解析结果
在这里,我想用财产管理障碍;名称、方向、间隙和速度
我有一个json文件,如下所示:
"obstacles": [
{"name":"eagle","dir":"up","gap":"100","speed":"0"},
{"name":"bigbird","dir":"up","gap":"200","speed":"0"},
{"name":"elephant","dir":"middle","gap":"300",
我正在探索Pixmap,我发现了不同的格式,没有描述:
阿尔法
意向性
亮度α
RGB565
RGB888
RGBA4444
RGBA8888
它们之间的区别是什么?对于java库来说,相关文档处于一个完全奇怪的位置,这并不奇怪;特别是在以下文件中:
返回保存像素数据的直接字节缓冲区。对于Alpha格式,每个值都编码为一个字节。对于格式LuminanceAlpha,亮度是像素的第一个字节,alpha是像素的第二个字节。对于RGB888和RGBA888格式,颜色分量存储在单个字节中,每个字节的
标签: Libgdx
proguardbox2dunsatisfiedlinkerror
我有一个简单的LibGDX项目,它使用Box2D作为依赖项,并使用IOS-MOE与gradle一起构建项目在桌面上运行,但在尝试启动世界对象时出现“未满足链接错误”。它无法加载Box2D依赖项。
我在这个问题上花了大约20个小时,在这里和LibGDX上发表文章后,我发现问题出在我的proguard.append.cfg文件上。我一生都找不到这个问题
完整堆栈跟踪:。
proguard.append.cfg:proguard.append.cfg(在moe模块中):。主类:。build.gradl
我有一个新类MyActorextendedactor,并将着色器应用到其中
但是,着色器将意外地填充透明背景
draw()MyActor中的方法代码如下所示:
@Override
public void draw(Batch batch, float parentAlpha) {
if(shaderProgram!=null)
{
batch.setShader(shaderProgram);
我已经研究了Libgdx-github-repo上的示例。这基本上是一个将平铺贴图与Libgdx集成的测试。他们使用的是单位比例1/16,如果我理解正确,这意味着世界不再基于像素网格,而是基于单位网格(每个16像素宽)。以下是示例中的代码和注释:
// load the map, set the unit scale to 1/16 (1 unit == 16 pixels)
map = new TmxMapLoader().load("data/maps/tiled/super-koalio/
我的游戏呈现一个平铺贴图。我让正交摄影机改变它的位置。x向右,可以看到背景(平铺贴图)滚动。这很好
但是其他物体(球员和一些球)确实(视觉上)改变了它们与摄像机相对应的位置。它们不应该移动,因为只有摄影机移动
package com.me.drop;
import java.util.Iterator;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Game;
import com.badlogic.gd
标签: Libgdx
box2dcollision-detectiongame-physics
我最近开始使用Libgdx进行开发。现在,我正在研究自定义形状的碰撞检测。在我的例子中,我想检测鲨鱼与其他物体的碰撞。由于shark是一种自定义形状,因此我使用Physics Body Editor()将该形状转换为json格式
我已经有了绘制鲨鱼图像和其他东西的代码,但是现在我不知道如何用json文件实现碰撞检测。phycics body editor网站上的教程使用了与我不同的方法
现在,我在渲染方法中绘制shark,如下所示:
batcher.draw(sharkAnimation, sh
我只是想淡出(不透明度=完全透明)按钮后,我按下它。。。下面的代码有一种无法解释的效果:背景图像(完全不同的演员!)变为黑色
我做错了什么
Skin skin = new Skin();
TextureAtlas buttonAtlas = new TextureAtlas(Gdx.files.internal("gfx/menu_buttons.pack"));
skin.addRegions(buttonAtlas);
TextButtonSt
我有一个演员,我用moveTo(destinationx,destinationy,time)移动它
问题是,演员是一个文本按钮,我需要在动作发生时更改文本,这造成了一个严重的问题。似乎setText调用invalidate和invalidateHierarchy,因此当调用该方法时,TextButton的位置将重置为初始位置一段时间,以便移动继续进行,同时文本按钮位置(在初始化时设置的位置-.center())
只要Actions.moveTo仍在运行时我不修改文本,我的演员动作的所有动态都按
我尝试使用本教程:
首先,已宣布私有Toast render_Toast=新Toast 7、6
在那之后,推上烤面包机;渲染
我想在show中使用它,所以我将此用于演示:
渲染toast.maketext游戏开始,字体,toast.COLOR\u PREF.BLUE,toast.STYLE.ROUND,toast.TEXT\u POS.middle\u right,toast.TEXT\u POS.middle\u down,toast.MED
它不工作,没有错误信息,只停止我的应用程序。为游戏
标签: Libgdx
listenerbox2dcollision-detection
嗨,我有一个物体,它是由几个物体组成的,它们之间的区别是,有人是过滤器,有人不是。
我希望我的演员在与物理面碰撞时被摧毁,在与传感器面碰撞时产生不同的效果。
那么,如果接触发生在一个部分或另一个部分,我如何在碰撞侦听器中进行检查 假设你有一张桌子和一群奶牛,你想确定是否有奶牛与桌子相撞
Body table;
Array<Body> cows;
//define the table and cows
ContactListener listener = new ContactLi
标签: Libgdx
texturesskintexturepacker
我愿意充分利用Libgdx及其所有加载程序中的AssetManager。
但我很难理解皮肤和纹理之间如此特殊的联系
我希望尽可能多地使用JSON方法创建皮肤
在wiki中,我可以阅读以下内容:
注意,JSON没有描述纹理区域、ninepatche分割或来自纹理图集的其他信息
在SkinLoader页面中,我读到:
皮肤实例的AssetLoader(1)所有纹理和位图字体实例都将作为依赖项加载。传递SkinLoader.SkinParameter允许指定与皮肤关联的纹理的确切名称。否则会像调用(3
是否可以在libgdx中结合TextButton和Progressbar的行为。因此,该按钮最初将被禁用,但会在后台显示进度。有什么简单的方法可以实现吗?您可以在开始时使用按钮的禁用状态。无论何时,只要您决定它准备就绪,就启用按钮。在相应的“插槽”中为按钮设置禁用图像。您可以最初使用按钮的禁用状态。无论何时,只要您决定它准备就绪,就启用按钮。在相应的“插槽”中为按钮设置禁用图像。
当我在桌面模拟器上运行应用程序时,它工作正常,但如果我打开移动设备,当我按下主菜单上的“播放”按钮时,它会崩溃。在桌面设备上,它会按原样切换到播放屏幕。
我知道它在某个地方是空的,但我找不到它。如果我删除
hud = new Hud(game.batch);
在我的桌面模拟器上也是黑屏
playscreen类:
public class PlayScreen implements Screen {
private RunningGame game;
private TextureAtlas a
我目前正在开发一个快节奏的MMO,使用libgdx套接字(TCP),我最近读到了Kryonet以及它有多“快”,从许多用户那里,人们似乎非常满意
通信服务器/客户端是否更快
对于快节奏的游戏,你们推荐kryonet而不是libgdx套接字吗?如果我使用kryonet,我还需要做客户端预测吗?还是更快?只看Kryonet的github页面,他们没有说任何关于预测的内容,而且它更像是一个库而不是一个框架(如libgdx),因此它不可能做的不仅仅是交流。事实上,如果你不理解我的问题,很抱歉,英语不是我
我所尝试的:
scrollPane.setScrollPercentY(100);
及
或
scrollPane.setScrollY(0)
但是它只会滚动到顶部,而不会滚动到底部。好的,它是这样工作的:
scrollPane.scrollTo(0, 0, 0, 0);
希望它能帮助别人 对我来说,这起作用了:
scrollPane.layout();
scrollPane.scrollTo(0, 0, 0, 0);
尝试将滚动百分比设置为0以转到底部,或每帧递增/递减滚动百分比以缓慢更改
我不熟悉LibGdx框架,在使用视口和摄影机时遇到问题。有人能给出两者之间的简单区别以及两者的使用方法吗?Camera
简单地说,这台相机就像一台现实生活中的相机。在LibGDX中,摄像机用于显示我们的游戏区域
例如:在拍摄一部电影时,导演会做很多准备工作,一切都会通过摄像机拍摄下来。在libgdx中,我们以同样的方式创建了许多精灵、纹理等。。所有这些东西都被摄像机捕捉并呈现在屏幕上。通过一种简单的方式,我们可以看出摄像机显示了游戏区域
视区
Viewport主要用于使我们的游戏在视觉上与多台设
我对libgdx并不陌生,但当我完成了上一个大学项目,开始了一个新项目时,Android studio或IDEA无法解析设置屏幕方法,其他东西也可以。有什么想法吗?希望得到帮助。(项目绝对清晰)。在LibGdx中创建一个项目将为您提供实现ApplicationListener的核心文件
public class HelloWorld implements ApplicationListener {
private SpriteBatch batch;
private Bitmap
我使用“平铺”创建了一个平铺贴图,该贴图具有无限的面积。
生成的tmx文件包含大量0,这导致GetTileId出现nullpointerexeception
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.maps.tiled.BaseTmxMapLoader.getTileIds(BaseTmxMapLoader.java:298)
at com.badlogi
我有一个位图(png)加载到我的精灵中,具有特定的大小(200)和100/100的旋转中心:
Sprite round = loadSprite(200,200);
round.setPosition(x,y)
旋转round.setRotation()时,精灵围绕正确的中心旋转
现在我想将精灵的大小调整为一个新的大小(400400),并且仍然希望围绕中心旋转(200/200):
再次旋转时,它仍围绕旧中心100/100旋转
如何正确执行此操作?设置精灵的中心(x,y)设置精灵的位置,使其位于
标签: Libgdx
shaderfragment-shader
我有一个着色器程序,它将使边界线取决于每个像素周围的alpha值。我希望沿图像添加一条黄色边界线,如下所示:
然而,它并没有给我预期的答案。我最不能理解的是,为什么在图像的边界一侧总是有一条边界线
我的片段着色器代码:
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
uniform vec2 u_imageSize;
uniform vec4 u_borderColor;
un
我使用Box2d(libgdx)实现了一个BMX自行车及其骑手。自行车是一个身体,骑手的每个肢体都是一个身体。当在空中跳跃时,玩家应该能够控制自行车而不是骑手。由于骑手在车把和踏板处与自行车相连,四肢将跟随自行车,直到手臂/腿完全伸展,此时自行车的运动受到限制
有人能建议一种使用关节(可能)来实现这一点的好方法吗?自行车和骑手都应该受到重力的影响,但是骑手的身体不应该因为重力而塌陷。四肢僵硬且不受重力影响(即它们的内部位置)是可以的,但四肢必须受到自行车的影响。最好是骑手四肢的内部位置应该受到影
我想分两步做以下事情:
在1秒内将演员比例设置为1.2
然后将其z顺序设置为最顶端
我怎么控制这个?如果使用
sequence(Action action1, Action action2)
我必须把z顺序的改变打包成一个动作,是吗
我知道在cocos2d中,使用block很容易完成这些操作。设置Z索引对于actor操作来说有点超出范围。您可以使用Actions.run(Runnable)执行任意操作
然后你可以这样使用它:
actor.addAction(Actions.sequence(
例如,假设某物以恒定速度移动,位置myposition向下,使用如下方式:
myposition.add(velocity.scl(delta));
//position is a Vector2 and velocity is a Vector2 with a negative y value to make the position become more negative.
//here is where the texture/sprite gets drawn with myposit
这包含在渲染方法中调用的方法中。
它不会被点击。我的控制台里什么也没出现。我调试了应用程序,“items[1]”实际上是作为一个孩子出现的。这是一个图像,当我运行应用程序时,图像确实会显示出来
有人能帮忙吗?提前谢谢
编辑
handCard1是一个包含两个图像子对象的组
编辑
我正在做battleStage.addActor(aPlayer.handCard1)在show()中
和
aLayer.Handcard 1.设置位置(300,50);
aPlayer.handCard1.addList
我有一个矩形按钮,我正在尝试对齐其中的文本,例如:
but1.getLabel().setAlignment(Align.left);
我知道有不同的选项,如Align.right、bottomRight等。但是,所有这些选项都会围绕矩形边缘对齐文本,如下所示。在这种情况下,左下角和右下角:
我正在寻找一种方法来指定介于两者之间的内容。例如,我希望将文本对齐在左下角和中心之间(不在边缘?例如:
文本按钮本质上只是一个带有标签组件的表。这意味着您可以对其应用填充。如果希望标签从左下角偏移
我应该使用什么尺寸的纹理才能在android和桌面上看起来很好,在android上性能也很好?我是否需要为android和桌面创建纹理 最好的方法(关于性能+质量)是使用mipmap。
这意味着您从一个大的纹理开始(例如1024*1024px),然后向下采样到其大小的四分之一,直到获得1x1图像。
所以你有一个1024*1024,一个512*512,一个256*256。。。和1*1纹理
据我所知,您只需提供最大的(上例中为1024*1024)Texture和Libgdx即可在运行时创建mipma
我有两类游戏对象
Player and Enemy,
和2个人体物体
bodyPlayer and bodyEnemy
然后,我开始
bodyPlayer.setUserData(new Player);
bodyPlayer.setUserData(new Enemy);
当我从两个主体获取用户数据时。
如何从userData中识别哪个是对象类
或者有什么建议
谢谢。您可以使用字符串代替播放器或敌人
bodyPlayer.setUserData("Player");
bodyPlaye
好,大家好,
我是新来的,这是我在这里的第一篇帖子。。不久前我开始开发一款游戏
我仍在努力做一些有用的东西
在一个简单的任务中,加载Libgdx皮肤,我已经尝试了几种方法,
比如
我也尝试过使用atlas和更多相应的文件,但我的应用程序拒绝工作,在皮肤加载时仍然崩溃,因为现在我移除了皮肤部分,来到这里寻求帮助,
如果需要,我将在下面发布我的代码,或编辑此代码,提前感谢您提供的任何帮助
简而言之:如何在AIDE android应用程序上正确加载libgdx皮肤?它不断破坏我的应用程序:/
Caus
我的滚动窗格工作正常,但要使其滚动,首先需要单击它。即使libGDX应用程序本身是焦点,它也不会滚动,直到我点击它
我不想让它自动滚动。我只是认为,当一个用户有一个以应用程序为中心的,并且该用户与一个可以滚动的UI元素交互时,他们只需使用鼠标上的滚轮就可以期望它滚动,无需再次单击元素。当鼠标进入或退出滚动窗格时,您可以添加一个侦听器来更改焦点。您甚至可以将其创建为自定义子类,这样就不必在任何地方复制它:
公共类自动聚焦滚动窗格扩展滚动窗格{
公共自动对焦CrollPane(){
超级(空);
a
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 33 页