Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8607555
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: 项目管理

2007-06-06 13:25:53

通常来讲,在现在一些游戏的开发中,类的设计是一个很重要的问题。但是,在有些时候,我们却发现这个问题这个问题的确是个头疼的问题。因为这是一个抽象的过程,如果类设计的不错,那么你的游戏开发中可以非常清楚灵活的地做一些事情,相反的话,那么你的工作量会越来越大,直到你受不了。
    从GameMaker看通常游戏类的设定,这是一个逆向思维的过程。先参考一下现在成形的东西,然后对他进行加强。现在,我们一个对象一个对象的说,为了方便起见,我们把他以类的形式进行展开(不过值得说明的一点是我只是依照GameMaker的方式进行设计,实际工作当中,请不要过于拘泥):
1、Sprite
class Sprite//精灵类
{
    String name;//精灵名称
    int x,y;//精灵坐标
    int w,h;//精灵大小
    bool transparent;//是否透明
    Sprinte(String fileName);//构造精灵
}
2、Sound
class Sound//声道类
{
    Sound(String fileName);//构造声音
    int volume;//音量
    int pan;//声道
    String name;
}
3、Background
class Background//背影
{
    Background(String fileName);//构造
    int w,h;//单块大小
    bool transparent;//透明否
    String name;
}
4、Path
class Path//路径
{
    String name;
    int precision;//维度
    int lines[precition];//线段
}
5、Script
class Sprite//脚本
{
    ---
}
6、Font
Struct//字体
{
    String name;
    String fontName;
    int size;
    bool bold;
    bool italic;
    COLOREF forecolor;
}Font;
7、Object
class Object//对象
{
    String name;
    bool visible;
    bool solid;
    unsigned short int Depth;
    object(Sprite spriteName);//构造对象
    event()->action()
}
8、Room
class Room//房间-关卡
{
    Room(Background background);
    int numObj;
    Object objs[numObj];
    String caption;
    String name;
    int w,h;
    int speed;
}
9、Game
class Game//整个游戏
{
    String name;
    bool bFullScreen;
    int colorDepth;
    int resolutionX;
    int resolutionY;
    int frequency;
    int priority;//进程优先级
    ICON gameIcon;

}

这里只是提供了一个思路,我们在设计游戏的时候可以借鉴这个框架,以方便我们能够设计出较为完美的框架来。
阅读(2708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~