繁体   English   中英

C ++中的Side Scroller

[英]Side Scroller in C++

我正在考虑使用OpenGL和C ++创建一个基本的侧滚动程序,但是我在解决一些基本的概念问题时遇到了麻烦,即:

  1. 将窗口划分为简单的“块”(某种网格系统)。 我要在什么级别上执行此操作? (OpenGL视口的大小,或通过某种抽象来确保使用x的倍数?)

  2. 为所有这些“块”存储数据,以便进行碰撞检测和某些特殊效果。 解决这个问题的明智方法是-我沿着对象的多维数组(包含诸如图块类型之类的信息)的思路进行思考,但这似乎不是一个非常优雅或有效的解决方案。

通常,不是被划分为网格的窗口(即视口)而是“游戏区域”。 根据您的艺术风格选择一个合适的尺寸(大约64像素-出于技术原因,您可能希望选择一个为2的幂的尺寸),然后为您的游戏创建该尺寸的图块(以一维数组的形式存储和加载) )

然后,在图块贴图中引用这些图块(通过偏移量),该图实际上描述了您的关卡外观。 每个图块还可以具有用于处理碰撞和游戏事件的额外元数据。 您可能希望使用现有的地图格式和工具集来节省时间,例如Mappy。

提示:
分别考虑显示和数据(查找“模型-视图-控制器”)。

数据的存储方式取决于如何访问数据,而不取决于如何显示数据。 从计算机的角度考虑它!

提示,通常最简单的方法是在一维数据存储中进行计算,然后确定下一个点的向上/向下位置要比在2d中工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM