Questions tagged «java»

Java既是一种流行的面向对象的编程语言,又是运行时环境,它允许Java程序在大多数硬件和软件平台上保持不变地运行。

2
LibGDX-检查当前是否在Android /台式机上
我正在使用LibGDX和flixel-android构建桌面/ Android游戏。感觉应该有一种检查您当前是否在Android设备,桌面等设备上运行的方法,但是我在任何地方都找不到它。我是否应该将其从各个发射器中传下来?当然LibGDX可以告诉我吗?
16 java  android  libgdx 

6
我可以在C ++中为移动平台开发游戏吗?
我精通C ++和C,也有使用C ++开发AAA游戏的经验。现在,我毫不客气地考虑着手开发iOS或Android手机游戏。不幸的是,我不了解Objective-C和Java,也没有勇气学习它。因此,如上所述,在不使用JAVA和Objective-C的任何声明的情况下,是否有可能在C ++中进行移动开发?
16 c++  java  android  ios  objective-c 

8
如何为地图生成创建平铺的固体噪声?
大家好,我试图弄清楚如何在代码中生成可分割的分形(对于游戏地图,但这无关紧要)。我一直在尝试修改GIMP附带的Solid Noise插件(我对如何该代码有效),但我无法让我正常工作。 到目前为止,我修改过的代码(Java) GIMP的固体噪声模块,我的代码基于(C) 这是我想要实现的目标,但这 就是我得到的目标 因此,如果任何人都可以看到我做错了什么,或者有建议我可以做些不同的事情,我将不胜感激。提前致谢。 如果我要问的是很多事情,或者是人生中的巨大失败,我深表歉意。

10
基于种子的随机噪声
我目前正在开发一个程序,该程序应基于像素的“坐标”在屏幕上生成随机噪声。每次重新启动程序时,坐标应具有相同的颜色。但是,使用Java的util.Random,我得到的结果并不像我想要的那样随机: 我以为如果使用组合坐标(例如,由两个坐标彼此相邻形成的整数),则每个坐标将具有不同的数字。通过使用该数字作为种子,我希望为每个坐标获得一个不同的随机数,以用于该坐标的rgb值。 这是我使用的代码: public class Generate { static Random Random; public static int TileColor(int x, int y){ Random = new Random(Integer.valueOf(Integer.toString(x)+Integer.toString(y))); int b = 1 + Random.nextInt(50); int g = 1 + Random.nextInt(50); int r = 1 + Random.nextInt(50); int color = -Color.rgb888(r, g, b); return color; } } 程序创建的模式是由于Java的Random函数的工作方式还是我做错了,应该尝试其他方法吗? …
16 java  random 

4
程序生成特定区域的建筑物
我和一个团队正在开发一个工厂建造者游戏,该游戏在游戏开始时为玩家提供一个随机的工厂。为了确保有一种“公平”的感觉,理想情况下,随机生成的工厂的面积应在(占位符值)30的几个单位内。 编写满足这些规范的基本随机矩形生成器相对简单,但我们的目标是使工厂变得更加复杂,可能由2个,3个甚至4个相交的矩形组成,从而产生更复杂的形状(例如L, U和O形建筑物)。 我尝试生成一个随机矩形,然后使用基本代数填充第二个矩形,但是到目前为止,我并没有实现超过2个矩形的运气,即使如此,我对仅2个矩形设计的结果也不满意。 一些更相关的信息:2D自上而下一些机制是factorio样式,因此房间应该具有合理的长度和宽度,以便为机械留出空间(目前在Java和Lua中使用)(可以根据需要使用内置的库) 提前致谢! 编辑:当我说“好”或“坏”的输出时,不良的输出将是具有播放器无法使用的空间的任何输出。工厂形状限制了玩家可以放置工厂机器(例如传送带)的位置。理想情况下,工厂的区域不应只有1-2个块的宽度,形状不应该是一个或两个大的矩形,而将1-2个块的线“垂悬”到一侧。一个好的输出是所有地板空间都是“可行的”,因此所有区域至少应为3-4块宽。好的输出并不一定总是很复杂(可以使用1或2个矩形),但如果由超过1-2个矩形组成,则输出的机会就很大。

