好文档 - 专业文书写作范文服务资料分享网站

飞机大战游戏设计与实现

天下 分享 时间: 加入收藏 我要投稿 点赞

{if(rand()%==15) listEnemy.AddTail(new CEnemy()); } if(level==4) {if(rand() ==15) listEnemy.AddTail(new CEnemy()); } //大小Boss的随机产生 if(myPlane.score`0==0&&level!=1&&level!=2) listlboss.AddHead(new CLittleBoss()); listboss.AddHead(new CBoss()); if(myPlane.score==3630) //敌机、Boss产生子弹 posEnemy=listEnemy.GetHeadPosition(); while(posEnemy!=NULL) { } while(poslboss!=NULL) { } while(posboss!=NULL) { CBoss *pboss=(CBoss*)listboss.GetNext(posboss); CPoint point4=pboss->GetPoint(); if(rand()@==1) { listbossball.AddTail(new CBossBall(point4.x+45,point4.y+90,-5,-12)); listbossball.AddTail(new CBossBall(point4.x+45,point4.y+90,0,-12)); listbossball.AddTail(new CBossBall(point4.x+45,point4.y+10,5,-12)); CLittleBoss *plboss=(CLittleBoss*)listlboss.GetNext(poslboss); CPoint point3=plboss->GetPoint(); if(rand()P==1) { } listBall.AddTail(new CBall(point3.x+10,point3.y+10,-5,-12)); listBall.AddTail(new CBall(point3.x+10,point3.y+10,0,-12)); listBall.AddTail(new CBall(point3.x+10,point3.y+10,5,-12)); if(rand()`==1) listBall.AddTail(new CBall(point2.x+10,point2.y+10,0,-12)); CEnemy *pEnemy=(CEnemy*)listEnemy.GetNext(posEnemy); CPoint point2=pEnemy->GetPoint(); poslboss=listlboss.GetHeadPosition(); posboss=listboss.GetHeadPosition(); 8

} } //大Boss血条显示 CBrush brush; brush.CreateSolidBrush(RGB(255,0,0)); pDC->SelectObject(brush); pDC->Rectangle(m_ptPos.x,m_ptPos.y,m_ptPos.x+bblood*0.9,m_ptPos.y-5); //小Boss血条显示 CBrush brush; brush.CreateSolidBrush(RGB(255,0,0)); pDC->SelectObject(brush); pDC->Rectangle(m_ptPos.x,m_ptPos.y,m_ptPos.x+lblood,m_ptPos.y-5); 补充说明 4.4 道具对象

模块名称 功能描述 数据结构 与算法 道具对象 积分达到一定的时候出现道具,战机吃掉道具,道具消失,战机补血或获得技能 if(myPlane.scoreQ0==0) listAddblood.AddHead(new CAddBlood()); if(myPlane.score?0==0&&level!=1) listaddbomb.AddHead(new CAddBomb()); /********加血药瓶********/ POSITION posaddblood=listAddblood.GetHeadPosition(); POSITION pos4; for(posaddblood;(pos4=posaddblood)!=NULL;) { } /********技能道具*******/ POSITION posaddbomb=listaddbomb.GetHeadPosition(); POSITION pos5; for(posaddbomb;(pos5=posaddbomb)!=NULL;) { CAddBomb* paddbomb=(CAddBomb*)listaddbomb.GetNext(posaddbomb); 9

CAddBlood *paddblood=(CAddBlood*)listAddblood.GetNext(posaddblood); paddblood->Draw(&m_mDC,FALSE); CRect rect; int section=rect.IntersectRect(paddblood->GetRect(),myPlane.GetRect()); if(section!=0) { if(myPlane.blood<50) myPlane.blood+=20; listAddblood.RemoveAt(pos4); delete paddblood; break; }

补充说明 } paddbomb->Draw(&m_mDC,FALSE); CRect rect; int section=rect.IntersectRect(paddbomb->GetRect(),myPlane.GetRect()); if(section!=0) { } flag=1; flag2=15; listaddbomb.RemoveAt(pos5); delete paddbomb; break; 4.5 主要内容

