弹弹堂游戏代码资料.docx
- 文档编号:9142791
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:64
- 大小:34.04KB
弹弹堂游戏代码资料.docx
《弹弹堂游戏代码资料.docx》由会员分享,可在线阅读,更多相关《弹弹堂游戏代码资料.docx(64页珍藏版)》请在冰点文库上搜索。
弹弹堂游戏代码资料
#ifndef_COMMON_CLASS_H_
#define_COMMON_CLASS_H_
#include
//全局变量、宏定义
#defineMAX_NAME_LEN128//名字长度
//Sprite精灵与世界边界碰撞响应定义(碰撞之后APIOnSpriteColWorldLimit将被调用)
enumEWorldLimit
{
WORLD_LIMIT_OFF,//关闭与世界边界的碰撞
WORLD_LIMIT_NULL,//碰撞之后引擎不做任何处理,由各游戏自己处理响应
WORLD_LIMIT_RIGID,//刚性物理碰撞反应
WORLD_LIMIT_BOUNCE,//反弹模式
WORLD_LIMIT_CLAMP,//小幅反弹,逐渐停止模式(比如篮球落地)
WORLD_LIMIT_STICKY,//碰撞之后静止
WORLD_LIMIT_KILL,//碰撞之后精灵将被删除
WORLD_LIMIT_INVALID,//无效值
};
///精灵与精灵之间、精灵与地图中其它精灵之间的碰撞响应(碰撞之后APIOnSpriteColSprite将被调用)
enumECollisionResponse
{
COL_RESPONSE_OFF,//关闭碰撞响应(不调用OnSpriteColSprite)
COL_RESPONSE_RIGID,//刚性物理碰撞响应
COL_RESPONSE_BOUNCE,//反弹模式
COL_RESPONSE_CLAMP,//小幅反弹,逐渐停止模式(比如篮球落地)
COL_RESPONSE_STICKY,//碰撞之后静止
COL_RESPONSE_KILL,//碰撞之后精灵将被删除
COL_RESPONSE_CUSTOM,//碰撞之后引擎不做任何处理,由各游戏自己处理响应
COL_RESPONSE_INVALID,//无效值
};
//鼠标按键值定义
enumMouseTypes
{
MOUSE_LEFT=0,//左键
MOUSE_RIGHT=1,//右键
MOUSE_MIDDLE=2//中键
};
//键盘KEY值定义
enumKeyCodes
{
KEY_NULL=0x000,/// KEY_BACKSPACE=0x001, KEY_TAB=0x002, KEY_ENTER=0x003, KEY_CONTROL=0x004, KEY_ALT=0x005, KEY_SHIFT=0x006, KEY_PAUSE=0x007, KEY_CAPSLOCK=0x008, KEY_ESCAPE=0x009, KEY_SPACE=0x00a, KEY_PAGE_DOWN=0x00b, KEY_PAGE_UP=0x00c, KEY_END=0x00d, KEY_HOME=0x00e, KEY_LEFT=0x00f, KEY_UP=0x010, KEY_RIGHT=0x011, KEY_DOWN=0x012, KEY_PRINT=0x013, KEY_INSERT=0x014, KEY_DELETE=0x015, KEY_HELP=0x016, KEY_0=0x017, KEY_1=0x018, KEY_2=0x019, KEY_3=0x01a, KEY_4=0x01b, KEY_5=0x01c, KEY_6=0x01d, KEY_7=0x01e, KEY_8=0x01f, KEY_9=0x020, KEY_A=0x021, KEY_B=0x022, KEY_C=0x023, KEY_D=0x024, KEY_E=0x025, KEY_F=0x026, KEY_G=0x027, KEY_H=0x028, KEY_I=0x029, KEY_J=0x02a, KEY_K=0x02b, KEY_L=0x02c, KEY_M=0x02d, KEY_N=0x02e, KEY_O=0x02f, KEY_P=0x030, KEY_Q=0x031, KEY_R=0x032, KEY_S=0x033, KEY_T=0x034, KEY_U=0x035, KEY_V=0x036, KEY_W=0x037, KEY_X=0x038, KEY_Y=0x039, KEY_Z=0x03a, KEY_TILDE=0x03b, KEY_MINUS=0x03c, KEY_EQUALS=0x03d, KEY_LBRACKET=0x03e, KEY_RBRACKET=0x03f, KEY_BACKSLASH=0x040, KEY_SEMICOLON=0x041, KEY_APOSTROPHE=0x042, KEY_COMMA=0x043, KEY_PERIOD=0x044, KEY_SLASH=0x045, KEY_NUMPAD0=0x046, KEY_NUMPAD1=0x047, KEY_NUMPAD2=0x048, KEY_NUMPAD3=0x049, KEY_NUMPAD4=0x04a, KEY_NUMPAD5=0x04b, KEY_NUMPAD6=0x04c, KEY_NUMPAD7=0x04d, KEY_NUMPAD8=0x04e, KEY_NUMPAD9=0x04f, KEY_MULTIPLY=0x050, KEY_ADD=0x051, KEY_SEPARATOR=0x052, KEY_SUBTRACT=0x053, KEY_DECIMAL=0x054, KEY_DIVIDE=0x055, KEY_NUMPADENTER=0x056, KEY_F1=0x057, KEY_F2=0x058, KEY_F3=0x059, KEY_F4=0x05a, KEY_F5=0x05b, KEY_F6=0x05c, KEY_F7=0x05d, KEY_F8=0x05e, KEY_F9=0x05f, KEY_F10=0x060, KEY_F11=0x061, KEY_F12=0x062, KEY_F13=0x063, KEY_F14=0x064, KEY_F15=0x065, KEY_F16=0x066, KEY_F17=0x067, KEY_F18=0x068, KEY_F19=0x069, KEY_F20=0x06a, KEY_F21=0x06b, KEY_F22=0x06c, KEY_F23=0x06d, KEY_F24=0x06e, KEY_NUMLOCK=0x06f, KEY_SCROLLLOCK=0x070, KEY_LCONTROL=0x071, KEY_RCONTROL=0x072, KEY_LALT=0x073, KEY_RALT=0x074, KEY_LSHIFT=0x075, KEY_RSHIFT=0x076, KEY_WIN_LWINDOW=0x077, KEY_WIN_RWINDOW=0x078, KEY_WIN_APPS=0x079, KEY_OEM_102=0x080, KEY_MAC_OPT=0x090, KEY_MAC_LOPT=0x091, KEY_MAC_ROPT=0x092, KEY_BUTTON0=0x0100, KEY_BUTTON1=0x0101, KEY_BUTTON2=0x0102, KEY_BUTTON3=0x0103, KEY_BUTTON4=0x0104, KEY_BUTTON5=0x0105, KEY_BUTTON6=0x0106, KEY_BUTTON7=0x0107, KEY_BUTTON8=0x0108, KEY_BUTTON9=0x0109, KEY_BUTTON10=0x010A, KEY_BUTTON11=0x010B, KEY_BUTTON12=0x010C, KEY_BUTTON13=0x010D, KEY_BUTTON14=0x010E, KEY_BUTTON15=0x010F, KEY_BUTTON16=0x0110, KEY_BUTTON17=0x0111, KEY_BUTTON18=0x0112, KEY_BUTTON19=0x0113, KEY_BUTTON20=0x0114, KEY_BUTTON21=0x0115, KEY_BUTTON22=0x0116, KEY_BUTTON23=0x0117, KEY_BUTTON24=0x0118, KEY_BUTTON25=0x0119, KEY_BUTTON26=0x011A, KEY_BUTTON27=0x011B, KEY_BUTTON28=0x011C, KEY_BUTTON29=0x011D, KEY_BUTTON30=0x011E, KEY_BUTTON31=0x011F, KEY_ANYKEY=0xfffe }; //类: CSprite //所有精灵的基类。 包括下面的静态精灵,动态精灵,文字,特效等均由此类继承下去 //一般的图片精灵从本类继承下去即可。 只有特殊的精灵,比如带动画的精灵,才需要从动态精灵继承下去 // classCSprite { private: charm_szName[MAX_NAME_LEN];//精灵名字 public: //构造函数,需要传入一个非空的精灵名字字符串。 如果传入的是地图里摆放好的精灵名字,则此类即与地图里的精灵绑定 //如果传入的是一个新的精灵名字,则需要调用成员函数CloneSprite,复制一份精灵对象实例,才与实际的地图精灵关联起来 //szCloneName: 预先存在于场景中,需要克隆的精灵名字 CSprite(constchar*szName); CSprite(constchar*szName,constchar*szCloneName); virtual~CSprite(); //GetName //返回值: 返回精灵名字 constchar*GetName(); //CloneSprite: 复制(创建)一个精灵。 精灵的创建方式: 先在地图中摆放一个精灵做为模板,设置好各项参数,然后在代码里使用此函数克隆一个实例 //返回值: true表示克隆成功,false克隆失败。 失败的原因可能是在地图中未找到对应名字的精灵 //参数szSrcName: 地图中用做模板的精灵名字 // boolCloneSprite(constchar*szSrcName); //DeleteSprite: 在地图中删除与本对象实例关联的精灵 // voidDeleteSprite(); //SetSpriteVisible: 设置精灵隐藏或者显示(可见不可见) //参数bVisible: true可见false不可见 // voidSetSpriteVisible(constboolbVisible); //IsSpriteVisible: 获取该精灵当前是否可见 // boolIsSpriteVisible(); //SetSpriteEnable: 禁止或者启用该精灵。 被禁止的精灵将不参与任何响应,包括不移动,没有碰撞等,仅仅是在地图中显示 //参数bEnable: true启用false禁止 // voidSetSpriteEnable(constboolbEnable); //SetSpriteScale: 设置精灵的缩放值 //参数fScale: 缩放值。 大于0的值 // voidSetSpriteScale(constfloatfScale); //IsPointInSprite: 判断某个坐标点是否位于精灵内部 //参数fPosX: X坐标点 //参数fPosY: Y坐标点 // boolIsPointInSprite(constfloatfPosX,constfloatfPosY); //SetSpritePosition: 设置精灵位置 //参数fPosX: X坐标 //参数fPosY: Y坐标 // voidSetSpritePosition(constfloatfPosX,constfloatfPosY); //SetSpritePositionX: 只设置精灵X坐标 //参数fPosX: X坐标 // voidSetSpritePositionX(constfloatfPosX); //SetSpritePositionY: 只设置精灵Y坐标 //参数fPosY: Y坐标 // voidSetSpritePositionY(constfloatfPosY); //GetSpritePositionX: 获取精灵X坐标 //返回值: 精灵的X坐标 // floatGetSpritePositionX(); //GetSpritePositionY: 获取精灵Y坐标 //返回值: 精灵的Y坐标 // floatGetSpritePositionY(); //GetSpriteLinkPointPosX: 获取精灵链接点X坐标。 链接点是依附于精灵的一个坐标点,可以在编辑器里增加或者删除 //参数iId: 链接点序号,第一个为1,后面依次递加 // floatGetSpriteLinkPointPosX(constintiId); //GetSpriteLinkPointPosY: 获取精灵链接点Y坐标。 链接点是依附于精灵的一个坐标点,可以在编辑器里增加或者删除 //参数iId: 链接点序号,第一个为1,后面依次递加 // floatGetSpriteLinkPointPosY(constintiId); //SetSpriteRotation: 设置精灵的旋转角度 //参数fRot: 旋转角度,范围0-360 // voidSetSpriteRotation(constfloatfRot); //GetSpriteRotation: 获取精灵的旋转角度 //返回值: 精灵的旋转角度 // floatGetSpriteRotation(); //SetSpriteAutoRot: 设置精灵按照指定速度自动旋转 //参数fRotSpeed: 旋转速度 // voidSetSpriteAutoRot(constfloatfRotSpeed); //SetSpriteWidth: 设置精灵外形宽度 //参数fWidth: 宽度值,大于0 // voidSetSpriteWidth(constfloatfWidth); //GetSpriteWidth: 获取精灵外形宽度 //返回值: 精灵宽度值 // floatGetSpriteWidth(); //SetSpriteHeight: 设置精灵外形高度 //参数fHeight: 精灵高度值 // voidSetSpriteHeight(constfloatfHeight); //GetSpriteHeight: 获取精灵外形高度 //返回值: 精灵高度值 // floatGetSpriteHeight(); //SetSpriteFlipX: 设置精灵图片X方向翻转显示 //参数bFlipX: true翻转false不翻转(恢复原来朝向) // voidSetSpriteFlipX(constboolbFlipX); //GetSpriteFlipX: 获取当前精灵图片X方向是否是翻转显示 //返回值: true翻转false不翻转 // boolGetSpriteFlipX(); //SetSpriteFlipY: 设置精灵图片Y方向翻转显示 //参数bFlipY: true翻转false不翻转(恢复原来朝向) // voidSetSpriteFlipY(constboolbFlipY); //GetSpriteFlipY: 获取当前精灵图片Y方向是否是翻转显示 //返回值: true翻转false不翻转 // boolGetSpriteFlipY(); //SetSpriteFlip: 同时设置精灵翻转X及Y方向 //参数bFlipX: true翻转false不翻转(恢复原来朝向) //参数bFlipY: true翻转false不翻转(恢复原来朝向) // voidSetSpriteFlip(constboolbFlipX,constboolbFlipY); //SetSpriteLifeTime: 设置精灵的生命时长,时间到了之后将自动被删除 //参数fLifeTime: 生命时长,单位秒 // voidSetSpriteLifeTime(constfloatfLifeTime); //GetSpriteLifeTime: 获取精灵生命时长 //返回值: 生命时长,单位秒 // floatGetSpriteLifeTime(); //SpriteMoveTo: 让精灵按照给定速度移动到给定坐标点 //参数fPosX: 移动的目标X坐标值 //参数fPosY: 移动的目标Y坐标值 //参数fSpeed: 移动速度 //参数bAutoStop: 移动到终点之后是否自动停止 // voidSpriteMoveTo(constfloatfPosX,constfloatfPosY,constfloatfSpeed,constboolbAutoStop); //SpriteRotateTo: 让精灵按照给定速度旋转到给定的角度 //参数fRotation: 给定的目标旋转值 //参数fRotSpeed: 旋转速度 //参数bAutoStop: 旋转到终点之后是否自动停止 // voidSpriteRotateTo(constfloatfRotation,constfloatfRotSpeed,constboolbAutoStop); //SetSpriteWorldLimit: 设置精灵的世界边界坐标限制及碰撞模式 //参数Limit: 碰撞到世界边界之后的响应模式,如果为OFF,则是关闭世界边界碰撞。 其它值见EWorldLimit //参数fLeft: 边界的左边X坐标 //参数fTop: 边界的上边Y坐标 //参数fRight: 边界的右边X坐标 //参数fBottom: 边界的下边Y坐标 // voidSetSpriteWorldLimit(constEWorldLimitLimit,constfloatfLeft,constfloatfTop,constfloatfRight,constfloatfBottom); //SetSpriteWorldLimitMode: 设置精灵的世界边界碰撞模式 //参数Limit: 碰撞到世界边界之后的响应模式,如果为OFF,则是关闭世界边界碰撞。 其它值见EWorldLimit // voidSetSpriteWorldLimitMode(constEWorldLimitLimit); //SetSpriteWorldLimitMin: 设置精灵的世界边界上边及左边坐标限制 //参数fLeft: 边界的左边X坐标 //参数fTop: 边界的上边Y坐标 // voidSetSpriteWorldLimitMin(constfloatfLeft,constfloatfTop); //SetSpriteWorldLimitMax: 设置精灵的世界边界下边及右边坐标限制 //参数fRight: 边界的右边X坐标 //参数fBottom: 边界的下边Y坐标 // voidSetSpriteWorldLimitMax(constfloatfRight,constfloatfBottom); //GetSpriteWorldLimitLeft: 获取精灵世界边界左边界限制 // floatGetSpriteWorldLimitLeft(); //GetSpriteWorldLimitTop: 获取精灵世界边界上边界限制 // floatGetSpriteWorldLimitTop(); //GetSpriteWorldLimitRight: 获取精灵世界边界右边界限制 // floatGetSpriteWorldLimitRight(); //GetSpriteWorldLimitBottom: 获取精灵世界边界下边界限制 // floatGetSpriteWorldLimitBottom(); //SetSpriteCollisionSend: 设置精灵是否可以发送(产生)碰撞 //精灵的碰撞方式为: 当A移动中碰上B时,如果A是可以产生碰撞的,B是可以接受碰撞的,则这2个物体会产生碰撞,精灵碰撞的API将被调用。 否则无碰撞发生 //参数bSen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 弹弹 游戏 代码 资料