小编top*_*dev的帖子

C++多字符文字

我不知道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运算符的坏特征吗?

c c++ syntax literals

40
推荐指数
3
解决办法
8537
查看次数

Lua,游戏状态和游戏循环

  1. 在每个游戏循环迭代中调用main.lua脚本 - 是好还是坏设计?它如何影响性能(相对)?

  2. 从维护游戏状态一个.C++主机程序或b.来自Lua脚本或c.来自两者并同步它们?

(关于该主题的上一个问题:Lua和C++:职责分离)

(我投票给每个答案.最好的答案将被接受.)

c++ lua game-loop lua-c++-connection

22
推荐指数
7
解决办法
1万
查看次数

在MinGW 4.7.1上与-static-libstdc ++标志链接

我尝试
使用
编译器标志在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++ mingw allegro codeblocks mingw32

12
推荐指数
2
解决办法
2万
查看次数

Lua和C++:职责分离

请帮助分类组织C++/Lua游戏代码的方式并分离他们的职责.什么是最方便的方式,你使用哪一种?

例如,Lua可以仅用于初始化C++对象,也可以用于每次游戏循环迭代.它既可以用于游戏逻辑,也可以用于图形.一些游戏引擎提供对脚本中所有子系统的完全控制!我真的不喜欢这种方法(根本没有分离).

将所有游戏对象(npc,位置)实现为没有C++对象的Lua表是一个好主意吗?或者最好镜像它们(Lua表来控制C++对象)?或者是其他东西?

谢谢.

编辑.我的分类:Lua和C++:职责分离.

主题的延续:Lua,游戏状态和游戏循环

c++ oop lua modularity lua-c++-connection

11
推荐指数
1
解决办法
3241
查看次数

在Lua表中注册C函数

如何在Lua中注册C函数,但不是在全局上下文中,而是作为表字段?

c++ lua lua-c++-connection

10
推荐指数
2
解决办法
9689
查看次数

C++将UTF-8字符串迭代或拆分为符号数组?

搜索与平台和第三方库无关的迭代UTF-8字符串或将其拆分为UTF-8符号数组的方式.

请发布一个代码段.

解决: C++迭代或将UTF-8字符串拆分为符号数组?

c++ arrays split utf-8

10
推荐指数
2
解决办法
9517
查看次数

C++宏"如果定义了类"

在C++中是否有这样的宏(交叉编译器或特定于编译器):

#if isclass(NameSpace::MyClass)
Run Code Online (Sandbox Code Playgroud)

会有用的.

c++ macros c-preprocessor

9
推荐指数
4
解决办法
4170
查看次数

shared_ptr需要完整的类型; 不能用lua_State*

我正在为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)

我可以解决这个问题吗?谢谢.

c++ lua boost shared-ptr

8
推荐指数
1
解决办法
1255
查看次数

在游戏子系统中注册游戏对象组件?(基于组件的游戏对象设计)

我正在创建一个基于组件的游戏对象系统.一些技巧:

  1. GameObject只是一个清单Components.
  2. GameSubsystems.例如,渲染,物理等.每个都GameSubsystem包含一些指针Components.GameSubsystem是一个非常强大和灵活的抽象:它代表了游戏世界的任何片段(或方面).

有在登记的机构的需要ComponentsGameSubsystems(当GameObject被创建和组成).有4种方法:


  • 1:责任链模式.每一个Component都提供给每一个人GameSubsystem.GameSubsystem做出Components注册(以及如何组织它们)的决定.例如,GameSubsystemRender可以注册可渲染组件.

亲.Components对它们的使用方式一无所知.低耦合.答:我们可以添加新的GameSubsystem.例如,让我们添加注册所有ComponentTitle的GameSubsystemTitles,并保证每个标题都是唯一的,并提供按标题查询对象的接口.当然,在这种情况下,ComponentTitle不应该被重写或继承.B.我们可以重组现有的GameSubsystems.例如,GameSubsystemAudio,GameSubsystemRender,GameSubsystemParticleEmmiter可以合并到GameSubsystemSpatial中(将所有音频,发声器,渲染Components放在同一层次结构中并使用父相对变换).

CON.每一次检查.效率很低.

CON.Subsystems知道Components.


  • 2:每次Subsystem搜索Components特定类型.

亲.比以往更好的表现Approach 1.

CON.Subsystems还是知道的Components.


  • 3:Component注册自己GameSubsystem(s).我们在编译时知道有一个GameSubsystemRenderer,所以让我们的ComponentImageRender会调用类似GameSubsystemRenderer :: register(ComponentRenderBase*)的东西.
    观察者模式.Component订阅"更新"事件(发送者 …

c++ architecture components subsystem

7
推荐指数
1
解决办法
2712
查看次数

最好的Lua OOP库

在速度,语法方便性,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)

但我不喜欢这个许可证.

并且:http://lua-users.org/wiki/ObjectLua

oop lua

6
推荐指数
1
解决办法
5507
查看次数