Questions tagged «c++»

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


1
游戏编程:通用方法和设计模式
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 2年前关闭。 我开始编写一个非常简单的游戏引擎,以便可以更好地学习OpenGL 3.x,但是由于我的经验不足以及对如何设计3D游戏的了解很少,所以我通常会遇到一些问题,使我意识到我应该设计自己的课程不一样。我面临的其他问题是如何在游戏中以简洁的方式跟踪时间并根据需要更新动作,以及如何告知渲染器需要重绘。另外,我仍然需要使用Get和Set函数来将各种标志从一个对象传递到另一个对象,这是不好的做法吗? 因此,正如标题所述,我对任何可以帮助我的书籍或文章/教程和资料来源都感兴趣,并且可以解释游戏设计中的一些常见设计模式(例如,游戏状态处理程序,字体等)。 顺便说一句,我仍在使用freeglut,您会建议我在进行升级之前或对OpenGL有了更好的了解后,转向一个更好的窗口系统吗?

1
基于回合的JRPG战斗系统架构资源
在过去的几个月中,我一直在忙于使用SDL库用C ++编程2D JRPG(日式RPG)。探索模式或多或少已经完成。现在我要解决战斗模式。 我无法找到有关如何构造基于回合的经典JRPG战斗系统的任何资源。我发现的只是关于破坏公式的讨论。我尝试过谷歌搜索,搜索gamedev.net的留言板,以及在Stack Exchange上浏览与C ++相关的问题。我也尝试读取现有开源RPG的源代码,但是如果没有某种指导,就好像在大海捞针一样。 我不是在寻找D&D之类的规则或类似规则。我纯粹是在谈论代码和对象结构设计。战斗系统使用菜单要求玩家输入。接下来,当英雄和敌人执行其动作时,将执行战斗回合。 谁能指出我正确的方向?提前致谢。
9 c++  2d  architecture  sdl  rpg 


3
如何使用Bullet Physics / Ogre3D在RPG中移动角色?
最近,我在Ogre3D游戏中移动角色时遇到了问题。基本上,我使用子弹的RigidBody->translate()功能来移动角色,但是当这样做并撞到墙上时,我会略微穿过它,然后弹回去。我想知道是否有另一种好的方法可以在一个带有墙壁的简单平面世界中移动我的角色(具有球形碰撞形状的角色)? 我正在使用的与此相对的库是“ Ogre3D”和“子弹物理学”。

3
如何计算球体和平面之间的碰撞响应?
我正在尝试创建一个简单的3D游戏,并且需要将玩家限制在游戏世界的范围内。当玩家撞到世界的两边时,我希望玩家的飞船稍微弹起。 实际上,我试图将玩家困在一个盒子里,阻止他们从侧面逃脱…… 我设法将游戏世界的界限定义为一组平面,并具有法线和距原点的距离。播放器有一个球形的边界球,通过跟踪此网站http://www.gamasutra.com/view/feature/3383/simple_intersection_tests_for_games.php,我设法检测到了碰撞。 现在,我无法完全确定检测到碰撞时该怎么办。我能管理的最好的办法是让玩家卡在飞机上,直行通过飞机,或者以非常快的速度反复跳下飞机。 常识告诉我,我需要使用其法线来计算平面上的反射角并将其应用于玩家的速度,但是我想我首先需要查看玩家是否已通过平面,这是我无法做到的锻炼。

1
如何在Windows中从源代码构建和运行Doom 3?
我正在尝试从开源版本构建并运行Doom 3,以便更好地了解引擎的工作原理。不幸的是,我无法使用自己构建的二进制文件运行游戏。我只是获得控制台,但无法运行实际的游戏。 这是我所做的: 从游戏库下载了源代码 下载并安装DirectX SDK 从Steam购买,下载并安装Doom 3 使用VS2010 SP1在新文件夹中打开解决方案 建立项目 跑了 默认情况下,doom解决方案在调试设置上将命令行设置为引用默认的Steam Doom3安装路径。这是用于从vstudio运行项目的默认命令行参数。 +设置fs_basepath“ C:\ Program Files(x86)\ Steam \ steamapps \ common \ doom 3” +设置com_allowConsole 1 +设置si_pure 0 这样做导致控制台打开并显示以下日志: DOOM 1.3.1.1304 win-x86 Jan 23 2012 00:50:27 1596 MHz Intel CPU with MMX & SSE & SSE2 & SSE3 …
9 c++  windows 

1
为什么V8不能与SDL线程一起运行?
我能够将V8与我的游戏进行编译和链接,并且代码解释正常。但是我想划分代码,游戏循环应该在一个线程中存在,脚本引擎应该在游戏循环的第二个线程中运行。我正在使用SDL,因此尝试使用此代码生成新线程 SDL_CreateThread(ScriptingEngine::SpawnMain, NULL); 以下代码是我的测试脚本引擎: namespace ScriptingEngine { v8::HandleScope handleScope; v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Persistent<v8::Context> context; void Setup() { // TODO: bind functions to global // ... context = v8::Context::New(NULL, global); } int SpawnMain(void *arguments) { v8::Context::Scope scope(context); v8::Handle<v8::Script> script = v8::Script::Compile( v8::String::New("'Hello World'") ); v8::Handle<v8::Value> result = script->Run(); context.Dispose(); return …

1
我在此组件体系结构方面走的正确吗?
我最近决定修改游戏架构,以摆脱深层的类层次结构,并用可配置的组件替换它们。我要替换的第一个层次结构是Item层次结构,我想了解一些有关我是否处在正确轨道上的建议。 以前,我的层次结构如下所示: Item -> Equipment -> Weapon -> Armor -> Accessory -> SyntehsisItem -> BattleUseItem -> HealingItem -> ThrowingItem -> ThrowsAsAttackItem 不用说它开始变得凌乱,而对于需要多种类型的物品来说,这并不是简单的解决方案(例如,某些设备用于物品合成,某些设备可抛弃,等等)。 然后,我尝试将功能重构并将其放置到基础项目类中。但是后来我注意到该物料具有大量未使用/多余的数据。现在,我尝试为我的其他游戏类创建至少一个类似于建筑的组件,至少要为我的物品做一个。 这是我目前正在考虑的组件设置: 我有一个基础项目类,该类具有用于各种组件的插槽(例如,设备组件插槽,修复组件插槽等,以及任意组件的映射),因此如下所示: class Item { //Basic item properties (name, ID, etc.) excluded EquipmentComponent* equipmentComponent; HealingComponent* healingComponent; SynthesisComponent* synthesisComponent; ThrowComponent* throwComponent; boost::unordered_map<std::string, std::pair<bool, ItemComponent*> > AdditionalComponents; } 所有项目组件都将从基本ItemComponent类继承,并且每种Component类型都负责告诉引擎如何实现该功能。也就是说,HealingComponent告诉战斗机械师如何将物品当作治疗物品使用,而ThrowComponent告诉战斗引擎如何将物品视为可扔物品。 …

3
那里有一个很好的跨平台C ++矢量图形库吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 5年前关闭。 我正在制作游戏,想使用矢量图形。我开始使用开罗对其进行重新编码,性能令人震惊。因此,我正在寻找其他图书馆。它需要用于C ++和跨平台(例如,没有Direct2D)。有人曾经这样问过另一个问题,但是没有任何合适的答案。一定有东西...?
9 c++  graphics  vector 

1
STL对于移动设备是否足够有效?
在iOS和Android NDK上进行移动游戏开发时,一些开发人员编写了自己的C ++容器,而另一些开发人员则声称STL足以满足移动游戏开发的需求(例如,iPhone 3D编程的作者使用STL而非Objective-在他的示例中使用C。他的辩解是STL不比Objective-C慢。 然后,还有一些移动开发人员完全放弃了C ++,完全(或大部分)使用C语言(C89 / C90)开发了游戏。 每种方法的优点和缺点是什么?

1
C ++模型加载API?
我正在寻找功能最强大的C ++模型加载API。 到目前为止,我已经发现了大量的ply,obj和其他此类文件格式加载器。但是我发现的库往往只加载一种模型类型,这需要您学习很多api接口? 是否有一个API可以全部加载它们,一个API可以对其进行解析,一个API可以将它们全部加载,并且在顶点缓冲区中将它们绑定?
9 c++  models  loading 

3
2D软体物理引擎?
嗨,我最近学习了SFML图形库,并想使用或制作一个非刚体2D物理系统来使用它。我有三个问题: Box2d 中刚体的定义是 一块物质如此强大,以至于该物质上任何两个比特之间的距离都是完全恒定的。 这正是我所不想要的,因为我想制造弹性,可变形,易断裂和重新连接的物体。1.是否有任何简单的2D物理引擎,但是具有这些特性?最好是免费还是开源? 2.即使不是基于刚体,我是否也可以使用box2d并对其进行处理以创建它? 3.最后,如果有一个像这样的简单物理引擎,我是否应该继续创建一个新的物理引擎,仅仅是为了体验并增强物理数学知识?如果我想修改现有引擎的代码或创建具有真正独特物理原理的游戏,我觉得这会有所帮助。 谢谢!
9 c++  physics 

4
在基于二维图块的游戏中,滚动的好方法是什么?
我将D3DXSPRITE包装器与Direct3D配合使用,将图块绘制到屏幕上。我有一个图块类,其中包含诸如碰撞和图块类型的成员,然后我有一个图块数组,例如 平铺网格[256] [256]; 哪种方法更好? -将播放器绘制在屏幕中央,并在地图绘制位置偏移。 -使用以下摄像机移动播放器。 我使用的是第一种方法,但是当您到达地图的左上边缘以及其他玩家/敌人同时在地图上移动时,它变得非常复杂 如果我让摄像机跟随播放器,即使屏幕上只能容纳几个网格块,我是否也必须为每个单个网格块调用spriteBatch-> Draw(...)?
9 c++  directx  directx9 

2
用C ++ / SDL制作2D Platformer。寻找教程/示例/资源[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 去年关闭。 我有很多C ++经验,但是没有游戏编程经验。今年夏天,我计划使用C ++ / SDL从头开始创建2D平台游戏,以提供学习体验。我正在寻找尽可能多的资源来帮助我入门。好的源代码,教程,任何东西。 我发现的最好的教程之一是已故的Florian Hufsky的非活跃的Jump'n'run开发教程。任何类似的教程吗?
9 c++  2d  sdl  platformer 

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.