模块名称 功能描述 主要内容 战机导弹击中敌机和大小Boss,战机与敌机和大小Boss相撞,敌机和大小Boss发射的炮弹击中战机 //战机导弹击中敌机 POSITION pos1 = NULL;//删除敌机 POSITION pos2 = NULL,pos3=NULL;//删除导弹 for (posBomb = listBomb.GetHeadPosition(); (pos2=posBomb)!= NULL;) { CBomb *pBomb = (CBomb*)listBomb.GetNext(posBomb); for (posEnemy = listEnemy.GetHeadPosition(); (pos1=posEnemy ) != NULL;) { CRect intersectRect; CEnemy *pEnemy = (CEnemy*)listEnemy.GetNext(posEnemy); int intersectSection = intersectRect.IntersectRect(pEnemy->GetRect(), if (intersectSection != 0) { CRect eRect; eRect=pEnemy->GetRect(); listExplosion.AddTail(new CExplosion(eRect.left, eRect.top)); myPlane.score+=30; if(myPlane.scoreQ0==0) listAddblood.AddHead(new CAddBlood()); listaddbomb.AddHead(new CAddBomb()); listlboss.AddHead(new CLittleBoss()); listboss.AddHead(new CBoss()); listEnemy.RemoveAt(pos1); 10

if(myPlane.score?0==0&&level!=1) if(myPlane.score`0==0&&level!=1&&level!=2) if(myPlane.score==3630) 数据结构 与算法 pBomb->GetRect());

} } } listBomb.RemoveAt(pos2); delete pEnemy;//删除爆炸的对象 delete pBomb; break; for(posBomb2=listBomb2.GetHeadPosition();(pos3=posBomb2)!=NULL;) { } //战机导弹击中小Boss POSITION posa = NULL;//删除敌机 POSITION pose = NULL,posc=NULL;//删除导弹 for (posBomb = listBomb.GetHeadPosition(); (pose=posBomb)!= NULL;) { CBomb *pBomb = (CBomb*)listBomb.GetNext(posBomb); for (poslboss = listlboss.GetHeadPosition(); (posa=poslboss ) != NULL;) CBomb2 *pBomb2=(CBomb2*)listBomb2.GetNext(posBomb2); for (posEnemy = listEnemy.GetHeadPosition(); (pos1=posEnemy ) != NULL;) { CRect intersectRect; CEnemy *pEnemy = (CEnemy*)listEnemy.GetNext(posEnemy); int sect=intersectRect.IntersectRect(pEnemy->GetRect(),pBomb2->GetRect()); if(sect!=0) { } } CRect eRect; eRect=pEnemy->GetRect(); listExplosion.AddTail(new CExplosion(eRect.left, eRect.top)); myPlane.score+=30; if(myPlane.scoreQ0==0) listAddblood.AddHead(new CAddBlood()); listaddbomb.AddHead(new CAddBomb()); listlboss.AddHead(new CLittleBoss()); listboss.AddHead(new CBoss()); if(myPlane.score?0==0&&level!=1) if(myPlane.score`0==0&&level!=1&&level!=2) if(myPlane.score==3630) listEnemy.RemoveAt(pos1); listBomb2.RemoveAt(pos3); delete pEnemy; delete pBomb2; break; 11

} { } CRect intersectRect; CLittleBoss *plboss = (CLittleBoss*)listlboss.GetNext(poslboss); int intersectSection = intersectRect.IntersectRect(plboss->GetRect(), if (intersectSection != 0) { CRect eRect; eRect=plboss->GetRect(); myPlane.score+=30; if(myPlane.scoreQ0==0) listAddblood.AddHead(new CAddBlood()); listaddbomb.AddHead(new CAddBomb()); listlboss.AddHead(new CLittleBoss()); listboss.AddHead(new CBoss()); if(myPlane.score?0==0&&level!=1) if(myPlane.score`0==0&&level!=1&&level!=2) if(myPlane.score==3630) pBomb->GetRect()); if(plboss->lblood>0) } } listBomb.RemoveAt(pose); //删除爆炸的对象 delete pBomb; break; plboss->lblood-=5; if(plboss->lblood<=0) { } listExplosion.AddTail(new CExplosion(eRect.left, eRect.top)); plboss->lblood=0; listlboss.RemoveAt(posa); delete plboss; { for(posBomb2=listBomb2.GetHeadPosition();(posc=posBomb2)!=NULL;) { CBomb2 *pBomb2=(CBomb2*)listBomb2.GetNext(posBomb2); for (poslboss = listlboss.GetHeadPosition(); (posa=poslboss ) != NULL;) { CRect intersectRect; CLittleBoss *plboss = (CLittleBoss*)listlboss.GetNext(poslboss); int sect=intersectRect.IntersectRect(plboss->GetRect(),pBomb2->GetRect()); 12

飞机大战游戏设计与实现

{if(rand()%==15)listEnemy.AddTail(newCEnemy());}if(level==4){if(rand()==15)listEnemy.AddTail(newCEnemy());}//大小Boss的随机产生if(myPlane.score`0==0&&level!=1&&level!=2)listlboss.AddH
推荐度:
点击下载文档文档为doc格式
5nqfu3uki94ncj33s2bw8iiwn479cv018cc
领取福利

微信扫码领取福利

微信扫码分享