Articles of Java

计算一个轨道和方法velocties

我在我的游戏中有无人机,需要接近并绕行节点并射击。 问题是我想远离真实的物理模拟,这意味着我不想让节点和无人机成为一个群众,无人机的推进器是一个力量。 我只想find进入轨道的最佳方法。 关于使用贝塞尔曲线并做到这一点,有一个相当不错的答案,但这基本上是两个固定点之间的一个补间。 随着无人机进入轨道,节点也在移动。

虚拟屏幕大小与libgdx和GLES 2

我一直在尝试为我的libgdx desktop-android游戏使用虚拟屏幕大小。 我想总是使用16:9的宽高比,但是虚拟屏幕大小,所以一切都会根据设备的大小自动调整。 这篇文章说明了这个过程,但是当camera.apply(Gdx.Gl10)被调用时,我的游戏崩溃了。 这是因为我使用GLES 2.0(因为不必使用2个纹理尺寸的倍数)。 正如OrthographicCamera文档中所述,apply方法仅适用于GLES 1和GLES 1.1。 有没有另外一种方法将GL转换应用到相机,以便我可以使用虚拟屏幕分辨率? 不得不手动调整一切,这是一个全面的痛苦。 非常感谢。

如何在Java中使用基于平铺的移动来移动精灵?

所以,我是Java的新手,我想要一个精灵在屏幕上移动,就像一个基于图块的运动。 我真的想要一些帮助和一些资源或教程可以工作。 我做了一点C#,但我似乎无法得到它。

屏幕周围的小地图,代码提供

我基本上想要做的就是现在很多FPS的HUD。 当目标不在屏幕上时,屏幕的周边会显示一个小图标/符号,基本上指向目标。 我在2D工作,我试图让屏幕上的敌人(自上而下)通过屏幕周边(矩形视图,非常标准)周围的小点显示其位置。 简单地说,我试图在知道其他一切时发现红点的价值: 这是我的代码,虽然它似乎是一半function,有时它会做有趣的事情。 // Scan through enemiesRef list, and update dots to draw. // —————————————————— Enemy enemyRef; float a, b, x, y; float screenRatio = frustumWidth / frustumHeight; float minX = topLeft.x; float maxX = topLeft.x + frustumWidth; float minY = topLeft.y; float maxY = topLeft.y + frustumHeight; // Loop through each enemy. […]

JBox2D – 如何获得顶点位置?

我为jbox2d创建了一个三角形 public void createTri(){ PolygonDef shape = new PolygonDef(); shape.density = 2.0f; shape.friction = 0.8f; shape.restitution = 0.3f; shape.addVertex( new Vec2(35/RATE,35/RATE) ); shape.addVertex( new Vec2(65/RATE,35/RATE) ); shape.addVertex( new Vec2(45/RATE,55/RATE) ); BodyDef bodyDef = new BodyDef(); bodyDef.position.set(50/RATE, 50/RATE); bodyT= world.createBody(bodyDef); bodyT.createShape(shape); bodyT.setMassFromShapes(); } …但画在canvas上时,如何获得所有顶点的位置? 与bodyT.getPosition().x和.y我只能得到中心点。 谢谢!

速度=距离/时间的Android游戏开发问题