3
如何同时有效地编码客户端和服务器?
我正在使用客户端-服务器模型编写游戏代码。在单人游戏上玩时,游戏会启动本地服务器,并像远程服务器(多人游戏)一样与之交互。我这样做是为了避免编写单独的单人和多人代码。 我刚刚开始编码,遇到了一个主要问题。目前,我正在Eclipse中开发游戏,并将所有游戏类组织到软件包中。然后,在服务器代码中,我只使用客户端软件包中的所有类。 问题是,这些客户端类具有特定于呈现的变量,显然不会在服务器上执行。 是否应该创建客户端类的修改版本以在服务器中使用?或者我应该只使用布尔值修改客户端类,以指示其客户端/服务器是否在使用它。我还有其他选择吗?我只是想过也许将服务器类用作核心类,然后通过渲染内容对其进行扩展?

1
A *导航网格路径查找
因此,我一直在这个名为Greenfoot的框架中制作这款自上而下的2D Java游戏,并且我一直在为您要战斗的家伙开发AI。我希望他们能够现实地环游世界,因此我很快意识到,除其他事项外,我需要某种寻路。 我已经制作了两个A *原型。一个是基于网格的,然后我制作了一个与航路点一起使用的栅格,因此现在我需要找到一种方法,从障碍物/建筑物的二维“图”获取可以作为路径的节点图。实际的寻路似乎很好,只是我的打开和关闭列表可以使用更有效的数据结构,但是如果需要的话,我会解决的。 我打算出于所有原因在ai-blog.net上使用导航网格。但是,我面临的问题是,A *认为从多边形中心/边开始的最短路径不一定是通过节点的任何部分的最短路径。为了获得更好的主意,您可以查看我在stackoverflow上提出的问题。 关于可见度图,我得到了很好的答案。从那以后,我已经购买了《计算几何:算法和应用程序》这本书,并进一步阅读了该主题,但是我仍然偏爱导航网格物体(请参阅Amit关于路径查找的注释中的 “ 管理复杂性 ” )。(作为附带说明,如果第一个和最后一个不被遮挡,也许我可以使用Theta *将多个航路点转换为一条直线。或者每次我移回最后一个航路点之前,查看是否可以从这个) 因此,基本上我想要的是一个导航网格物体,一旦将其通过漏斗算法(例如,来自Digesting Duck的那个),我将获得真正的最短路径,而不是仅是从节点到节点的最短路径,但不是实际的最短距离,因为您可以穿过一些多边形并跳过节点/边。 哦,我也想知道您建议如何存储有关多边形的信息。对于航路点原型示例,我只是将每个节点作为一个对象,并存储了可以从该节点访问的所有其他节点的列表,我想这对多边形不起作用吗?以及如何判断多边形是可打开/可穿越的还是实心的?如何存储组成多边形的节点? 最后,作为记录:即使确实已有其他解决方案,我也希望自己从头开始编写此程序,并且我不打算在此游戏以外的任何其他程序中使用此代码,所以这无关紧要它将不可避免地是劣质的。

3
如何使OpenGL纹理缩放而不会变得模糊?
我正在通过LWJGL使用OpenGL。 我有16x16的16x16纹理四边形渲染。当我更改其比例大小时,四边形会变大,然后随着变大而变得模糊。 像在《我的世界》中一样,如何使它缩放而不变得模糊。 这是我的RenderableEntity对象中的代码: public void render(){ Color.white.bind(); this.spriteSheet.bind(); GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0,0); GL11.glVertex2f(this.x, this.y); GL11.glTexCoord2f(1,0); GL11.glVertex2f(getDrawingWidth(), this.y); GL11.glTexCoord2f(1,1); GL11.glVertex2f(getDrawingWidth(), getDrawingHeight()); GL11.glTexCoord2f(0,1); GL11.glVertex2f(this.x, getDrawingHeight()); GL11.glEnd(); } 这是游戏类中initGL方法的代码 GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glClearColor(0.46f,0.46f,0.90f,1.0f); GL11.glViewport(0,0,width,height); GL11.glOrtho(0,width,height,0,1,-1); 这是执行实际绘制的代码 public void start(){ initGL(800,600); init(); while(true){ GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); for(int i=0;i<entities.size();i++){ ((RenderableEntity)entities.get(i)).render(); } Display.update(); Display.sync(100); if(Display.isCloseRequested()){ Display.destroy(); System.exit(0); } } }
15 opengl  java  lwjgl  slick 

