我正在用libgdx做一个简单的游戏。我有一个TextureAtlas,它有我正在尝试使用的iNinePatch:
图像另存为menu.9.png
我正在使用以下代码:
Image bg = new Image(Room.iAtlas.findRegion("GUI/menu"));
bg.setBounds(guix-border,guiy-border,(border+radius)*2,(border+radius)*2);
batch.begin();
bg.draw(s,1);
现在我打包的图像如下:
TexturePacker2.Settings settings = new TexturePacker2.Settings();
settings.flattenPaths = true;
settings.combineSubdirectories = true;
TexturePacker2.process(directory, "pack", atlasName);
但是,如果目录中有许多子目录,则为每个子目录TexturePacker2创建一个单独的.png文
如何在特定点旋转ModelInstance(例如立方体的中心或角点)
在我的场景中,我试图在圆锥上旋转圆锥,但是我在中间旋转它。
如何在上面的坐标处设置圆锥体,但在顶点处旋转它。
我需要这样做:
Gdx.gl10.glPushMatrix();
Gdx.gl10.glTranslatef(x,y,z);
Gdx.gl10.glRotatef(angle,xaxis,yaxis,zaxis);
mesh.render();
Gdx.gl10.glPopMatrix();
但是使用lib
我在LibGDX中使用spriteBatch绘制纹理区域时遇到一些问题
所以我有一个主类,它负责游戏逻辑。
在构造函数中,我有:
atlas = new TextureAtlas(Gdx.files.internal("sheet.txt") );
this.loadTileGFX();
loadTileGFX方法执行以下操作:
roseFrames = new ArrayList<AtlasRegion>();
roseFrames.add(atlas.findRegion("
我正在开发一个垂直屏幕方向的游戏。Libgdx屏幕的默认设置是水平方向。所以我不知道应该旋转背景(纹理/精灵)还是将相机旋转90度,哪种解决方案更容易在以后开发?不要旋转任何东西。
转到Android子项目,打开AndroidManifest.xml文件,并将“活动”xml标记的“Android:screenOrientation”属性更改(或添加)为“纵向”
旋转内容在许多情况下都会导致问题(默认文本方向、虚拟键盘外观…)
雷达不要转动任何东西。
转到Android子项目,打开AndroidM
我想制作一个包含两个按钮的菜单(播放、购物)。play按钮将启动游戏,shop按钮将打开一个屏幕,玩家可以在其中选择其主要角色
我如何才能做到这一点?请查看libGDX wiki中的各种入门教程。谷歌肯定也会在这方面帮助你
你需要的是一个游戏类和一些屏幕类。游戏的每个屏幕都有一个屏幕。这里有一个关于如何编写一个带有屏幕的简单游戏的指南
请查看libGDX wiki,了解各种入门教程。谷歌肯定也会在这方面帮助你
你需要的是一个游戏类和一些屏幕类。游戏的每个屏幕都有一个屏幕。这里有一个关于如何编写一
我正在使用libgdx框架开发一个游戏。如何在位图字体对象上实现scene2d操作?这样我就可以编写一些文本,比如score、message和运行动作,比如scene2dactor。您可以扩展actor类来实现同样的功能
比如:-
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.BitmapFontCac
我使用扩展视口为游戏制作了一个界面,当我调整屏幕大小时,纵横比会发生变化,场景中的每个元素都会缩放,但当发生这种情况时,我得到的是:
这是我处理过的最烦人的问题,有什么建议吗?我试着把塔楼放大n倍,然后只为视口设置更大的世界大小,但同样的事情发生了,idk图像上的额外像素是什么
我正在从atlas加载图像
new TextureRegion(skin.getAtlas().findRegion("tower0"));
地图集如下所示:
skin.png
size: 1024,1024
for
我想在游戏中的特定时间间隔实施落叶。
游戏开始10秒后,树叶必须落下,然后在20秒后再次落下,以此类推
我用这种方法来排列落叶
private void updateFalls(浮点增量){
用于(叶l:叶){
l、 Movelevesdown(三角洲);
}
产卵叶();
}
是否可以使用timer类?是否可以在timer中以固定的时间间隔调用此方法?
任何帮助都将不胜感激。您可以通过以下方式使用计时器:
Timer=new Timer();
timer.scheduleTask(new t
在一个侧滚平台类型的游戏中,我的角色遇到了一个奇怪的问题。如果他移动到平台的一侧,而我继续按住移动按钮,他只会粘在上面,直到我松开移动键,他才会摔倒。这是我的移动代码:
public void move(float percent){
float desiredVel = speed.x *percent;
float velChange = desiredVel - b2body.getLinearVelocity().x;
float impu
我想在触地事件发生时画一个精灵,在触地事件发生时画一个精灵。我尝试了以下代码:
public class Connect4Screen implements Screen {
SpriteBatch batch;
Connect4Screen(){
batch = new SpriteBatch();
camera = new OrthographicCamera(30, 20);
camera.update();
batch.setProject
我有一个扩展了Actor的类气泡
public Bubble(MyGdxGame game,Texture texture){
this.game=game;
setPosition(0,0);
setSize(32,32);
gameObject=new GameObject("","bubble");
direction=new MovementDirection();
sprite=new Sprite(texture);
set
标签: Libgdx
texturesbox2dterrain
我与libgdx和box2d一起在一个卡车游戏中工作。
在我的游戏中,1米=100像素。
我的2d地形由我生成,由点构成
我所做的是为整个多边形制作一个多边形区域,并使用texturewrap.repeat。
问题是,我的游戏尺寸缩小了100倍,以适应box2d单位
所以我的相机宽度是800/100,高度是480/100。(8x4.8像素)
如何创建多边形区域
box = new Texture(Gdx.files.internal("box.png"));
box.setFilter
我想得到“墙”的效果,有点像迷宫的墙
if(gameObject1.overlaps(gameObject2)){
}
GameObject1正在移动,GameObject2正在移动。怎么做
将两个对象(移动对象和墙对象)定义为矩形s(或一组矩形s)。
现在您可以对所有这些测试使用n^2重叠测试
一旦检测到冲突,您需要实施适当的冲突响应。
这将包括禁用该方向的运动。您可以使用每个方向的标志来执行此操作
或者,您可以使用物理引擎,让它完全处理碰撞处理
在我的游戏中,玩家在太空中飞行,必须避开小行星。小行星只是我使用网格类绘制的简单多边形。对于所有多边形,我只使用一个网格类对象,效果很好。为了给他们的外观增添一点变化,我想使用4种纹理
我的问题是,我是否必须为每个纹理创建不同的网格对象,或者是否有一种方法可以只使用一个网格类对象?我读到最好使用尽可能少的网格对象来提高性能,因为这是一款Android游戏,我当然可以使用性能提升
Inside draw方法将一个纹理绑定到网格我使用以下代码:
mShaderProgram.begin();
mSh
我有两具尸体。一个圆圈内有一个球,一只鸟内有一个多边形。我试图检测身体内的精灵之间的碰撞,而不是身体本身,如下面的代码片段所示
@Override
public void beginContact(Contact contact) {
Body a = contact.getFixtureA().getBody();
Body b = contact.getFixtureB().getBody();
if(contact.isTouching()){
System.out.pri
我想得到点1和点2之间相对于中心点的角度。如何使用Vector2进行此操作
Vector2 center = new Vector2((float)Gdx.graphics.getWidth /2, (float)Gdx.graphics.getHeight /2);
Vector2 point1 = new Vector2(center.x, center.y + 200.0f);
Vector2 point2 = new Vector2(center.x + 200.0f, center.y
这是我的密码:
public WelcomeScreen(final WallGame game) {
this.game = game;
// Setting up camera and viewport.
camera = new OrthographicCamera();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.appl
我有一个蓝色的方块,当蓝色方块移动到finish标志时,屏幕应该会改变以表示关卡已完成。但是,当我将蓝色方块移动到该位置时,会收到一条错误消息:
Exception in thread "LWJGL Application" org.lwjgl.opengl.OpenGLException: Cannot use offsets when Array Buffer Object is disabled
at org.lwjgl.opengl.GLChecks.ensureArrayVBOenab
因此,我想知道是否有办法在已创建的.pack文件中添加纹理,而不是使用新添加的内容重新打包所有纹理。地图集支持分页,基本上,您可以向地图集添加一个新页面
在包文件中添加一个空行,然后开始下一个atlas。打包下一页并将文件复制/粘贴到末尾,或者手动写入
这一行是它开始新页面的地方:
在开发过程中,我喜欢做的是每次运行项目时重新打包所有原始图像。这个偏离路线可以被注释为安全时间,但对于我的个人项目,打包很少超过几秒钟。因此,只要您不更改现有文件名,所有更改和添加都将被推送
我通常在项目文件夹中创建
我在游戏中创建了如下计时器:
Timer.schedule(new Task() {
@Override
public void run() {
makeComets();
}
}, 2);
我在整个游戏中使用这些代码超过2次,效果很好
但每当我暂停游戏时,计时器都不会停止。计时器在暂停状态下运行。这会影响整个游戏
我发现有Timer.instance().stop()和Timer.instance().s
我就开门见山了。
所以我在做这个游戏,你应该用你的咒语杀死其他物体,我创造了子弹和它们的身体,我们都很好,这很有效。
但我想让它看起来特别和神奇,所以我决定使用粒子。我制作了粒子,把它们放在子弹体后面,并用下面的代码:
for (Bullet bullet : bullets) {
bullet.update(dt);
if (!bullet.destroyed){
fireFx.start();
我正在使用LibGDX将我的游戏抓拍和拖动功能从Swift(SpriteKit)转换为Android,我在Xcode上创建了我的SpriteKit api,这是官方的一个小克隆
我正在寻找优化纹理渲染的方法,特别是因为我得到了每秒45-60/60帧的速度
当我不绘制纹理时,我得到了60(最大值)
我希望你能尽可能有效地帮助我
@Override
public void draw() {
if (texture == null)
return;
Gdx.gl.gl
我的目标是将libgdx游戏移植到iOS。
我已按照
根据说明安装clang和robovm
在安装了robovm插件的eclipse中,如果我运行iOS模拟器应用程序,将显示以下错误消息。对于从终端转换单个java类文件也是如此
7/9/13 12:31:13 PM: [ INFO] Building executable
7/9/13 12:31:13 PM: [DEBUG] Compiling java.lang.Byte
7/9/13 12:31:13 PM: [DEBUG] Optimi
我需要制作一个有超过8个顶点的实体,我得到了错误
AL lib: (EE) alc_cleanup: 1 device not closed
Assertion failed!
Program: C:\Program Files\Java\jre7\bin\javaw.exe
File: /var/lib/jenkins/workspace/libgdx/gdx/jni/Box2D/Collision/Shapes/b2PolygonShape.cpp, Line 122
Expres
我正在用libgdx做一个游戏。现在,每个角色都有一个速度,实际上对应于更新角色之前游戏等待渲染的次数。例如,如果角色的速度为15,则将每渲染15次更新一次。我意识到这不是必须要做的
正确的方法是什么?我真的想用%来表示速度,例如一个字符的速度是85%。使用delta
Gdx.graphics.getDeltaTime()方法返回自上次渲染帧以来的秒数。通常该值非常小,等于1/FPS
@Override
public void render()
{
// limit it with 1
标签: Libgdx
image-rotationpixmap
如何将图像绘制到Pixmap,但旋转一定角度,就像在批处理上绘制一样?没有一种Pixmap方法像批处理绘图方法那样以角度作为参数。好的,这是我设法制作的代码(实际上是从这里借用和调整:):
public Pixmap rotatePixmap(Pixmap src,浮动角度){
final int width=src.getWidth();
final int height=src.getHeight();
Pixmap rotated=新的Pixmap(宽度、高度,src.getFormat(
有时,当我在LibGDX中启动我的游戏时(游戏不需要太多的能量),渲染非常缓慢,但大多数时候,当我运行它时,游戏运行得非常顺利
如果它一直都是滞后的,我会理解这一点,但当我运行它时,只有大约10%的时间是滞后的。当我关闭它并再次运行它时,它运行得非常完美。为什么会这样
我使用Eclipse启动,它作为桌面应用程序运行。如果您有双显示器设置,您能确保其他显示器上没有GPU活动吗?我注意到,即使有一个像样的设置,如果我的另一个显示器上有其他东西(例如聊天客户端或浏览器窗口),项目的运行帧速率也会明显
项目:我一直在使用libgdx-box2d进行一个小项目,我想在其中创建一个对象,将其渲染到屏幕上,并对其应用重力,使其与地面碰撞。我目前正在处理的部分是创建和渲染身体
问题:问题是,我创建的主体在运行项目时没有显示在屏幕上,我觉得我已经正确创建了主体,因为没有编译问题
我的尝试:
我尝试了很多方法,比如将圆的半径增加到
使其更大(更可见)
通过执行camera=new正交摄影机(Gdx.graphics.getWidth()/10,Gdx.graphics.getHeight()/10)放大屏
我不知道你是否可以在这里问这个问题,但我想知道我的代码是否效率低下,是否将大量工作留给了垃圾收集器,因为我正试图在我的游戏中找到一个滞后的根源
下面是一个类,它通过json文件加载世界
Worldloader.java:
package com.Sidescroll.game.Helpers;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.Sidescroll.g
我在libGDX中有一个形象演员,它有一个身体连接,并通过一个RopeJointDef连接到另一个身体来模拟钟摆。
问题是球移动得非常慢:
世界重力设置为-9.81fb2world=新世界(新矢量2(0,-9.81f),真)
增加重力会改变球的速度,但我想做一个“真实”的模拟。我在一篇帖子中读到,这可能是因为像素与米的比例是1:1。但我不知道如何才能在不破坏舞台的情况下改变这个比例。我希望能得到一些帮助。看看这个,千万不要用屏幕与box2d的1:1比例来做物理实验。Box2d不喜欢大数字,你需
修改前
改后
正如我们所看到的,我想通过代码来实现它。我搜索了很多材料,但他们只是根据自己的颜色制作一个圆角矩形,而不是形成一张图片。任何帮助都将非常感谢。我制作了一种方法,它采用原始的pixmap(图像)并将其与遮罩组合,以将原始图像裁剪为遮罩的形状。我在这里的一个问题中发布了代码:
在您的情况下,遮罩应该是一个圆角矩形。只要alpha通道为“1”,遮罩的颜色就不重要。然后,结果将是将原始图像裁剪为圆角矩形。使用以下方法:
public class RoundImage extends
最近我开始使用libgdx。我想知道哪种编辑器最适合游戏设计。我遇到了这两种编辑器(重叠2d、平铺地图编辑器)。我应该选择哪种编辑器?它们之间的区别是什么?还有其他游戏设计编辑器吗?这取决于具体情况。如果你想制作一个基于平铺的游戏(例如Terraria),那么就使用平铺。如果您想拥有多种不同大小、不同角度的平台,请使用Overlapp2D欢迎来到stackoverflow,请简洁地阅读关于主题问题发布的规则:Stack overflow不是为了征求软件建议。
我创建了一个带有三个可绘制图像的imageButton;
一个是按钮向上、按钮向下和按钮选中。其目的是打开和关闭游戏的声音。一旦声音关闭,应显示选中的图像
我编写了如下代码:
soundButton = new ImageButton(new TextureRegionDrawable(soundTexture1),
new TextureRegionDrawable(soundTexture2), new TextureRegionDrawable(soundTextu
我在屏幕上从Box2D绘制车身时遇到问题
您可以看到Box2DebugRenderer在屏幕上绘制所有旧位置,我如何避免这种情况
忽略render()中除最后一行之外的所有行
public class GameRenderer {
SpriteBatch batcher;
private GameWorld myWorld;
private OrthographicCamera cam;
private Box2DDebugRenderer renderer;
public Array<
我正在检查是否有演员存在,但到目前为止运气不好。我的代码如下所示:
if (prize.getStage() == null)
System.out.println("not on stage");
else
System.out.println("on stage");
根据此链接中的答案:
但我收到以下错误:
“LWJGL应用程序”java.lang.NullPointerException
有没有人知道我做错了什么,或者有没有其他好方法可以检查演员是否在舞台上?正如
我刚刚开始在libgdx中学习游戏开发
这行显示错误
shapeRenderer.begin(ShapeType.Point);
显示的错误为:-
错误:(80,29)错误:找不到符号变量ShapeType
这是我的全班
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.bad
我想在我的libGDX游戏中创建一个覆盖层,以便在登录时使用。基本上,我想在整个屏幕上覆盖一个40%的alpha矩形(这很容易),但我想在感兴趣的区域顶部剪一个圆圈,用户应该集中注意力。有没有一种方法可以创建两种形状或像素贴图不同的纹理
Pixmap overlay = new Pixmap(screenWidth, screenHeight, Pixmap.Format.RGBA8888);
overlay.setColor(0, 0, 0, 0.4f);
overlay.fillRectan
首先,在高中物理中,bod2d摩擦像mu吗
我有一个复合车身,两个轮子在旋转关节上,其中一个有马达。当我试着把它开到30度的斜坡上时,我的驱动轮会打转,而我不会站起来。
我把所有物体上的摩擦力设为0.9。如果我记得我的高中物理,我应该可以爬近45度的斜坡,但我的车轮打滑
第二,当我向1增加摩擦力时,我的模型变得越来越不稳定。我设置了一些角度阻尼,但在爬坡时,物理学有时似乎进入了某种正反馈条件,移动的车辆以愚蠢的速度消失,
有人见过这样的东西吗
谢谢 在我的游戏中,我通过将摩擦力设置为大于1来解决
标签: Libgdx
type-conversionspeech-to-text
如何在LibGDX中将文本转换为语音?我在想,也许可以在libgdx游戏android文件夹中创建一个函数,然后从公共libgdx游戏文件夹中运行这个函数 您不能在LibGDX内部以本机方式执行此操作。不过,我相信Java本身也有专门的文本库。请看
然而,我不确定这在Android上是否有效
希望这有帮助!祝你好运
我需要将矩形纹理扭曲为极坐标纹理。为了阐明我的问题,我将举例说明:
我有这样的形象:
我必须使用着色器将其变形为如下所示:
然后我要把它映射到一架飞机上。
我该怎么做?任何帮助都将不胜感激 这并不特别难。您只需将纹理坐标转换为极坐标,并使用纹理的s方向的半径,以及t方向的方位角
假设您希望以这种方式对四边形进行纹理处理,同时假设您使用标准纹理坐标,因此左下角顶点将具有(0,0),右上角顶点(1,1)作为纹理坐标
因此,在片段着色器中,您只需要将插值的texcoords(为此使用tc)转换为极
我正在使用Scene2d为我的屏幕构建ui
Stage stage = new Stage(new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()));
Skin skin = ResourceManager.getSkin("uiskin");
Label label = new Label("my text", skin);
调用stage.draw时,标签出现在屏幕的左下角。但是我想使用单位大小的视口
f
我想通过平移移动一组演员
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
Gdx.app.debug(TAG," Delta " + deltaX * screen.ppu + " old x "+ screen.getLevelGroup().getX());
float newX = screen.getLevelGroup()
我有一个核心和一个桌面项目,我还需要一个android项目。如果Gradle为我做了所有事情,那么我就不必手动编辑Gradle文件了。请按照以下步骤操作:
进入你的libgdx设置
检查桌面、Android和任何你想包括的东西
生成项目后,将其导入到您使用的任何编辑器中
将“核心”代码复制到新的“核心”项目中
将“桌面”代码插入新的“桌面”项目
享受拥有一个新的Android项目:)
清理了英语,删除了不必要的评论。所以你清理了?但是我的项目已经在中间阶段了,现在我想添加GDX工具。但是在文档
我有一个旋转的圆和一个精灵我想将精灵附加到与旋转的圆碰撞的点执行此任务的数学公式是什么您可以尝试将精灵的原点设置为碰撞坐标。然后旋转它。我认为你的问题更适合于:例如,如果你有碰撞坐标(x,y),那么你应该使用mySprite.setOrigin(x,y)方法将精灵的原点设置为(x,y)。
假设我有一个宇宙飞船的图像,当它从一边移动到另一边时,它应该被扭曲一个角度。当它稳定且不移动时,它与地面和视口投影矩阵平行。在运动过程中,观察者看到的宇宙飞船形状变成了梯形。因此,我正在寻找一种扭曲图像的方法,以便将其“适合”成梯形。这是一张澄清的图片。
这可以通过使用透视照相机和3D环境轻松实现。最大的问题是,游戏已经用正交摄影机和2D逻辑编写。有没有一种方法可以解决这个问题,而不用创建一组新的动画并在3D中覆盖整个项目?这里有一些关于如何制作梯形精灵的讨论,但是,这将花费大量的工作和大量的数
Libgdx
我有两个目标:桶和滴。
我使用精灵来操纵这个对象
如何检查不透明对象片段的重叠?我真的不认为有一个函数可以处理这个问题
我用于删除表示精灵内容不透明的边距
例如,如果我们把代表硬币的矩形的大小放在这张图片上,我们忽略了精灵的透明部分
祝你好运 我真的不认为有一个函数可以处理这个问题
我用于删除表示精灵内容不透明的边距
例如,如果我们把代表硬币的矩形的大小放在这张图片上,我们忽略了精灵的透明部分
祝你好运 你们所说的不透明碎片的重叠到底是什么意思?是否与碰撞有关?Sprite有不
我试图通过触摸按钮来暂停游戏。但我不能
暂停游戏并继续的最简单方法是什么
下面是我的全部代码。我知道这里很乱,但我对这东西真的很陌生
public class PlayScreen implements Screen{
FlapAndFly faf = new FlapAndFly();
SpriteBatch sb;
Random rnd;
Ucak player;
BigBoss boss;
float ani =1f;
Vector
标签: Libgdx
box2dcollision-detection
因此,当检测到传感器碰撞时,传感器所连接的身体将位于检测到的另一个身体上,而当它这样做时,传感器会忽略它检测到的其他身体。问题是,当带有传感器的尸体杀死另一具尸体并因此停止看到它时,传感器范围内的任何其他尸体都不会被检测到,因为它们以前在尸体仍被追逐时被忽略,也就是只被检测到一次
在我杀死被追逐的物体后,有没有办法重置传感器,以便传感器能够拾取范围内的物体?回答:
您可以保留连接传感器的身体接触到的所有内容的列表,并在收到传感器的BeginContact和EndContact回调时根据需要更新该
我最近在Android Studio中使用LibGDX构建多操作系统引擎项目时出错。这是多操作系统引擎控制台的输出:
ERROR: Failed to upgradeonly on device, Unknown error
Command failed: [/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java, -Dfile.encoding=UTF-8, -Duser.country=US, -Dus
1 2 3 4 5 6 ...
下一页 最后一页 共 25 页