Questions tagged «java»

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

8
将2D曲线转换为点以进行数据存储
我创建了一种算法,可以将任何曲线(即路径)转换为最小点数,以便将其保存到文件或数据库中。 该方法很简单:它以相等的步长移动三个点,并测量这些点形成的线之间的角度。如果角度大于公差,则会在该点处创建一条新的三次曲线。然后它将线向前移动并再次测量角度… 对于那些知道Android Path类的人-请注意dstPath是一个自定义类,它将点记录到Array中,以便稍后保存点,而srcPath是Regions联合的结果,因此对我没有关键点保存。 问题在于,如下面的代码所示,该圆形看起来并不平滑,该图像是由下面的代码生成的,其中的源路径由一个完美的圆形和矩形组成。我试图更改公差角度和步长,但没有任何帮助。我想知道您是否可以建议对此算法进行任何改进或采用其他方法。 编辑:我现在为使用Android java的用户发布了完整的代码,因此他们可以轻松地尝试和试验。 public class CurveSavePointsActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new CurveView(this)); } class CurveView extends View{ Path srcPath, dstPath; Paint srcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); Paint dstPaint = new Paint(Paint.ANTI_ALIAS_FLAG); public CurveView(Context context) { super(context); srcPaint.setColor(Color.BLACK); srcPaint.setStyle(Style.STROKE); srcPaint.setStrokeWidth(2); srcPaint.setTextSize(20); dstPaint.setColor(Color.BLUE); dstPaint.setStyle(Style.STROKE); dstPaint.setStrokeWidth(2); …

2
我可以将Minecraft克隆设为开源吗?
我在业余时间开发Minecraft之类的游戏。事实上,这不是“ 喜欢我的世界”,因为我想使它成为一个接近的,可以复制(意为锻炼我自己在16岁的时候,只是因为它是有趣的我)。当然,我不是使用Minecraft Coder Pack(MCP)复制代码。我使用OpenGL在Java中从头开始游戏。 因此,我的问题是:是否可以将我的源代码在线存储在GitHub,Google Code等公共源代码版本控制主机上(这使我的代码开源,因为我不想支付使用私有代码的费用)主办)?当然,我不想出售该游戏,因为该游戏来自Notch。 可能很重要的一个细节是,我正在使用自定义纹理包(因此,不是真正的Minecraft附带的那个)。 如果允许,是否有任何规则?我看了一下这个页面,但似乎他对此没有说什么:http : //www.minecraft.net/terms 编辑:有一个来自Begla的名为Terasology(以Blockmania命名的游戏)的游戏。这是一个不错的项目,但它并不意味着它与Minecraft尽可能接近。该项目是开源的。

5
精灵作为演员
我没有游戏开发方面的经验,但是是一名程序员。据我所知,在Scala语言中,您可以使用Actors进行可扩展的多任务处理,非常稳定。您甚至可以立即运行成千上万个它们,而不会出现问题。 所以我想,也许您可​​以将它们用作2D精灵的基类,以突破需要遍历所有精灵并移动它们的游戏循环事物。他们基本上会移动自己,受事件驱动。 这对游戏有意义吗?像这样多任务吗?毕竟,它将在JVM上运行,尽管如今这应该不成问题。 编辑: 摸索了一段时间之后,我注意到该想法只有一个真正的优势:多核支持。一个简单的游戏循环将仅在一个内核上运行,并将依次处理所有事情。 由于现代计算机,即使是现在的家用计算机,如今都内置了两个或多个内核,我认为让游戏程序员有效地使用其他内核是一个好主意。毕竟,我认为通常玩家只会在他的八核计算机上运行游戏,所以为什么不这样做呢。 我看到的另一个优点是,在Scala中,您可以拥有RemoteActors,可以用相同的方式来对待它,但可以在另一台计算机上运行。因此,这也许也可以简化网络游戏。 我打算尽快将其构建到我的Scala 2D引擎中。

