Articles of 2d

有没有一种标准的方式来跟踪本地和屏幕上的二维平铺位置?

我正在建立一个基于32×32的OpenGL的2D引擎。 OpenGL从左上角绘制,所以Y坐标在屏幕上向下。 显然,这与Y坐标随着增加而向上移动的标准图不同。 我无法确定如何跟踪精灵和图块对象(图块集合的对象)的位置。 我的大脑想要将世界的位置设置为对象的左下角,并以此方式跟踪每个对象。 这个问题是我将不得不把它翻译成屏幕上的位置上呈现。 对此的肯定是我可以很容易地想象(特别是在由多个瓦片组成的物体的情况下)如何构造和需要构建什么。 有没有标准的方法来做到这一点? 我应该把它吸起来,习惯左上角的位置? 以下是开始渲染的OpenGL调用: // enable textures since we're going to use these for our sprites glEnable(GL_TEXTURE_2D); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // enable alpha blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // disable the OpenGL depth test since we're rendering 2D graphics glDisable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, WIDTH, HEIGHT, 0, 1, -1); glMatrixMode(GL_MODELVIEW); […]

如何处理animation?

我正在编写一个简单的2D引擎与HTML5一起使用。 我已经有类,如图片,场景,相机和渲染,但现在我需要在animation工作。 图片基本上是一个普通的图像对象的包装,它有自己的绘制方法,但这是不相关的,我对2D游戏中的animation通常是如何做的感兴趣。 我打算做的是让Animation类像一个包装一些图像对象,然后有getCurrentImage,next和animate(这将使用间隔来快速改变当前图像)的方法。 我的意思是在animation中添加几个PNG的animation。 快速交换二维animation可接受的PNG图像? 有没有一些标准的做法,或者我的方式有缺陷?

使用2D对象与3D对象

我打算写一个相当基本的滚动拍摄,但是,我已经碰到了检查碰撞的问题。 我打算有一个固定的俯视图,其中玩家和敌人都是固定飞机上的三维物体,当敌人或玩家在另一架飞机上射击时,他们的射击也将沿着这个固定的飞机。 为了处理这个碰撞,我已经读了一下3D中的碰撞检测,因为它不是我以前看过的东西,但是我不确定这种情况会是什么样子。 我的select似乎是: 然而,球体碰撞,这缺乏我想要的像素精度 使用每个对象的所有顶点和平面进行检测,但是对于固定的平面来说,这看起来过于复杂 以黑白呈现(白色是一个物体,黑色是空的空间),一次是敌人,一次是玩家,然后检查是否有碰撞(如果一个像素是白色的,就会发生碰撞) 哪一个是最好的方法,或者是我缺less另一个选项? 我以前使用2D精灵做过这个,但是我不能在这里使用同样的想法,因为我没有图像可以参考。 编辑:为了清楚起见,我只是想添加一些额外的信息。 我想说明的一件事是玩家或敌人是以某种方式旋转的,这意味着沿着Z平面相交不会是完全准确的。 例如,如果玩家从一边到另一边移动时,玩家的船上有银行存款,那么他们的船只的提示将在中央飞机的上方和下方,但是我仍然希望这些部件有可能被击中。 其次,我打算为玩家的手艺制作不同的尺寸和形状,其大小和形状会影响到打击框,并且是玩家可以用来select他们想要使用哪种船的属性之一。

如何在用户可拖动的点之间画线?

我想使用OpenGL在SurfaceView上创建三个不同的点。 用一种颜色在点之间用线标示并用不同颜色填充三角形。 我想把这些点从现有的地方拉到用户想要的位置(他想要的地方)。 我怎样才能做到这一点?

2D塔瞄准(塔防)

