通关旅

softgamer的痕迹
posts - 16, comments - 13, trackbacks - 0, articles - 0

 构建游戏,其实就是构建你的管理器,你的梦工场。

 对于这款游戏,我会设计一些管理器类,
 他们分别是: 总管理类,  总更新和渲染

 它的下面是:

            小球管理类,负责小球的更新和渲染

            砖块管理类 负责 砖块 的更新和渲染

            宝物管理类 负责 宝物 的更新和渲染

            。。。。。。。。。

 

  当总管理类更新或渲染时,依次调用各个管理子类的更新或渲染,这样一些具体的东西可以通过同样的管理接口运作,而上层管理者也不用具体的管下级如何运作。
 其中的一些细节是:
 管理类部分,
    举一个例子,对于不同类型的砖块来说,他们属于一个砖块
基类,并由这个砖块 基类派生,创建自己的属性,然后再向砖块管理器注册,每增加一种类型的砖块就向管理者注册,当管理器创建此种类型的砖块时,实际就是调用这些子类的接口并创建它们。
   这样,我们就隐约看见了一个公司的运作,他们有总管理者,部门管理者和员工,管理者们是核心,
员工是扩展部分,具体包括各种砖块。
 
  资源管理部分,
    很多朋友愿意把资源一次性载入,好处是,节省运行时间,方便管理等。坏处是程序初始运行时间长,内存消耗太大,很显然,你不可能同时使用所有资源,一些不用的资源,也驻留在内存里,等待调用,对于系统的有效性来讲,实在有些不划算。
   实时载入资源好处是内存使用很有效,但是频繁读写硬盘,程序运行时间延迟突出,使程序运行有时很不连贯。因此我们要具体情况具体分析,要给资源分级,哪些一次性载入,哪些是实时读写。

  

  碰撞检测部分,

  目前使用广泛的是使用矩形框来进行粗略的碰撞检测。

  几种主要的碰撞:

    小球与平台, 按照角度,速度,加速度定出轨迹运动

    小球与砖块, 删除砖块(重要的是从内存中删除),

    小球与宝物 更改小球的相关属性, 删除宝物(重要的是从内存中删除)。

    小球与墙壁 按照角度,速度,加速度定出轨迹运动

    砖块与砖块, 一些会 按照角度,速度,加速度定出轨迹运动, 一些不予理会

  
  碰撞管理只用一个管理器完成,只是要提供不同的接口和容器。   、

  检 测小球与砖块,或宝物发生碰撞时,可能是一对多,也可能是多对多。这个可以在小球管理器内放置一个指针,用来指示当前正在判断的砖块。进行检测时,就把这个指针指向的砖块传递给砖块管理器进行检测。然后改变这个指针。直到指针回到容器头部。

 

  属性资源的管理

   当然全部由外部资源属性文件读取,包括,小球,砖块,宝物,背景等等各个方面的属性。完全静态读取,好处是当物品被创建时,读入属性值,如果已经初始化,就使用属性值。


   目前总体框架,先想到这里。 大体是这样了,具体的还有很多,毕竟管理的资源多,逻辑也相对复杂。


     


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理