Articles of 二维

与级编辑器的2D动作游戏列表

动作游戏关卡devise很难。 如果你想在devise动作游戏关卡时磨练自己的技能,那么问题是首先你必须制作一个好的游戏,有很好的控制,有趣的敌人,更不用说所有更基本的代码,比如碰撞,渲染和当然水平编辑器(好的,所以你可以使用一个引擎的很多,但它仍然是很多工作)。 即使一旦你有了这个,如果你的游戏不好,这将妨碍你从devise水平上得到的任何潜在的练习。 所以我正在寻找与关卡编辑器的2D动作游戏 。 除了减less你的工作量,让你把注意力集中在关卡devise上以外,完整的游戏意味着你可以先玩专业制作的关卡,并且有一些东西可以比较你的作品。 就个人而言,我正在考虑双向滚动动作/平台游戏 ,但2D动作包括任何基于执行的2D游戏 ,即reflection和控制知识。 所以,在这个例子中,超级马里奥兄弟算作二维动作。 我自己的例子是在PC上,但控制台游戏也没问题(虽然我认为PC游戏通常有更好的关卡编辑器,也许这是改变了)。 PS:我希望这个问题是可以接受的,尽管显然没有单一的正确答案。 我注意到这里没有“大名单”的标签,但是我在其他SE网站上看到过类似的问题,对未来的读者会有很大的帮助,这也是SE问题的一部分。

倾斜的多边形对撞机2D造成箱对撞机2D在滑动的同时碰撞“碰撞”

我正在做程序上的地形生成。 到目前为止,我已经创建了网格,并附加了一个2D多边形对撞机。 地形由丘陵组成。 这样做之后,我把一个二维刚体与一个二维盒子对撞机一起代表玩家。 当我把球员放在上面,让他一直滑下去,有时他不能正常滑动,而是撞上山坡,突然间自己跳起来,就好像他绊倒了一样东西(尽管没有什么那里)。 奇怪的是,它不是一直在发生,有时候也是如此。 即使我让他在同一个地方滑倒,他再也碰不到了,除非在极less的情况下,他不会再这样做。 什么可能导致这个?

如何使用物理引擎正确应用转向物理机构?

我有一个使用物理引擎(Farseer)的自上而下的2D游戏。 我正在使用标准的转向行为来使人工智能移动,但我不确定正确的方法来采取所谓的“转向力”计算的转向行为,并将其应用到物理机构。 例如: 转向行为SEEK返回 return desiredVelocity – currentVelocity; 所以它返回两个速度的差异(以米每秒)。 我需要将它转换成我需要应用于我的物理体的力(以牛顿为单位),考虑到它的质量和加速度等。 我知道这应该是简单的,但我感到困惑! 🙂

二维编辑器的无限可滚动拖动背景

我需要为我的2D编辑器创建类似搅拌器的节点编辑器。 现在我不知道如何创建背景,所以它是静态的无限可拖动的simillar混合器。 我需要这样做,所以它不会破坏我的GPU,它的无限,可以放大和缩小没有问题 任何人都可以给我提示从哪里开始?

在Lua中错误地生成自定义3D噪声函数

我一直在研究一个自定义的噪声发生器(不是单纯的Perlin或者其他),它在二维空间中工作得很好,但是在将它转换成三维空间时,它变成了一个立方体的东西。 我不知道为什么,甚至没有经过几个小时的查找。 以下是2D和3D两个function的截图。 2D: 3D: 这是两个代码。 2D: local shape = {} local deform = {} math.randomseed(tick()) for i=1, 50 do for j=1, 50 do shape["i"..i.."j"..j]=(math.random(50)/10)-1.5 end end for x=1, 50 do for y=1, 50 do local q11 = shape["i"..x-1 .."j"..y] local q12 = shape["i"..x-1 .."j"..y+1] local q21 = shape["i"..x+1 .."j"..y] local q22 = shape["i"..x+1 .."j"..y+1] […]

如何突出显示并移动到等距网格中的相邻图块?

我试图创建一个基于回合的策略游戏,将游戏对象从网格中的一个图块移动到另一个图块附近。 我已经使用精灵和游戏对象创建了网格,但无法整理运动部分。 我怎样才能突出显示给定“当前”瓷砖的相邻瓷砖,然后允许游戏对象移动到任何突出显示的瓷砖?

将2D点arrays定位并旋转到3D世界中

