如何为一个Unity项目开发共享代码?
如果我在libgdx上写了一个游戏,并且想要一个共享(将来可重复使用)部分,那么我将在Java编写一个库,然后将其安装到本地的Maven/Gradle存储库中.故事的结尾. 如果我正在使用Unity怎么办? 我必须在C#? 中代码 我是否必须使用VisualStudio/Unity IDE/...开发代码? 如何在我的项目中共享它? 解决方案 Unity提供了一种导出您将需要Unity IDE作为UnityPacks打包,但不仅限于语言或外部代码编辑器(您在找到更多舒适的地方代码,并且使用C#或US无关紧要,但是要INPORT/INPORT/EXTORT软件包,您需要UnityEditor ). 此软件包不受代码资产的限制,它包装了Unity支持的任何类型的资产(也是DLL和插件). ps:要记住,统一不提供Java语言支持只是C#和UnityScript,这是与JavaScript相关的最后一个或误认为Java的最后一个. 其他解决方案 Un
14 2024-04-25
编程技术问答社区
为什么我的方法不能在libgdx scene2d按钮被按下之前连续重复一个动作,并在按钮被释放时停止?
我知道已经要求许多问题解决类似的问题,但是我找不到答案. 问题:我为我的libgdx游戏制作了一个屏幕,该游戏看起来像以下屏幕截图. 我只想通过触摸输入.当我按下标记为"较低"的按钮时,它会减少一次中间的数字.我希望它不断减少,直到发布"较低"按钮. 我将按钮放在桌子中,然后将其添加到舞台上.为了实现我想要的东西,我使用了以下方法: TextButton less; //for the button labeled 'lower' .... ***constructor start**** stage = new Stage(new ScreenViewport()); Gdx.input.setInputProcessor(stage); table = new Table(); table.setFillParent(true);
12 2024-04-05
编程技术问答社区
在libgdx中使用scene2d按钮需要帮助
我是libgdx的新手.我正在尝试通过扩展com.badlogic.gdx.scenes.scene.scene2d.ui.button. 来创建一个自定义按钮. 我想要此类中所有与按钮相关的逻辑.但是我没有得到如何使点击工作的方法.我阅读了许多有关添加活动听众的教程,但什么都没有. public class RestartButton extends Button { public RestartButton(ButtonStyle style) { super(style); } @Override public void draw(SpriteBatch batch, float parentAlpha) { batch.draw(TextureProvider.getInstance().getRestart(), 175, 100); } } 我正在尝试在屏幕中添加我的按钮(即显示方法) RestartButton resta
14 2024-04-05
编程技术问答社区
使用libgdx的scene2d按钮缩放功能
我不知道它是否仅仅是我,但是可抽签使我感到困惑.他们是打算保留给定的尺寸的,还是有一种方法可以扩展其中的图像?我了解他们可以使用尼尼尔捕来通过拉伸图像来填充某些区域,但我想扩展其伸展的图像.我正在使用 textbutton 对于我的菜单按钮,但是它们太大了,我很想知道如何扩展它们.我正在从一个地图集中检索皮肤,其中包含九峰图像. 这是设置屏幕: 这是我正在使用的包装中的图像: 这是质地的初始化和皮肤: buttonAtlas = new TextureAtlas(Gdx.files.internal("buttons/buttons.pack")); buttonSkin = new Skin(buttonAtlas); 这是该菜单按钮的初始化. TextButtonStyle textButtonStyle = new TextButtonStyle(); textButtonStyle.up = Assets.buttonSkin.getDrawable("blue
12 2024-04-05
编程技术问答社区
如何使用 LibGDX 制作 TextButtons?
我在YouTube上遵循了一些教程,为我的libgdx游戏制作按钮,并遇到了一个问题,无法加载我的按钮. stage = new Stage(); black = new BitmapFont(Gdx.files.internal("font/black.fnt")); white = new BitmapFont(Gdx.files.internal("font/white.fnt")); atlas = new TextureAtlas(Gdx.files.internal("buttons/button.pack")); skin = new Skin(atlas); table = new Table(skin); table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); TextButtonS
8 2024-04-05
编程技术问答社区
在为libgdx的新Gradle项目建立模型时出错
我在Eclipse中安装了Gradle,并想导入一个Libgdx Gradle项目.但是,当我单击"构建模型"按钮时,我在加载条的约50%处有一个错误.这是问题: > Plug-in: org.springsource.ide.eclipse.gradle.core Severity : error > Message : org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 > Exception Stack trace : java.lang.reflect.InvocationTargetException > at > org.springsource.ide.eclipse.gradle.core.util.GradleRunnable.run(GradleRunnable.java:92) > at > org.eclipse.jface.operation.ModalContext$ModalCo
8 2024-04-04
编程技术问答社区
在用gradle构建的libgdx项目中添加firebase
这是我的gradle.build.我试图添加Firebase依赖性,以便我可以使用简单的登录功能,但是Gradle看起来找不到依赖性.我复制并粘贴了firebase简单登录示例要添加到build.gradle文件中的内容,但我提出了此错误.其中包括build.gradle文件和我尝试从命令行构建它的完整堆栈跟踪. buildscript { repositories { mavenCentral() mavenLocal() maven { url 'https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/' } } dependencies { classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.4' classpath 'com
12 2024-04-04
编程技术问答社区
在LibGDX中使用Java 8
我使用libgdx在Java上写游戏,仅作为目标平台.我刚刚创建了一个新的libgdx项目,并将一些现有代码导入其中,但是现在我遇到了一些错误.具体而言,使用diamond operator.例如,这一行代码: HashMap connectionsMap = new HashMap(); 正在生成此错误: Error:(20, 37) java: diamond operator is not supported in -source 1.6 (use -source 7 or higher to enable diamond operator) 理想情况下,我想使用Java8.保留了我导入的模块中的gradle文件,因此我在整个项目中更改了所有其他build.gradle文件中的sourceCompatibility行,从1.6到1.8,并且我确保在Project Structure > Project > Language
4 2024-04-04
编程技术问答社区
LibGDX 保存纹理以避免上下文丢失
我在基于libgdx的Android应用中具有纹理,它是通过我需要通过上下文损失保存的框架来创建的,似乎唯一有效的方法就是简单地保存数据,无论是作为完整的数据图像或原始数据,然后将其加载到时间时.我正在努力寻找实现这一目标的任何方法,因为我所采用的每一条路线都会以一种或另一种方式完全失败. 我已经搜索了很多,但是我遇到的任何事情都没有解决.我主要只是在寻找涉及正确方向的提示,而不是迄今为止我一直在做的漫无目的的搜索和尝试.我认为最好的事情是将所有数据从纹理转换为某种"缓冲区",内部保存数据,然后重新加载并重新创建纹理,但我不确定最好的方法是什么做到这一点. 解决方案 类应该有助于编写运行时生成的PixMap.不过,它并不是您想要的FBO纹理. (它很容易从Pixmap> Texture,但不容易去做.)如果您用来在Pixmap上使用用于生成数据的原始素(例如,基本的几何原始图) ),这可能是另一种选择.我相信这是最接近的libgdx,它是保存运行时纹理的支持机制,但我不是积
10 2024-04-04
编程技术问答社区
在Libgdx中嵌入一个浏览器
我正在Java编写一个跨平台应用程序(PC,iOS,Android).我想将Facebook集成到此应用程序中.我一直在尝试找到一种统一的登录方法,因为它是跨平台申请.所以我一直在关注 facebook的手册登录尝试一种可以在每个平台上使用的方法.我正在使用 restfb 在我从用户那里获得访问令牌后,可以处理与Facebook的互动.最后一点造成了困难.似乎我让用户访问令牌的唯一方法是让他们从嵌入式浏览器中登录. 现在,我已经看了这个类似的问题,但问题是libgdx与Javafx不兼容.因此,我的问题是:是否有一种相对简单的方法将Web浏览器嵌入通过LibGDX构建的应用中? 解决方案 所以我的问题是:是否有一种相对简单的方法将Web浏览器嵌入通过LIBGDX构建的应用中? nop
6 2024-04-04
编程技术问答社区
Libgdx Box2d屏幕分辨率
我已经阅读了一些有关其他人处理不同屏幕分辨率的事情,但我仍然很困惑. 如果我有要使用的高分辨率图像和精灵,我是否应该使用像1080x1920这样的屏幕,而不是创建一些缩小较低分辨率屏幕的方法?还是我应该尝试将其压缩到一些中间地面分辨率并根据需要进行上下扩展? 还可以给我一个很好的例子,说明如何缩放不同的分辨率?例如,我是否可以看看我的玩家精灵和原始屏幕(假设宽度和高度的1/6)之间的比率是多少,当分辨率发生变化时,我只是尝试保持比率?还是有更好的方法可以做到这一点? 另外一件事,我也将Box2D用于物理和物理,以防万一,因为我已经必须使用像素每米转换的像素在两者之间进行. 解决方案 您不必创建自己的机制,老实说,您不必完全关心解决方案,这要归功于 viewports 阶段 . 视口是某种定义,在调整大小的情况下,由于分辨率更改 - 是否应该伸展?还是保持固定?有多种视口(每种只是另一个类,因此您选择的视口创建选择类的对象),并且每个类型都有自己的行为.
14 2024-04-03
编程技术问答社区
libgdx的世界来筛选位置和因素
我想在一个盒子上画一个纹理. 如何将身体的坐标转换为屏幕坐标? 我知道另一种方式是使用camera.unproject(pos),它与此相似吗? 我看到很多人都在使用诸如world_to_screen = 32的常数,但是我目前没有游戏.这是一个问题,我现在该如何实施?因为似乎正在使用这些因素的人可以轻松地将世界转换为屏幕位置.我目前有一个相机和ExtendViewport camera = new OrthographicCamera(VIEWPORT_WIDTH, VIEWPORT_HEIGHT); viewport = new ExtendViewport(VIEWPORT_WIDTH, VIEWPORT_HEIGHT, camera); camera.position.set(VIEWPORT_WIDTH/2, VIEWPORT_HEIGHT/2, 0f); 视口宽度和高度设置为此 public static final int VIEWPORT_WIDTH
8 2024-04-03
编程技术问答社区
Libgdx数组<>如何获得最后一个项目?
我想更改"桶"的位置,当摄像头y位置高于"最后创建的桶" y位置:" create()"方法 中有我的代码 buckets = new Array(); for(int i=1;i buckets.peek().getBody().getPosition().y){ bucket.repos(rand.nextInt((int)W)/PPM,buckets.size+BUCKET_MARGIN/PPM); } } repos(): public void repos(
16 2024-04-03
编程技术问答社区
为什么DirectionalLight没有投下阴影?
代码: Color color = new Color(1f,1f,1f,0.9f); DirectionalLight directionalLight = new DirectionalLight(rayHandler,200,color,-90f); directionalLight.setSoftnessLength(0); 结果: 当光直接从上方掉落时,为什么它不会从框上铸造阴影? 解决方案 这可能是由几件事引起的.有些需要检查的事情: 检查您的Rayhandler是否设置为模糊.用小物体模糊会隐藏阴影. 检查阴影是在射线处理程序中启用的. 检查环境灯的关闭或低于方向光.如果环境光太高,则可能隐藏阴影. 检查您的对象大于0.1F,因为这是最小的距离Box2Dlights可用来 检查灯未设置为X射线 检查柔软长度.柔软度高的灯光将通过小物体流出光.
18 2024-04-03
编程技术问答社区
需要知道碰撞何时开始,何时结束 box2d
public class Contact implements ContactListener { @Override public void beginContact(Contact contact) { Fixture fa = contact.getFixtureA(); Fixture fb = contact.getFixtureB(); if (fa.getFilterData().categoryBits==16){ ((Gamescreen)fa.getUserData()).starttouch(fa,fb); } @Override public void endContact(Contact contact) { Fixture fa = contact.getFixtureA(); Fixture fb = cont
12 2024-04-03
编程技术问答社区
Libgdx和Box2D 绘制一个自定义的形状
i具有以下形状: http://s16.postimg.org.org/sfhb5wgdx/slime. png 我想在libgdx中绘制它,因为正在使用Box2D Wand将使用collisisions.我听说我可以使用网格来创建这个,但是关于从图像中绘制任何内容的文档并不多.我是否必须自己定义所有要点?是否有更好的方法来从图像中提取形状? 解决方案 使用物理身体编辑器 https://code.google.com/p/box2d-editor/解决您的问题
10 2024-04-03
编程技术问答社区
检测身体的某一特定部分是否与Box2d中的另一身体发生碰撞
请提出一些解释或代码,以了解如何检测到一个身体的特定部分与另一个身体的特定部分之间的碰撞在box2d中使用libgdx.如前所述在这里,但我也想检查 身体是ovelapping . 谢谢, 解决方案 ContactListener为您提供Contact作为回调参数.这些联系人会告诉您哪个Fixtures确实通过contact.getFixtureA()和contact.getFixtureB()碰撞. 人们通常会采取什么措施来找出自己的身体的哪一部分相撞,就是通过body.createFixture(...) body.createFixture(...)来构建它们. 您可以使用Fixture和Body和fixture.setUserData()和body.setUserData()设置用户数据.您可以将固定装置保存在其他地方,然后通过contact.getFixtureA() == xxx.savedFixture进行比较. 可能在您的实体中,例如:
18 2024-04-03
编程技术问答社区
Libgdx Box2D平滑角旋转
我目前正在libgdx开发飞行游戏,您可以使用鼠标光标控制鸟的旋转.现在,鸟将立即旋转到光标位置.我的目标是使鸟旋转滞后一点,以使飞行看起来更加光滑.旋转阻尼无法使用,因为我正在使用setTransform()方法.我对任何建议感到非常高兴,这是控制旋转的代码,称为渲染方法中的每个帧: //get cursor pos cursorPos.set(Gdx.input.getX(), Gdx.input.getY(), 0); camera.unproject(cursorPos); //get bird pos birdPos.set(body.getPosition().x, body.getPosition().y, 0); //birdpos-cursorpos birdPos.sub(cursorPos); //new vector which is pointing from bird to cursor
20 2024-04-03
编程技术问答社区
来自libgdx'版本的box2d的一个奇怪的、隐秘的错误,涉及到一个鼠标连接点
代码 有我的Screen对象的代码.底部的阵列和Vector2 s的垃圾只是猫的一长串型号.我的目标是建立一个 http://catsinspace.co.nf ,我的网站,以了解如何了解如何了解使用libgdx及其Box2D端口.我试图使鼠标偶会起作用,但是我显然不明白groundBody尽管有几个小时的谷歌搜索.这是我尝试毫无结果搜索的我奇怪而神秘的错误: AL lib: 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/Dynamics/Joints/b2MouseJoint.cpp, Line 125 Expression: d + h * k > 1.19209289550781250000e-7F 当
10 2024-04-03
编程技术问答社区