通常来讲,在现在一些游戏的开发中,类的设计是一个很重要的问题。但是,在有些时候,我们却发现这个问题这个问题的确是个头疼的问题。因为这是一个抽象的过程,如果类设计的不错,那么你的游戏开发中可以非常清楚灵活的地做一些事情,相反的话,那么你的工作量会越来越大,直到你受不了。
从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;
}
这里只是提供了一个思路,我们在设计游戏的时候可以借鉴这个框架,以方便我们能够设计出较为完美的框架来。
阅读(2718) | 评论(0) | 转发(0) |