我一直在为一个对象编码速度。 我已经做到了这一点,对象将从屏幕的一端移动到另一端,速度取决于屏幕的大小,我已经做出了这个决定,所以屏幕需要一秒的时间才能通过屏幕。 所以我已经制定了代码的速度,但是当我去分配速度它告诉我强迫closures,我不明白为什么。 这里是代码: 主游戏代码: @Override protected void onDraw(Canvas canvas) { setBlockSpeed(getWidth()); } private int blockSpeed; private void setBlockSpeed(int screenWidth){ Log.d(TAG, "screenWidth " + screenWidth); blockSpeed = screenWidth / 100; // 100 is the FPS.. i want it to take 1 second to pass the screen Math.round(blockSpeed); // to make it a whole number block.speed […]

使用java有效实现游戏视图

我正在用java编写一个2D游戏。 游戏机制类似于神奇宝贝游戏男孩高级系列,如火红,ruby,钻石等。 我需要一种方法来绘制大概5000×5000像素的地图,然后在整个地图中加载个别的游戏精灵,就像渲染一个场景一样。 游戏精灵可能是地形物体,树木,岩石,灌木丛,房屋,城堡,NPC等等。 但是我也需要实现一些专注于播放器的相机视图类。 摄像机视图类需要遵循整个游戏地图中的角色移动,但是也需要将地图的其余部分从用户的视野中剪除,以便用户只能看到与玩家的精灵相邻的任意邻近。 接近的范围可以是围绕玩家精灵的每个方向500像素的东西。 最重要的是,我需要为游戏世界实现一个独立的分辨率,以便游戏视图在所有屏幕尺寸和屏幕分辨率上是统一的。 我知道这听起来像一小撮,可能属于多个问题的范畴,但这些问题都是相关的,任何建议都将非常感激。 我不需要一个完整的源代码清单,但也许有一些指向有效的Java API类,可以做我需要做的更简单。 另外任何algorithm/devise建议也会大大受益。 我正在试图在下面的源代码格式中做的例子 package myPackage; /** * The Purpose of GameView is to: Render a scene using Scene class, Create a * clipping pane using CameraView class, and finally instantiate a coordinate * grid using Path class. * * Once all of these things have […]

更好的方式基于偏航上坡/下坡?

好的,所以我得到了一些移动代码,我想我将需要手动input什么时候上坡/下坡。 我所有的工作是坡度的正常,vector,我目前和以前的位置,和我的偏航。 根据我的偏航,是否有更好的方法来旋转我的上坡或下坡? Vector3f move = new Vector3f(0,0,0); move.x = (float)-Math.toDegrees(Math.cos(Math.toRadians(yaw))); move.z = (float)-Math.toDegrees(Math.sin(Math.toRadians(yaw))); move.normalise(); if(move.z < 0 && slopeNormal.z > 0 || move.z > 0 && slopeNormal.z < 0){ if(move.x < 0 && slopeNormal.x > 0 || move.x > 0 && slopeNormal.x < 0){ move.y += slopeVec.y; } } if(move.z > 0 && slopeNormal.z […]

Java的Slick2d – 鼠标的select如何考虑到相机

当我移动它显然改变了视口,所以我的鼠标selectclosures。 我的相机只是一个浮动X和Y,我用g.translate(-cam.cameraX + 400,-cam.cameraY + 300); 翻译graphics。 我有硬编码的数字仅用于testing目的。 我将如何考虑相机,使我的鼠标拾取正常工作。 double mousetileX = Math.floor((double)mouseX/tiles.tileWidth); double mousetileY = Math.floor((double)mouseY/tiles.tileHeight); double playertileX = Math.floor(playerX/tiles.tileWidth); double playertileY = Math.floor(playerY/tiles.tileHeight); double lengthX = Math.abs((float)playertileX – mousetileX); double lengthY = Math.abs((float)playertileY – mousetileY); double distance = Math.sqrt((lengthX*lengthX)+(lengthY*lengthY)); if(input.isMousePressed(Input.MOUSE_LEFT_BUTTON) && distance < 4) { if(tiles.map[(int)mousetileX][(int)mousetileY] == 1) { tiles.map[(int)mousetileX][(int)mousetileY] = 0; } […]

爪哇 – 瓷砖引擎改变数组中的数字不改变纹理

我从一个txt文件中绘制我的地图。 我是否必须写信给文本文件才能注意到我所做的更改? 现在它改变数组中的数字,但纹理贴图不会改变。 我必须做的不仅仅是改变数组中的数字吗? public class Tiles { public Image[] tiles = new Image[5]; public int[][] map = new int[64][64]; private Image grass, dirt, fence, mound; private SpriteSheet tileSheet; public int tileWidth = 32; public int tileHeight = 32; Player player = new Player(); public void init() throws IOException, SlickException { tileSheet = new SpriteSheet("assets/tiles.png", […]