游戏程序设计 - 威客中国

游戏程序设计 - 威客中国

ID:18515537

大小:67.00 KB

页数:22页

时间:2018-09-18

游戏程序设计 - 威客中国_第1页
游戏程序设计 - 威客中国_第2页
游戏程序设计 - 威客中国_第3页
游戏程序设计 - 威客中国_第4页
游戏程序设计 - 威客中国_第5页
资源描述:

《游戏程序设计 - 威客中国》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、游戏程序设计FLYTOSKY本来是个玩家操纵自己的飞机在空中躲避敌人以及子弹的一个动作类游戏,只是游戏中玩家过于被动,因此有了给飞机加上武器系统的设想。为了实现这个功能,主要有几个代码增加:一.子弹类的设计代码。二.子弹容器的代码(游戏里本来是用vector来管理精灵,因此为了方便这里也用vector。)三.便利子弹碰撞检测的代码为了实现这些功能,首先设计子弹的类。对于类中的各种成员进行分析:classBullet{public:Bullet(void);Bullet(HINSTANCEhInst,intmode,intvx,intvy,intn,boolprotect=f

2、alse);//构造函数,voidCreateBullet(HINSTANCEhInst,intmode,intex,intey,intvx,intvy);voidExplode(HINSTANCEhInst);~Bullet(void);voidShoot(HDChdc);intbulletx;//子弹的X坐标intbullety;//子弹的Y坐标BITMAPbmp;intmode;//子弹的方向boolhero;boolprotect;booljz;boollive;//子弹是否存在intpower;intvx;//在X轴上的速度分量intvy;//在Y轴上的速度分量u

3、nsignedchar*px;private:inttempv;inttemp;inttemp10;intftp;//动画中的帧数HBITMAPbitmap;};Bullet::Bullet(HINSTANCEhInst,intmode,intvx,intvy,intn,boolprotect);这个函数主要是取得HINSTANCE,从中取出图像,根据mode(方向、类型信息)初始化子弹的坐标,速度,杀伤力;具体可以参考代码;voidBullet::Explode(HINSTANCEhInst){DeleteObject(bitmap);//删除原来的子弹图像bitmap=

4、(HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BULLET_BZ),IMAGE_BITMAP,0,0,LR_DEFAULTSIZE

5、LR_DEFAULTCOLOR);//图像变更为新的爆炸图像jz=true;///状态机中进入爆炸状态ftp=0;//爆炸第一帧GetObject(bitmap,sizeof(bmp),&bmp);//bmp包含了图片的大小,色深等信息}voidBullet::Shoot(HDChdc){HDCmdc=CreateCompatibleDC(hdc);SelectObject(mdc,bitmap);/

6、////////////////////////如果没有进入爆炸状态那么子弹还在飞行,对于他的位子利用速度进行计算。TransparentBlt是贴图函数。if(!jz){if(this->hero){switch(mode){case0:TransparentBlt(hdc,bulletx,bullety,16,16,mdc,0,0,16,16,RGB(255,0,255));bulletx+=vx;bullety+=vy;break;case1:TransparentBlt(hdc,bulletx,bullety,16,16,mdc,16,0,16,16,RGB(255

7、,0,255));bulletx+=vx;bullety+=vy;break;case2:TransparentBlt(hdc,bulletx,bullety,16,16,mdc,32,0,16,16,RGB(255,0,255));bulletx+=vx;bullety+=vy;break;case3:TransparentBlt(hdc,bulletx,bullety,10,27,mdc,0,0,10,27,RGB(255,0,255));bulletx+=vx;bullety+=vy;break;case4:TransparentBlt(hdc,bulletx,bul

8、lety,48,48,mdc,ftp*48,0,48,48,RGB(0,0,0));ftp++;if(ftp>=6){ftp=0;}bulletx+=vx;bullety+=vy;break;case5:temp++;TransparentBlt(hdc,bulletx,bullety,15,53,mdc,ftp*15,0,15,53,RGB(255,0,255));if(temp%5==0){ftp++;}if(ftp>=3){ftp=0;}if(temp>8&&temp<30){tempv=vy;vy=0;}e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。