我不知道C和C++允许multicharacter literal
:不是'c'(C中的int类型和C++中的char),但'tralivali'(类型为int!)
enum
{
ActionLeft = 'left',
ActionRight = 'right',
ActionForward = 'forward',
ActionBackward = 'backward'
};
Run Code Online (Sandbox Code Playgroud)
标准说:
C99 6.4.4.4p10:"包含多个字符(例如,'ab')的整数字符常量的值,或包含未映射到单字节执行字符的字符或转义序列的值是实现定义的".
我发现它们广泛用于C4发动机.但是,当我们谈论平台独立序列化时,我认为它们并不安全.Thay也会让人感到困惑,因为看起来像字符串.那么什么是多字符文字的使用范围,它们对某些东西有用吗?他们是否只是为了与C代码兼容而使用C++?它们被认为是goto运算符的坏特征吗?
在每个游戏循环迭代中调用main.lua脚本 - 是好还是坏设计?它如何影响性能(相对)?
从维护游戏状态一个.C++主机程序或b.来自Lua脚本或c.来自两者并同步它们?
(关于该主题的上一个问题:Lua和C++:职责分离)
(我投票给每个答案.最好的答案将被接受.)
我尝试
使用
编译器标志在MinGW 4.7.1 (在Win 7上使用Code :: Blocks 12.11 )编译(Allegro 5)
(在Project :: Linker settings :: Other linker settings中写入它们):
-static-libgcc
-static-libstdc ++
结果:
无法识别的命令行选项'-static-libstdc ++'
怎么解决?
请帮助分类组织C++/Lua游戏代码的方式并分离他们的职责.什么是最方便的方式,你使用哪一种?
例如,Lua可以仅用于初始化C++对象,也可以用于每次游戏循环迭代.它既可以用于游戏逻辑,也可以用于图形.一些游戏引擎提供对脚本中所有子系统的完全控制!我真的不喜欢这种方法(根本没有分离).
将所有游戏对象(npc,位置)实现为没有C++对象的Lua表是一个好主意吗?或者最好镜像它们(Lua表来控制C++对象)?或者是其他东西?
谢谢.
编辑.我的分类:Lua和C++:职责分离.
主题的延续:Lua,游戏状态和游戏循环
在C++中是否有这样的宏(交叉编译器或特定于编译器):
#if isclass(NameSpace::MyClass)
Run Code Online (Sandbox Code Playgroud)
会有用的.
我正在为Lua编写C++/OOP包装器.我的代码是:
class LuaState
{
boost::shared_ptr<lua_State> L;
LuaState(): L( luaL_newstate(), LuaState::CustomDeleter )
{
}
}
Run Code Online (Sandbox Code Playgroud)
问题是lua_State是不完整的类型,而shared_ptr构造函数需要完整的类型.我需要安全的指针共享.(有趣的事情提升文档说大多数函数不需要完整类型,但构造函数需要,因此无法使用它.http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/smart_ptr.htm)
我可以解决这个问题吗?谢谢.
我正在创建一个基于组件的游戏对象系统.一些技巧:
GameObject
只是一个清单Components
.GameSubsystems
.例如,渲染,物理等.每个都GameSubsystem
包含一些指针Components
.GameSubsystem
是一个非常强大和灵活的抽象:它代表了游戏世界的任何片段(或方面).有在登记的机构的需要Components
在GameSubsystems
(当GameObject
被创建和组成).有4种方法:
Component
都提供给每一个人GameSubsystem
.GameSubsystem
做出Components
注册(以及如何组织它们)的决定.例如,GameSubsystemRender可以注册可渲染组件.亲.Components
对它们的使用方式一无所知.低耦合.答:我们可以添加新的GameSubsystem
.例如,让我们添加注册所有ComponentTitle的GameSubsystemTitles,并保证每个标题都是唯一的,并提供按标题查询对象的接口.当然,在这种情况下,ComponentTitle不应该被重写或继承.B.我们可以重组现有的GameSubsystems
.例如,GameSubsystemAudio,GameSubsystemRender,GameSubsystemParticleEmmiter可以合并到GameSubsystemSpatial中(将所有音频,发声器,渲染Components
放在同一层次结构中并使用父相对变换).
CON.每一次检查.效率很低.
CON.Subsystems
知道Components
.
Subsystem
搜索Components
特定类型.亲.比以往更好的表现Approach 1
.
CON.Subsystems
还是知道的Components
.
Component
注册自己GameSubsystem(s)
.我们在编译时知道有一个GameSubsystemRenderer,所以让我们的ComponentImageRender会调用类似GameSubsystemRenderer :: register(ComponentRenderBase*)的东西.Component
订阅"更新"事件(发送者 …在速度,语法方便性,LOC和许可方面,最好的Lua OOP库是什么?谢谢.
我找到了LOOP.http://loop.luaforge.net/index.html它提供了非常好的语法:
local oo = require "loop.base" local
Date = oo.class
{
-- default field values
day = 1, month = 1, year = 1900,
}
local birthday = Date {} -- instance
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个许可证.
c++ ×9
lua ×5
oop ×2
allegro ×1
architecture ×1
arrays ×1
boost ×1
c ×1
codeblocks ×1
components ×1
game-loop ×1
literals ×1
macros ×1
mingw ×1
mingw32 ×1
modularity ×1
shared-ptr ×1
split ×1
subsystem ×1
syntax ×1
utf-8 ×1