所以只是更具体的这个问题不是关于如何瞄准敌人或类似的东西,而是它的目的是针对我目前的敌人。 所以我现在面临的问题是,如果我向敌人发射子弹,然后在子弹击中所需的敌人之前,它最初也是设置的,如果我的塔改变了目标,那么突然我的子弹做掉头,然后瞄准这个新的敌人。 这不是我想要的。 我正在使用C ++。 我知道这是一个指针问题,我指针的内存地址改变指向塔将面临的新的敌人,问题是我只是不知道如何解决这个问题,亲自为我我不使用指针这很多,不幸的是我只是不是很善于使用它们似乎:/。 任何关于这个问题的帮助都是非常感谢的,现在在几个小时的时间里,我已经讨厌我了,如果有人能够解释我在这里做错了什么 – 那太好了! 所以这是我的定位代码 for (int numOfEnemies = 0; numOfEnemies < lib.numberOfEnemies; numOfEnemies++) { float y = pow(enemies[numOfEnemies].position.y – position.y, 2); float x = pow(enemies[numOfEnemies].position.x – position.x, 2); if (sqrt(y + x) < range && enemies[numOfEnemies].alive) { cEnemy = &enemies[numOfEnemies]; acquiredTarget = true; break; } } 很简单,那么这就是我如何通过我的子弹类; bullets.push_back(Projectile(bulletPosX, bulletPosY, […]

如何在2D中正确地模拟对象对象的近似?

我试图让一些物体朝向相机,但它只是不觉得正确…你可以检查在这里的进展: http://testing.fyrastudio.com/lab/tweetOlympics/v0.005/ 你重复击中字母Q,在700号位置出现第一个障碍。 但它看起来不正确。 我认为,在现实生活中,距离越远,障碍就会越慢,越靠近相机,它的速度就越快,而现在则是相反的。 以下是处理跨栏运动的代码: hurdle.scaleX = hurdle.scaleY = (athlete.position – hurdle.position_initial) / 1000; hurdle.y = bg.image.y + (athlete.position – hurdle.position_initial) * 0.4; 有任何想法吗?? 谢谢!!

随机地形生成与洞穴

我目前正在制作一个小型的游戏,如果你愿意的话,这个游戏将会产生一个洞穴和洞穴入口的世界,就像Terraria一样。 今天我在世界/洞穴生成代码上遇到了一些麻烦。 我想使用Perlin噪声,但我不知道如何将其实现到我的代码。 有人能指引我参考甚至是代码样本的正确方向吗?

android基本移动数组对象

我被建议开始一个单独的问题,所以我在这里。 如果可以帮忙的话,一直坚持这样做,请做。 让我们得到它! 我试图为我的子弹设置速度,但是因为我使用游戏杆移动我的精灵我发现真的很难。 我曾经尝试了一百件事,但没有一件可行。 病后的代码与下面的评论。 代码为我的控制: if (dragging) { // get the pos touchingPoint.x = (int) event.getX(); touchingPoint.y = (int) event.getY(); angle = Math.atan2(touchingPoint.y – inity, touchingPoint.x – initx) / (Math.PI / 180); spriteAngle = Math.atan2(touchingPoint.y – inity, touchingPoint.x – initx) / (Math.PI / 2) + 2; bulletSpeedX = (Math.sin(angle * (Math.PI / 180)) […]

按逆时针顺序排列点的数组

我碰巧看到“ 按顺时针排列点数 ”的答案,请您详细说明答案的第四点: 相对于它们的值sorting点,例如使用qsort。 我如何做上述步骤? 我正在寻找一种algorithm来逆时针sorting点列表。

无法访问jar。 为什么?

我在java中制作游戏,并将其导出为jar文件。 之后,我打开了jar拼接。 我添加了库和导出的jar。 我添加了当地人,然后我做了一个主要的课程。 我创建了一个胖的jar子,放在我的桌面上。 我使用的是Mac OS X 10.8 Mountain Lion。 当我把terminal,java -jar System Front.jar中,它说无法访问System Front.jar即使我双击文件,它没有显示! 帮帮我! 我使用光滑的。 我添加了slick和lwjgl作为jar拼接在jar的库。