Posted on 2007-02-06 22:17
softgamer 阅读(289)
评论(0) 编辑 收藏 引用
构建游戏,其实就是构建你的管理器,你的梦工场。
对于这款游戏,我会设计一些管理器类,
他们分别是: 总管理类, 总更新和渲染
它的下面是:
小球管理类,负责小球的更新和渲染
砖块管理类,
负责
砖块
的更新和渲染
宝物管理类,
负责
宝物
的更新和渲染
。。。。。。。。。
当总管理类更新或渲染时,依次调用各个管理子类的更新或渲染,这样一些具体的东西可以通过同样的管理接口运作,而上层管理者也不用具体的管下级如何运作。
其中的一些细节是:
管理类部分,
举一个例子,对于不同类型的砖块来说,他们属于一个砖块
基类,并由这个砖块
基类派生,创建自己的属性,然后再向砖块管理器注册,每增加一种类型的砖块就向管理者注册,当管理器创建此种类型的砖块时,实际就是调用这些子类的接口并创建它们。
这样,我们就隐约看见了一个公司的运作,他们有总管理者,部门管理者和员工,管理者们是核心,
员工是扩展部分,具体包括各种砖块。
资源管理部分,
很多朋友愿意把资源一次性载入,好处是,节省运行时间,方便管理等。坏处是程序初始运行时间长,内存消耗太大,很显然,你不可能同时使用所有资源,一些不用的资源,也驻留在内存里,等待调用,对于系统的有效性来讲,实在有些不划算。
实时载入资源好处是内存使用很有效,但是频繁读写硬盘,程序运行时间延迟突出,使程序运行有时很不连贯。因此我们要具体情况具体分析,要给资源分级,哪些一次性载入,哪些是实时读写。
碰撞检测部分,
目前使用广泛的是使用矩形框来进行粗略的碰撞检测。
几种主要的碰撞:
小球与平台, 按照角度,速度,加速度定出轨迹运动
小球与砖块, 删除砖块(重要的是从内存中删除),
小球与宝物,
更改小球的相关属性,
删除宝物(重要的是从内存中删除)。
小球与墙壁,
按照角度,速度,加速度定出轨迹运动
砖块与砖块, 一些会
按照角度,速度,加速度定出轨迹运动, 一些不予理会
碰撞管理只用一个管理器完成,只是要提供不同的接口和容器。 、
检
测小球与砖块,或宝物发生碰撞时,可能是一对多,也可能是多对多。这个可以在小球管理器内放置一个指针,用来指示当前正在判断的砖块。进行检测时,就把这个指针指向的砖块传递给砖块管理器进行检测。然后改变这个指针。直到指针回到容器头部。
属性资源的管理
当然全部由外部资源属性文件读取,包括,小球,砖块,宝物,背景等等各个方面的属性。完全静态读取,好处是当物品被创建时,读入属性值,如果已经初始化,就使用属性值。
目前总体框架,先想到这里。 大体是这样了,具体的还有很多,毕竟管理的资源多,逻辑也相对复杂。