5
是否有一个类似XNA的Java库?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我很想知道是否有一个类似XNA的Java库。也就是说,一个图书馆 处理游戏循环-即您只需实现一个现有方法,它将在每一帧被调用。 处理渲染-即您只告诉它要渲染什么,它将负责将其显示在监视器上,隐藏诸如硬件加速之类的实现细节。 包含许多用于图形,声音和用户输入选项的有用方法。 我对同时支持2D和3D选项的库感兴趣。
12 java 

5
2D游戏开发人员和Java。除了OpenGL还有其他可能性吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 2年前关闭。 我最近开始用Java编写一些基本的OpenGL东西,但是OpenGL和DirectX对我来说难以处理和理解,我很快就感到无聊。 现在我想知道,除了OpenGL(或DirectX)之外,是否还有其他可能性来制作简单的2D图形并开始游戏开发,即使它有限。当我更有经验时,我可能仍会使用OpenGL。
12 2d  java 

3
Unity是否允许您使用Java编写代码?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 2年前关闭。 我对Unity3D的经验还很陌生,但是我对Java和Android开发非常了解。我真的很困惑,如果开发Android应用程序完全需要Java?我在Unity文档中的某处读到,在Unity中向对象添加行为需要使用脚本,并且unity仅支持C#,.Net和Boo脚本。根本没有使用Java吗?

4
是否可以在Java游戏中实现Steamworks功能?怎么样?
我有一个基本的游戏,我想最终将其变成更好的东西。到目前为止,该游戏是全Java的,但是我想在我的游戏中实现Steamworks SDK(这样它就可以取得成就,获得Workshop等)。但是Steamworks需要C ++。是否可以使我的完整Java游戏实现Steamworks SDK而无需用C ++重写它?我目前正在为游戏使用jMonkey Engine 3。
11 java  steam 

2
如何将精灵朝其面对的方向移动?
我正在使用Java / Slick 2D。我正在尝试使用鼠标旋转精灵,并使用箭头键移动精灵。我可以让精灵旋转没有问题,但是我不能让它朝应该的方向移动。当我点击“前进”时,子画面不一定会移向鼠标。实际上,它只会真正移到屏幕的左侧。我确信必须有一些标准代码,因为许多游戏都使用这种风格的动作。谁能帮我解决这个三角帆的问题?谢谢 编辑:这是旋转代码(它做其他奇怪的事情: https //stackoverflow.com/questions/12610320/why-is-my-image-rotating-off-center) int mX = Mouse.getX(); int mY = HEIGHT - Mouse.getY(); int pX = sprite.x; int pY = sprite.y; int tempY, tempX; double mAng, pAng = sprite.angle; double angRotate=0; if(mX!=pX){ mAng = Math.toDegrees(Math.atan2(mY - pY, mX - pX)); if(mAng==0 && mX<=pX) mAng=180; } else{ …

3
如何沿着另一个对象的圆周移动一个对象?
我太过数学了,很难受,但对你们中的某些人来说应该是小菜一碟。我想在一个简单的圆形路径上沿对象的年龄或周长围绕另一个对象移动对象。目前,我的游戏算法知道如何移动精灵并将其放置在障碍物的边缘,现在它会根据各种条件等待下一个点的移动。 因此,这里的数学问题是如何得到(AX,AY)和(BX,BY)位置,当我知道中心(CX,CY),目标位置(OX,OY)和需要移动的距离(d)
11 java  mathematics 

3
使Android游戏适应不同的屏幕尺寸
我正在制作仅纵向屏幕方向的Android游戏。当我在手机上运行它时效果很好,但是当我在平板电脑上运行它时,即使屏幕尺寸更大,所有位图的大小都相同。有什么方法可以使位图即使在不同尺寸的屏幕上也保持相同的比例?
11 java  android  screen 

4
我应该移动世界还是移动玩家?
我将要开始开发一款侧向滚动游戏,该游戏的目标是在着陆之前在水平轴上尽可能移动。请注意,我不需要再沿水平轴返回。 我正在使用使用OpenGL和Box2d的Android版AndEngine进行开发。 在开始之前,我需要确定一些重要的事情:我应该使用玩家周围的世界来模拟运动还是实际移动玩家并跟随他使用游戏引擎的摄像头功能? 两种方法似乎都有不同的长处和后备,所以我不知道哪种方法最好。例如,什么将使在途中增加电源并具有良好的动画背景变得更容易? 谢谢!

2
如何有效开发Android游戏?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我已经附上了我用油漆制作的流程图的图像。 该图显示了我想如何开发自己的游戏。我想要一款运行良好的游戏,它具有易于更新的智能编码,并且随着时间的推移具有广告功能。我的目标平台是Android智能手机,所有代码将使用具有XML扩展资源的Java编写,如果那很重要的话。我不是在寻找硬代码,尽管伪代码会有所帮助,但我还是更喜欢建议和专业意见。 我的问题是: 这是编写游戏程序的好方法还是有更好的方法来进行游戏?是否需要进行任何修改?任何建议都是有用的,因为我没有游戏编程方面的经验,所以我更喜欢那些写过几款游戏并且从经验中知道应该如何设置其代码才能有效运行的人的建议。

1
由于网络集成,我是否应该编写自己的物理引擎?
我目前正在开发自上而下的实时僵尸射击游戏。我正在使用JBox2D作为我的物理引擎用Java编写此代码。我本周一直在编写网络代码,现在可以进行物理同步了​​。 我打算使用预测性客户端/权威服务器模型,只要服务器稍后批准,客户端就可以自由移动。这涉及到客户端向服务器发送包含运动数据的数据包,服务器计算延迟,并从较早的状态重新模拟环境。 我的问题是,我当前的物理引擎JBox2D(基本上是Box2D的端口)不支持回滚世界,而且显然不容易序列化世界数据。我有2个解决方案,可以修改/扩展当前的物理引擎,也可以编写自己的引擎。 编写我自己的物理引擎的原因- 我可以删除不必要的功能。在自上而下的游戏中,我真的只需要碰撞机制和处理力。不涉及重力。 我可以更好地理解代码,并且[最有可能]更容易实现回滚功能 扩展/修改JBox2D的原因 编写我自己的物理引擎将是大量的工作,可能会很麻烦 JBox2D有一个广泛支持的社区,可以为我的开发人员提供帮助 JBox2D针对碰撞检测等方面进行了特定的优化,使其非常有用 已经完成了一些工作,但是几乎没有共享代码 那您有什么意见。这是我的第一款游戏,我绝对不是专业的游戏开发商。如果有人可以提供一些指向该地区已经完成的工作的链接(最好使用JBox2D / Box2D / Java)。

1
如何随机放置不重叠的实体?
我正在为正在开发的游戏创建随机生成的环境。我正在使用OpenGL和编码Java。 我试图将树木随机放置在我的世界中(以创建森林),但是我不希望模型重叠(当两棵树之间的距离太近时会发生这种情况)。这是我在说什么的图片: 如果需要,我可以提供更多代码,但这是必要的代码片段。我存储在我的对象ArrayList有List<Entity> entities = new ArrayList<Entity>();。然后,我使用以下方法将该列表添加到该列表中: Random random = new Random(); for (int i = 0; i < 500; i++) { entities.add(new Entity(tree, new Vector3f(random.nextFloat() * 800 - 400, 0, random.nextFloat() * -600), 0, random.nextFloat() * 360, 0, 3, 3, 3); } 其中每个都Entity遵循以下语法: new Entity(modelName, positionVector(x, y, z), rotX, …
11 opengl  java  objects 

3
如何使实体向某个方向移动?
我有一个Entity实例,每个游戏滴答声都会更新。让我们假设实体不断前进。我希望能够将实体的角度赋予使其朝该方向移动的功能: moveForward(90);应该使它们向右移动。如果我宣布轮换为global int,那么 moveForward(rotation); rotation++; 会使它的运动跟踪一个小圆圈。 我怎样才能做到这一点?我认为这涉及向量数学。我什么都不知道,所以简短的解释会很好。

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.