Articles of Java

绘制文本与油滑

我一直在试图画一个文本到使用油滑显示。 但是,当我将TrueTypeFont绘制到屏幕上时,会将其倒过来,并使整个显示变黑。 这只是整个游戏代码的一部分,我认为这足以说明问题了。 我是LWJGL和Slick的新手,所以这可能是一个愚蠢的问题。 public Game(String name, int width, int height) { this.name = name; this.width = width; this.height = height; try { Display.setDisplayMode(new DisplayMode(width, height)); Display.setTitle(name + " " + version); Display.setResizable(true); Display.create(); } catch (LWJGLException e) { e.printStackTrace(); Display.destroy(); return; } TrueTypeFont font; Font awtFont = new Font("Arial", Font.PLAIN, 24); font = new […]

我怎样才能围绕它的中心旋转一个四边形?

我的代码是: GL11.glPushMatrix(); // rotate around center GL11.glTranslatef(-200/2, -200/2, 0); GL11.glRotatef(30, 0.0f, 0.0f, 1); GL11.glTranslatef(200/2, 200/2, 0); // draw quad GL11.glBegin(GL11.GL_QUADS); GL11.glTexCoord2f(0f,0.5f); GL11.glVertex3f(50,50,1); GL11.glTexCoord2f(0.5f,0.5f); GL11.glVertex3f(50+200,50,1); GL11.glTexCoord2f(0.5f,0f); GL11.glVertex3f(50+200,50+200,1); GL11.glTexCoord2f(0f,0f); GL11.glVertex3f(50,50+200,1); GL11.glEnd(); GL11.glPopMatrix(); 而不是围绕中心旋转,我正确地做到这一点? 如果不是,我会怎么样?

Java – 与recursion和矩形放置的麻烦

我正在使用Android API,并使用矩形的RectF类。 我有一次在屏幕上的块列表。 每个块都被赋予一个随机的位置,然后我遍历所有的瓷砖,检查是否有交集。 如果存在,则recursion调用该方法来获得一个新的随机位置,并对照所有其他的瓷砖进行检查。 我觉得这应该是完美的,除了一件可能影响它的东西。 由于recursion会打开一个方法的很多实例,所以它需要把它们closures,所以我不知道矩形是否刚刚被绘制在初始位置,其余的调用什么都不做。 我尝试了不同的方法,这似乎是最接近的,但有些奇怪的事情正在发生,我无法弄清楚。 启动方法: private void start() { timerTask = new TimerTask() { @Override public void run() { if(Game.STATE == Game.State.Playing) { removeFailedTiles(); Random deathRate = new Random(); int i = deathRate.nextInt(100); if(i % 10 == 0) { System.out.println("Death tile"); activeDeathTiles.add(new DeathTile(getRandomPosition())); //System.out.println(activeDeathTiles.toString()); } else { System.out.println("Normal Tile"); activeTiles.add(new Tile(tileLifetime, […]

AssetManager在libgdx中正确使用

我是libgdx的初学者,我正在编写一个简单的游戏。 这个游戏就像一个字拼图,每个字母都是一个纹理。 加载第一级之前,我需要加载到内存26纹理,每个字母的字母,还有一个英文字典存储在内存中作为.txt文件。 问题是我的字典需要被处理并加载到内存中(复杂性Big-O是O(n),其中n大约是200k)。 我应该在哪里处理? 在资产管理者类中还是在实际使用的类中? 另外,不同的级别可能会使用完全相同的纹理,所以将它们加载到内存中只需要一次,而不是每次在关卡结束时都进行处理。 将它们存储在Assetmanager类中的一个静态variables是一个很好的解决这个问题的方法吗?

第一次打开mod时,如何获得ModPE执行的function?

我正在制作一个Minecraft PE mod,我只想在mod的第一次启动时设置一个variables。 那么,如何让它设置variables,然后再次设置,直到我再次导入模块?

我应该用什么Java类来表示一个Vector?

Java是否具有适合处理冲突检测/响应的内置Vector类? 它应该有subtract(Vector v) , normalize() , dotProduct(Vector v) ,… 使用java.awt.Rectangle和java.awt.Polygon来计算冲突似乎是合乎逻辑的。 我是否正确地使用这些类来达到这个目的? 我理解碰撞检测; 我只想知道在Java中是什么方法是惯用的。 我对语言和应用程序开发一般都不熟悉。

块碰撞不起作用

我正在用Java编写一个自顶向下的平铺游戏,现在我正在编写碰撞testing,但是它不起作用。 这个碰撞函数只对块的顶部和左侧起作用,当我碰撞时,玩家向上移动而不做任何事情。 我的错误是什么?有更好的碰撞系统吗? 谢谢! 我的代码: public void update() { collide(); if(up) y -= vely; if(down) y += vely; if(right) x += velx; if(left) x -= velx; } private void collide(){ for(int i = 0; i < handler.objects.size(); i++){ GameObject obj = handler.objects.get(i); if(obj.id() == ID.Block){ if(getBounds().intersects(obj.getBounds())){ x += -velx; y += -vely; } } } […]

与java服务器逻辑代码重复的HTML 5多人游戏?

我想用java服务器做一个浏览器多人游戏。 我仍然在devise阶段,我正在决定使用什么技术。 但是当客户端需要与服务器相同的逻辑来预测运行和事件,然后收到服务器的响应之前,我偶然发现了这个问题。 而我不想要一个代码重复的JavaScript和Java。 那么我有什么select?

为什么这些3D Square像素间隔?

所以我目前正在尝试写一个3D渲染器。 从没有先有的知识,因为我想挑战自己。 但是我被困在这里,并且认为我会把它带到StackExchange,因为我总是看到辉煌的解决scheme! 如果需要更多代码,请提问! 这是我的广场渲染代码: public void renderSquare(int xPos, int yPos, float zPos, int width, int height, int color) { clearArray(); for(int y = 0; y < height; y++ ) { int yy = y + yPos; for(int x = 0;x < width; x++) { int xx = xPos + x; float xS = -1f, […]

合并的粒子效果停止播放器死亡和屏幕重新创建后的渲染

我在一个游戏中遇到了一个问题,那就是游戏的第一个实例中的粒子效果。 在玩家死亡后,主屏幕的新实例开始(创建控制器,Ashley引擎和Ashley系统) ,粒子效果不再出现。 我相信这可能与我在混合组件中使用混合粒子效果有关,但我不确定。 在这个问题上的任何帮助,不胜感激。 以下是关于粒子效应的大部分代码: ParticleEffectComponent (包含所有与粒子有关的数据) public class ParticleEffectComponent implements Component,Poolable{ public PooledEffect particleEffect; // stores effect public boolean isattached = false; // whether it's attached to object public float xOffset = 0; // offset from attached object public float yOffset = 0; // offset from attached object public float timeTilDeath = 1f; […]