游戏开发

专业和独立游戏开发人员的问答

3
有了彼此连接的房间列表,如何找到孤立的房间组?
我正在尝试创建一个小型的roguelike,并延伸到随机生成的房间和走廊。每个房间都是实例对象,并包含通过走廊连接的其他房间的数组列表。 我可以挑出未连接的房间,但是我怎么知道仅相互连接但不与大多数其他房间相连的房间呢? 为了更好地说明问题,这里是来自控制台的图像,处在一个陷井状态。房间5和6仅相互连接。我可以使用什么算法来检测?
9 java  algorithm 

1
Xbox指拨杆用于旋转精灵,基本公式使其以90度的间隔“粘”或“粘”!您如何顺利旋转?
我正在使用一个非常基本的公式来计算我的精灵(例如太空船)应基于Xbox控制器指尖所面对的角度,即您使用指尖来旋转飞船。 在我的主要更新方法中: shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y); 在我的主要绘制方法中: spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1); 如您所见,它非常简单,我从指尖获取当前弧度并将其存储在浮子中shuttleAngle,然后将其用作旋转角度参数(以弧度为单位)以绘制往复运动。 由于某些原因,当我旋转Sprint时,它在0、90、180和270度的角度感觉发粘。它想以这些角度解决。这并不能像在使用类似机制的游戏中那样给我流畅自然的旋转。PS:我的Xbox控制器很好!
9 xna  c#  sprites  rotation  gamepad 

