Questions tagged «c++»

C ++是一种静态类型化,自由格式,多范例,已编译的通用编程语言。

1
没有窗口的DirectX11?
我只是想知道,是否有可能初始化DX11或DX9并将其仅用于屏幕外渲染-意味着没有附加的窗口。我的意图是在打开实际窗口之前进行一些GPU基准测试。在此基准测试中,呈现了一些测试场景,但不应看到。(实际上取决于基准分数,会打开不同的窗口)
13 c++  directx11 

3
游戏循环,如何检查条件一次,先做某件事,然后再不做
例如,我有一个Game类,它保留了一个int跟踪玩家生活的信息。我有条件 if ( mLives < 1 ) { // Do some work. } 但是,这种情况会不断触发,并且工作会反复进行。例如,我想设置一个计时器以在5秒内退出游戏。当前,它将继续将其设置为每帧5秒,并且游戏永远不会结束。 这只是一个例子,我在游戏的多个方面也遇到相同的问题。我想检查某种情况,然后一次只做一次,然后再不检查或再次执行if语句中的代码。我想到的一些可能的解决方案是bool针对每个条件设置a ,并bool在条件触发时设置。但是在实践中,这很麻烦bools,因为必须将它们存储为类字段,或者静态地存储在方法本身中,因为它们很多。 对此的正确解决方案是什么(不是针对我的示例,而是针对问题域)?您将如何在游戏中做到这一点?
13 c++  game-loop 

4
隐藏玩家的游戏数据?
我正在开发我的第一个(C ++)游戏,并且我想使用基于组件的设计。我最近已经阅读了很多有关此内容的信息,昨天我决定将对象数据存储在外部JSON文件中,以提供更大的灵活性和访问便利性。 然后我突然意识到,将这些文件保留在游戏的目录树中将使玩家可以非常轻松地修改他们想要的任何内容。 我不担心向开发人员展示代码,因为该游戏将是开源的,但我担心经验不足的游戏玩家可能会破坏游戏或至少破坏游戏的乐趣。 我想念什么吗?隐藏游戏数据(在开源游戏中)有什么政策?让所有人都能清楚地访问所有内容是否正常? 如果没有,什么是隐藏数据的好方法?
13 c++  data 

7
最佳(最流行?)纹理化图像格式[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 好的,所以我将C ++与OpenGL一起使用,并且我将创建一个加载器以为3D游戏加载纹理。(但是纹理是2D的)。我决定选择透明度,即使我决定不使用它。我需要像样的质量,尽管不一定要一流。你们对格式有什么建议(PNG,TGA等)。另外,也许可以使其易于创建装载程序(我将不使用已经创建的装载程序)。而且,如果您有任何链接/提示来帮助加载程序,那将不胜感激。
13 c++  opengl  textures 

5
在C ++中使用Lua的推荐库是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 我目前正在计划如何将Lua脚本集成到我的2D游戏引擎中,并且我想直接使用最合适的解决方案来公开C ++类和对象。 我已经读过(如果有帮助的话):http : //lua-users.org/wiki/BindingCodeToLua 如果您有更好的脚本语言值得推荐,那就去吧; D 欢迎所有帮助,我需要最好的解决方案才能开始实施谢谢
13 c++  lua 

5
文件的自定义内容包
我将要从一个网站上购买很多模型包来制作我的游戏原型。合同中规定,我必须保护他们,以防止公众接触他们。 我记得使用Valve游戏时,他们使用了.gcf(游戏内容文件),该文件基本上是每个游戏的所有内容的存档。他们包装在声音/材料/模型/地图/等。我认为开发类似的东西可能不是一个坏主意,只是编写一个小工具让我从中添加/删除文件。 问题是我真的不知道如何开始这样的事情。我尝试了Google,但我什至不知道要搜索什么。如果任何人有任何想法,可能有用的链接或其他任何内容,我将不胜感激。
13 game-design  c++ 

8
哪个基于c ++的游戏的单元测试框架?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 您觉得哪种测试工具组合是最好的?给定您选择的框架/库,您可以考虑: TDD的适用性 易用性/生产率 处理模拟对象 持续集成的设置 错误报告 注意:尽管这可能是一个类似SO上的通用问题,但我还是认为游戏开发通常与特定的工作流程绑定,这会影响测试的选择。要获得更高层次的观点,请参阅问题游戏自动测试。
13 c++  testing 

1
不同对象的不同着色器DirectX 11
我正在学习Direct3D 11,在有关着色器编写的所有基本教程中,都编写了顶点着色器和像素着色器,因此它们以相同的方式变换整个场景。教程喜欢用纹理渲染立方体... 但我想知道,您如何区分对象?例如,如果要模拟某个对象上的镜面并使用不同的着色器来渲染场景的其余部分,该怎么办?我认为大多数游戏必须使用许多顶点和像素着色器才能实现各种外观和变换。 谢谢。
13 c++  directx11 

3
识别游戏引擎中的资产?
我想识别我已加载的资产,但是我不知道应该选择哪一个。有2个选项: 名称(字符串) 对于unordered_map(O(1)),这是最简单也最快的方法,但是比使用整数慢。 在代码中容易理解。 整数 最快的。 用代码无法理解。 我知道字符串不是那么安全或快速,但是那样不好,还是仅在AAA标题中算作不好?我可以使用整数来枚举枚举,但是如果我在运行时从文件加载场景,资产等,则不能使用枚举。如果这些整数是在运行时生成的,是否可以使这些整数可读? 我知道这个问题在互联网上有很多线索,但是我无法确定在什么情况下这很重要。

1
我如何干净,优雅地处理类之间的数据和依赖关系
我正在研究SFML 2中的2d自上而下的游戏,需要找到一种优雅的方式来使一切正常工作并融合在一起。 请允许我解释一下。我有许多类都继承自抽象基础,该基础为所有类提供了draw方法和update方法。 在游戏循环中,我调用update然后在每个类上绘画,我认为这是一种非常常见的方法。我有瓷砖,碰撞,播放器和包含所有瓷砖/图像/纹理的资源管理器的类。由于SFML中输入的工作方式,我决定让每个类在其更新调用中处理输入(如果需要)。 到目前为止,我一直根据需要传递依赖关系,例如,在按下播放键时在玩家类中,我在碰撞类上调用了一个方法来检查玩家想要移动到的位置是否是碰撞,并且只有在没有碰撞的情况下才移动播放器。 这在大多数情况下都可以正常工作,但是我相信可以做得更好,但我不确定如何做。 现在,我需要执行一些更复杂的事情,例如:玩家能够走到地面上的某个物体,按一下键来捡起/掠夺它,然后它就会显示在库存中。这意味着需要发生一些事情: 在按键时检查播放器是否在可放物范围内,否则不要继续。 查找项目。 将项目上的精灵纹理从其默认纹理更新为“掠夺”纹理。 更新项目的碰撞:它可能已更改形状或已完全移除。 需要使用添加的项目更新库存。 我如何使一切交流?在我当前的系统中,我的类将超出范围,并且方法调用到处都是。我可以将所有类捆绑在一个大管理器中,并为每个类提供对父管理器类的引用,但这似乎只好一点。 任何帮助/建议将不胜感激!如果有什么不清楚的地方,我很乐于扩展。
12 c++  2d  architecture  sfml 


4
循环类依赖
有两个彼此需要的类是不好的设计吗? 我正在写一个小游戏,其中有一个GameEngine包含一些GameState对象的类。要访问几种渲染方法,这些GameState对象还需要了解GameEngine类-因此是循环依赖项。 您会称这个设计不好吗?我只是问,因为我不太确定,目前我仍然可以重构这些东西。
12 c++  architecture 

1
如何在屏幕边缘绘制一个箭头,使其指向屏幕外的对象?
我希望执行本主题中描述的操作: http://www.allegro.cc/forums/print-thread/283220 我尝试了这里提到的各种方法。 首先,我尝试使用Carrus85描述的方法: 只需取两个三角形斜边的比率即可(与另一个三角形无关),我建议将点1和点2作为计算的距离。这将为您提供从较大三角形到角落的三角形的长宽比百分比。然后,您只需将deltax乘以该值即可得到x坐标偏移,然后将deltay乘以该值即可得到y坐标偏移。 但是我找不到一种方法来计算对象离屏幕边缘的距离。 然后,我尝试使用23yrold3yrold建议的射线投射(以前从未做过): 从屏幕中心向屏幕外对象发射光线。计算射线在矩形上的相交位置。有你的座标。 我首先计算了由两点的x和y位置差异形成的三角形的斜边。我用它沿着那条线创建了一个单位向量。我遍历该向量,直到x坐标或y坐标不在屏幕上。然后,两个当前的x和y值形成箭头的x和y。 这是我的光线投射方法的代码(用C ++和Allegro 5编写) void renderArrows(Object* i) { float x1 = i->getX() + (i->getWidth() / 2); float y1 = i->getY() + (i->getHeight() / 2); float x2 = screenCentreX; float y2 = ScreenCentreY; float dx = x2 - x1; float dy = y2 …

1
自由空间中的高效寻路
我在太空中有一个游戏,我想发布移动指令,这需要寻路。现在,据我了解,A *等主要适用于树,而不适用于没有寻路节点的空白空间。我有一些障碍,目前表示为固定的AABB,即没有无限的“地形”障碍。另外,我希望大多数障碍物可以合理地近似为立方体或球体。 因此,我一直在考虑应用一种更简单的寻路算法-即简单地将射线从当前位置投射到目标位置,然后可以使用空间划分相对较快地获得障碍列表。我不太确定的是如何确定有序单位在障碍物周围进行操纵的部位。 到目前为止,我一直在想的是,我将仅使用潜在的场-即,所有单元都将感觉到彼此相互排斥的强大排斥力,而向目标点施加了适度的排斥力。这还有一个优势,就是发出团体命令,我可以简单地向另一个实体订购一支中级部队。但这显然无法实现最佳解决方案。 给定我的参数,势场会达到合理的近似值,还是我需要其他解决方案?
12 c++  path-finding 

2
我正在寻找使用向量创建逼真的汽车运动
我已经仔细检查了如何执行此操作,并找到了此http://www.helixsoft.nl/articles/circle/sincos.htm我已经尝试了一下,但是显示的大多数功能都无法正常工作,我只是出错了因为它们不存在。我看过cos和sin函数,但不了解如何使用它们或如何使用矢量使汽车运动正常工作。我没有代码,因为我不确定该怎么办。 任何帮助表示赞赏。 编辑: 我有一些限制,必须在我的游戏中使用TL引擎,不允许添加任何形式的物理引擎。必须使用c ++编程。这是我尝试遵循我提供的链接中所做的操作后得到的示例。 if(myEngine->KeyHeld(Key_W)) { length += carSpeedIncrement; } if(myEngine->KeyHeld(Key_S)) { length -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_A)) { angle -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_D)) { angle += carSpeedIncrement; } carVolocityX = cos(angle); carVolocityZ = cos(angle); car->MoveX(carVolocityX * frameTime); car->MoveZ(carVolocityZ * frameTime);

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.