我正在考虑使用OpenGL和C ++创建一个基本的侧卷轴,但是我在处理一些基本的概念问题时遇到了麻烦,即:
将窗口划分为简单的“块”(某种网格系统)。我想在什么级别做这个? (OpenGL视口大小,或通过一些确保使用x的倍数的抽象?)
存储所有这些“块”的数据,以便进行碰撞检测和一些特殊效果。这是一个明智的方法 - 我正在思考多维对象数组(包含像瓷砖类型这样的信息),但这似乎不是一个非常优雅或有效的解决方案。
答案 0 :(得分:1)
通常,窗口(即视口)不是分为网格而是“游戏区域”。根据你的艺术风格选择一个好的尺寸(像64px一样 - 你可能想要出于技术原因选择两个尺寸的尺寸)并为你的游戏创建那么大的瓷砖(作为一维数组存储和加载) )
然后,这些图块在tilemap中引用(通过偏移量),实际上描述了您的关卡的外观。每个磁贴还可以具有用于处理冲突和游戏事件的额外元数据。您可能希望使用现有的地图格式和工具集来节省时间,例如Mappy。
答案 1 :(得分:0)
提示:
分别考虑显示和数据(查找模型 - 视图 - 控制器)。
如何存储数据取决于如何访问数据,而不是如何显示数据。从计算机的角度来看它!
提示,通常最简单的方法是在数据的一维存储中工作,然后在下一个点向上/向下的位置处理,而不是在2d中工作。