2
设计蛇AI
我是这个gamedev stackechange的新手,但之前使用过数学和CS网站。 因此,我正在为蛇创建AI竞赛,它将在5分钟内与另外四条蛇竞争,规则类似于传统的诺基亚蛇游戏,除了有五条蛇,棋盘为30x30,并且有球场上有许多小障碍。 像诺基亚游戏一样,当您到达水果时,您的蛇会长大;如果撞到自己,另一条蛇或墙壁,您会死去。游戏在移动之间的延迟为30ms的情况下运行,服务器每隔50ms发送新的游戏状态,代码必须分析该状态,然后再分析不输出什么,并输出下一移动。 胜利者是在游戏中任何时刻都最长的蛇。决胜局由杀手决定。 到目前为止,我所做的是对每条蛇执行A *图形搜索,以确定我的蛇是否最接近苹果,如果是,它就适合苹果。否则,我会做出一个巧妙的小算法来确定棋盘上最空的区域,以供我预测蛇的位置,以预测下一个苹果。 除此之外,我还进行了一些小的生存性检查,以确保我的蛇不会走入无法摆脱的陷阱,如果确实被卡住,我还有一些办法可以使它更好地摆脱困境。 ... 无论如何,我已经在测试服务器上测试了我的蛇,它做的很好。通常,我的策略是只在苹果确定可靠的情况下才选择苹果,而在苹果没有使其比其他任何蛇长得更快的情况下寻找空间(某些蛇也做类似的事情,但通常只走到中间或角落),有时它会获胜在这些试玩游戏中,但常常被似乎在生存能力方面具有优势的同一条蛇打败(我的蛇生长更快,但随后以某种方式死亡,而另一条蛇则缓慢前进,并赢得了稳定性。 所以我想知道任何人必须尝试改善我的蛇的想法。也许是采用新方法的想法。我的函数和类很好,因此看起来似乎很剧烈的更改应该不会太糟糕。我鼓励所有想法。 有什么想法吗?
9 ai  snake 


3
如何分解精灵表
我有很多Spritesheets格式不佳,我想分解它们,或分解成许多小图像,每个Sprites一个。如果可以,我可以使用自定义纹理打包器工具来构建游戏资源。 我的开发工具是针对Windows的XNA和C#。如何分解图像?

4
openGL中的精灵动画
我在OpenGL ES中实施精灵动画时遇到问题。我已经用谷歌搜索了,唯一得到的是通过Canvas实现的教程。 我知道方法,但是在实施过程中遇到问题。 我需要的是有关碰撞检测的Sprite动画。 我的工作:碰撞检测功能正常运行。 PS:一切工作正常,但我只想在OPENGL中实现动画。在我的情况下,Canvas无法正常工作。 ------------------------编辑----------------------- 我现在有一张Sprite表,说下面的这张表有一些特定的坐标,但是(u,v)坐标从哪里开始?我应该从(0,0)还是从(0,5)考虑我的u,v坐标,并且应该以哪种模式将它们存储在列表中?---->从左到右或---->从上到下 我的sprites类中是否需要2D数组?这是一个更好理解的图像。 我假设我有一个NxN的精灵表,其中N = 3、4、5、6等。 。 。 class FragileSquare{ FloatBuffer fVertexBuffer, mTextureBuffer; ByteBuffer mColorBuff; ByteBuffer mIndexBuff; int[] textures = new int[1]; public boolean beingHitFromBall = false; int numberSprites = 49; int columnInt = 7; //number of columns as int float columnFloat = 7.0f; …

3
基于组件的设计:处理对象交互
我不确定对象在基于组件的设计中如何精确地处理其他对象。 说我有Obj课。我做: Obj obj; obj.add(new Position()); obj.add(new Physics()); 那么,我又如何才能使另一个对象不仅使球移动,而且还要应用那些物理方法。我不是在寻找实现细节,而是抽象地讲对象如何通信。在基于实体的设计中,您可能只有: obj1.emitForceOn(obj2,5.0,0.0,0.0); 为了更好地掌握组件驱动的设计以及如何进行基本操作的任何文章或说明都将非常有帮助。

3
编写动画库(IK和FK)的必要知识是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我找不到任何好的动画库,发现的库确实很老而且已经停产,但是我注意到这些库相对较小,因此我正在考虑自己编写一个库:我应该从哪里开始?有哪些基本知识?有关于这本书吗? 高度赞赏有关动画的良好文件格式的一些其他说明。 我正在使用C ++。

2
为什么我的模型不能连续点亮?
我使用Blender创建了一个基本的纹理立方体模型来进行建模,然后将其导入Unity。我放了一些照明灯后,看起来很难看。一排纹理立方体上的光线不连续: 更奇怪的是,组成地板的砖块上的灯光是连续的。我究竟做错了什么? 这是没有纹理的外观: 如果我不知道这些是完美的立方体,我会说表面上有轻微的弯曲。我也尝试减轻纹理,但这也无济于事: 我只是简单地从Blender中导出模型,而没有设置任何法线或类似的东西。但是,对于地板砖模型,我也没有做任何特别的事情。 检查法线,它们似乎指向正确的方向。 我也没有真正看到两个模型之间的区别。在纹理面板上,我还将投影设置为平坦: 我检查了Blender中的不同面板,“对象数据”面板上唯一与法线相关的选项是“自动平滑”,默认情况下处于关闭状态:

5
返回正确的multiTouch id
我花了无数小时来阅读教程,并从这里和Stackoverflow上查看与multiTouch相关的每个问题。但是我只是不知道如何正确地做到这一点。我使用循环来获取我的代码pointerId,我看不到有很多人这样做,但这是我设法使其有所工作的唯一方法。 我的屏幕上有两个操纵杆,一个用于移动,另一个用于控制我的精灵旋转和他拍摄的角度,就像在Monster Shooter中一样。这些都很好。 我的问题是,当我在与Im拍摄同时移动我的精灵时,我touchingPoint的动作设置为touchingPoint我拍摄的,因为xand y在touchingPoint拍摄moving-stick的上方较高(在屏幕的左侧,shooting-stick在右侧) ,我的精灵会加速,这会导致我的精灵的速度发生不必要的变化。 这就是我在您的帮助下解决的方法!这适用于可能遇到类似问题的任何人: public void update(MotionEvent event) { if (event == null && lastEvent == null) { return; } else if (event == null && lastEvent != null) { event = lastEvent; } else { lastEvent = event; } int action = event.getAction(); int actionCode = …

5
直线可以称为多边形吗?
根据多边形的定义,如果连接了折线的第一个点和最后一个点,则称为多边形。参见下图。我有P1,...。P5折线。如果我从P5到P1画一条线,那么它会被称为多边形吗?我在这里很困惑。

2
我是否需要担心现实场景中基于四边形的渲染?
大多数时候,在有关光栅化和渲染技术的随机书籍的第一章中,我会找到一些有关基于三角形的渲染系统和基于四边形的渲染系统的短语。 我从未遇到过基于四核的GPU或管线。在处理OpenGL 3.0+时,我是否需要担心这一点,还是仅仅是传统的东西?
9 opengl  gpu 

2
在任何其他引擎中,是否有与Portal 2的linked_portal_door等效的功能?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我需要Portal 2 中的linked_portal_door的功能。我在UDK中进行了一些搜索,并且大多数人在尝试复制门户枪。有人知道UDK,CryEngine,Unity3D或任何其他引擎是否具有类似的东西吗?我不反对使用Source,我只想知道我的选择是什么。
9 portals 

4
有什么方法可以验证从客户端收到的GPS位置数据吗?
这个问题的答案可能是“否”,但这很重要,所以我想我也应该问。 对于所有客户端-服务器位置感知游戏而言,这应该是一个问题,在这些游戏中,世界上的玩家位置对于游戏而言至关重要。有什么方法可以确保来自客户端的位置数据是真实的(即播放器实际上在那儿)? 在开发客户端-服务器游戏时,我们都知道我们永远不应该信任来自客户端的任何信息,因此所有重要的游戏逻辑都应在服务器端完成。但是,对于位置信息,我们必须从客户那里收到。有没有办法再次检查以防止作弊?

3
是否有任何叙述性(或至少是非时空性)的引擎/框架?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 编辑(2):由于有两个答案,但我没有接受任何答案,所以我想激发我在这里考虑的答案:强烈暗示任何这种方法都是不可能的/根本没有用的,或者替代地,除了文本冒险游戏/互动小说之外,还涉及研究(领域)或至少某种程度通用的此类系统的示例。 虽然我不假装自己进行了更深入的研究,但我注意到,我研究过的所有游戏引擎/框架似乎都像是一个荣耀的图形引擎,从某种意义上说,它们将形状/实体分为两个部分或三维欧几里德空间,可能带有某种“并入”并发模型,允许人们指定某种形式的逻辑附加到这些“实体”上。 然后,在这些原语之上以某种即席(相对于引擎)的方式编写游戏“规则”和叙述。 显然,上面的描述相当简化(采用更专业的引擎,例如infinity引擎,其中确实包含某种形式的任务/叙事系统),我意识到该模型可以很好地工作(很多人似乎都在使用它) 。 不过,我想知道是如何尝试创建引擎/框架,将诸如(高级)游戏规则/逻辑或叙述(或至少是游戏的非空间方面)的描述等概念作为主要内容基础? 编辑(4):这并不意味着游戏将不包含任何空间/图形方面,仅是您具有情节(或游戏玩法或“棋盘游戏规则”),而不是拥有与逻辑关联的空间实体),然后您将描述/实现的图形界面。 尤其是我对任何声明性方法都感兴趣,这些方法试图以一种对实际实现有用的方式(相对于专门用于游戏的框架)来捕获相当大类游戏的某种(半)形式语义。游戏/叙事的定性分析)。 我所看到的是使用基于Petri网的模型对叙事进行建模/分析的一些研究,以及一些用于编写交互式小说的语言中有趣的方法。 编辑(1):我想我会添加一个玩具示例来说明。 假设我们对创建指向和点击风格的冒险游戏感兴趣(想想SCUMM游戏)。人们可能会根据从开始情况到结束情况或多或少线性和离散的进展这一概念来分析这些情况。 着眼于离散级联的概念,并考虑到一些非线性,可以选择(有界)DAG的理论作为基础理论。因此,以(相对于该理论)最抽象的形式来指定这种类型的游戏,就相当于向该理论添加了其他公理(以使该理论指定一个特定的图,或者足以捕获一个人认为需要的图形)。 “情节”)。 现在,将其变成实际的游戏会变成HCI /接口设计问题,即将该理论嵌入到可玩的事物中(即,建立理论模型/从具有过渡的用户界面状态集合中找到图的同构(等值)同构)进入DAG“指定游戏”)。 在以上假设的场景中,我可以看到至少三件事应该可以在库中捕获。首先,通常需要一种工具来对DAG或图形进行转换/推理。其次,一个足够聪明的用户界面库可帮助验证我们作为可玩游戏的图形表示形式是否为图形建模(例如,至少有一部分/非正式地,由于有界条件,证明游戏没有卡死状态) 。最后,可以给出用于指定图形的高级库的集合;例如一个用于表达字符及其相互作用并以此生成(部分)图形的库。 为什么要保留DAG的“中间”理论,而不是仅在底层实现上添加一些帮助库呢?答案是形式语义的所有常见原因。鉴于我们已经决定了正式的基础,我们可以验证游戏的某些属性,从而使人们能够对低级接口库中的优化之类的东西进行推理(只要它对DAG进行建模,我们就可以做我们想做的事情),而无需担心与(字符/对话等)高级描述不具有可比性,因为这些描述本身必须描述这种结构。 我绝不暗示上述方法在特定情况下会起作用,并且并不是不是DAG必须是实际存储在内存中的东西(而是它类似于lambda演算之类的计算形式主义),但我希望这能说明我好奇的那种方法。 简而言之,我想这个问题的替代标题可能是:Dijkstra将如何编写计算机游戏?

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.