1
使用OpenGL(LWJGL)制作HUD / GUI
我处于游戏开发阶段,需要制作HUD或GUI。我从来没有涉及到这一部分,所以我不知道它是如何完成的。我尝试在屏幕上的固定位置渲染一个简单的四边形,但是有一个问题。为了使我的相机与正交摄影配合使用,我使用以下方法: public void lookThrough() { GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); GL11.glOrtho(position.x, position.x + Display.getDisplayMode().getWidth()/zoom, position.y + Display.getDisplayMode().getHeight()/zoom, position.y, -1, 1); GL11.glMatrixMode(GL11.GL_MODELVIEW); } 我看不到如何使用这种方法将某些东西固定在屏幕上?可以解决吗?谢谢 :)
15 opengl  java  gui  lwjgl 

4
如何实施全球高分阶梯?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 3年前关闭。 我可以建立任何现有框架吗?我应该建立自己的吗?如何防止假分数被发布到该分数?


2
如何创建世界治愈波效果?
我想将黑暗和令人沮丧的背景实时更改为快乐的草皮背景,以使快乐背景以游戏角色周围的半径显示。 如果愿意的话,幸福的力量场。 在自定义视图中渲染到画布时,如何尽可能高效地完成此操作? 更新: 这就是我的脑海: private int hModeX, hModeY; private float hModeRadius = 0.1f; private float hModeStart = 0; happyModeBg = Bitmap.createScaledBitmap(happyModeBg, getWidth(),getHeight(), true); hModeX = getWidth()/2; hModeY = getHeight()/2; private void initHappyMode(Canvas canvas){ hModeRadius = 75 * thread.getDelta(); if(hModeRadius > 500) { hModeStart = timestep; //What is timestep? } …

2
领土巡逻计划
我正在开发一个游戏/模拟,代理商在其中争夺土地。我的状况如下图所示: 这些生物走来走去,占据一块土地,如果他们有空的话,他们会踩到它们。为了使这一点变得更有趣,我想介绍“巡逻”行为,以便探员实际上是在他们的土地上走来走去,从任何可能想要入侵的入侵者那里巡逻。 在技​​术方面,每个正方形均表示为x,y位置以及表示其边长的尺寸。它还包含有关谁占据广场的信息。所有正方形均存储在中ArrayList。 如何介绍巡逻行为?我想要的是让每个特工巡逻该区域的某个部分(他们在他们将巡逻的区域之间划分)。我发现的主要问题如下: 如图所示,土地面积非常随机。很难理解各个方向的界限。 特工应如何分割地区巡逻? 土地区域可能是不相交的,因为对方的队伍可能会从中间占据领土。 我的想法是在每个方向上取最远的正方形,将其视为该区域的边界,并根据这些边界划分区域,但这可能包括许多无关的土地。 我应该如何解决这个问题?
14 java  ai  grid 

2
图形未显示在OUYA上
我希望现在问OUYA开发人员问题还为时过早,但是我刚刚获得了我的开发套件,我想让我的游戏尽快运行!我正在使用LibGDX作为我的游戏框架,并在OUYA上启动了Android后端。一切似乎都很好,只不过没有显示我的图形!由于Box2D的DebugDraw显示了我的物理状态,所以我只能说出是怎么回事。我正在使用LibGdx的Spritebatch和OpenGL ES 2.0。一切在我的台式机和Android(电话)后端上均能正常运行。 我在处理OUYA的资源时做错了吗?可能是什么问题呢?可能是因为我将图形存储在资产文件夹中而不是/ res中吗? 编辑:这是一个logcat输出:http : //pastebin.com/BbPyPCcR
14 java  android  libgdx  ouya 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.