我有一组二维点(定义一个平面2D“连接点”的形状)。 我想要在特定的3D位置和旋转下计算这些2D点的3D位置。 例如,假设我有五个二维点形成二维六角形的形状。 我想把这个六边形放在我的3D世界的一个特定的位置,在一个特定的旋转。 我需要为每个2D点计算新的3D坐标。 如果重要,2D点将围绕(0,0)。 我需要做什么神奇的配方来完成这个翻译? 是否有一个内置的方法(在Unity中)来做到这一点? 每个点都将垂直于旋转角度/方向,那么我需要计算交叉乘积吗? 然后以某种方式使用这个重新映射每个二维点? 在这些年前,我应该在学校里更多地关注这个问题(我甚至不记得以前是否真的学过这个东西!)。 任何帮助将不胜感激。 谢谢。 这里有一些基本的代码来说明: Vector3 position; // Where in 3D to place the 2D shape Quaternion rotation; // What 3D rotation to apply to the 2D shape. Should be a Vector3? Vector2[] shapeIn; // List of 2D points defining shape Vector3[] shapeOut; // List of […]

玩家在第二个玩家连接上的位置

我在尝试运行多人部分的游戏时遇到了一些麻烦。 我正在创建一个2D游戏。 我按照这个教程: http : //www.paladinstudios.com/2013/07/10/how-to-create-an-online-multiplayer-game-with-unity/ ,我已经实现了它。 正如教程所说,我有一个networking视图指向一个脚本,包含我的OnSerializingNetworkView和他的插值和偏好的东西。 它工作得很好,运动stream畅,非常好。 问题是当第二个玩家join游戏,我的第一个玩家已经移动,因为我使用Network.Instantiate(预制,Vector2.zero,…)实例化玩家,玩家在地图中间产生,然后慢慢移动到正常位置。 我尝试过其他的东西,比如不使用脚本,但是把变换放在networking视图中,当第二个玩家产卵时,第一个玩家在正确的位置,但是mouvements不一样,也不那么stream畅。 任何人有任何想法如何处理这个问题? 谢谢!

如何以一定速度向某一方向发射弹丸(directX 9)

我正在做一个自上而下的2D射手。 我试图让子弹在鼠标方向以恒定速度(以像素为单位)。 我遇到麻烦了。 我的子弹直接射出鼠标45度。 我写了这个方法,设置所有的角度和旅行率。 travelRate:每帧的子弹速度 targetX:以像素为单位的目标X坐标 targetY:以像素为目标的Y坐标 changeX:子弹沿X轴的每帧应该走多远(以像素为单位) changeY:子弹沿Y轴每帧应该走多远(以像素为单位) ent:玩家/ npc射击子弹 我不明白为什么我的子弹在距鼠标45度的位置偏移。注意:我从这个方法中删除了一些不重要的代码。 void Projectile::init(Entity * ent, int targX, int targY) { travelRate = 4; setX(ent->getX()); setY(ent->getY()); targetX = targX; targetY = targY; float deltaY = getX()-targX; float deltaX = getY()-targY; float dLen = sqrt(deltaX*deltaX + deltaY*deltaY); if (dLen == 0) dLen == 1; deltaX […]

使用预设的时间间隔移动对象

我是一个新手游戏开发者。 我有一个问题。 考虑以下情况。 我有一个简单的游戏只有一个对象 – 一个球。 一个球只能从一边上下移动到另一边。 用户可以设置游戏时间和球迭代次数。 一个迭代就是当球到达最高点并返回到最低点时。 它应该完成用户设置的所有迭代。 这是一个例子。 考虑到用户已经将游戏时间设置为60秒,并且将球迭代选项设置为30 。 我们可以find我们有多less时间60/30 = 2秒的迭代。 所以球应该完成迭代两秒钟。 假设我们有一个已知的帧速率,它是30ms (更新和绘图)。 所以单循环迭代需要2000ms 。 接下来find一个完整的球运动2000/30 = 66次迭代的迭代。 也让我们想象一下,从一边到另一边的距离是2000px 。 所以球需要每次迭代完成4000px 。 最后,我们可以找出我们的运动delta 4000px / 66 = 60 px 。 所以球每循环迭代将移动60px。 但是如果我没有帧速率怎么办,但是当帧速率不是静态的,我们每次都需要关联它时,怎么办呢? 请提出一个algorithm或方法来解决这个问题。 似乎应该有一个function,那就是从游戏开始的时间计算一个球的位置,就像罪(因为球弹跳) 谢谢。