版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计综合实践报告姓名学号班级项目名称飞机大战游戏设计与实现实习地点计算机实验室实习时间2015-12-9至2015-12-19实习成绩指导教师签字信息科学与工程学院 2015年 12月20日 1 / 24目 录1. 概述11.1 关卡设置11.2 敌机设置11.3 战机设置11.4 游戏设置12. 相关技术22.1 Windows定时器技术22.2 双缓冲技术22.3 获取矩形区域23. 总体设计与详细设计23.1 系统模块划分23.2 主要功能模块34. 编码实现44.1 初始准备44.2 战机对象64.3 敌机对象74.4 道具对象94.5 主要内容104.6 窗口显示信息185. 实
2、训中遇到的主要问题及解决方法205.1 产生中断及解决方案205.2 图片闪烁问题及解决方案206. 实训体会201. 概述项目:飞机大战主要功能有以下几点:1.1 关卡设置本次飞机大战游戏中共设置了四个关卡,第一关的难度设置较低,仅有敌机对其进行攻击;第二关在原有的基础上增加一些补血的小道具,当积分达到一定的时候便会出现该道具,并且敌机出现的频率也比第一关高;第三关在第二关的基础上新出现了小boss,并增加了其他的道具;第四关在第三关的基础上再新出现大boss,当积分达到要求以及大boss被消灭后通关成功。1.2 敌机设置小敌机随机出现,炮弹也随机发射,当小敌机与战机相撞或被战机的子弹击中时
3、,小敌机消失。当达到一定积分时,小boss出现并随机发射出与小敌机一样的炮弹,但是炮弹分三个方向发射出。当小boss被战机的子弹击中或与战机相撞时失去5滴血。当到达四关并且积分足够多时出现大boss,同小boss一样,当大boss与战机相撞或被战机子弹击中时失去1滴血。除此之外,小boss和大boss上方都有血条显示,当血条消失时意味着生命消失,大boss和小boss消失。小boss会在屏幕上随机出现和走动出了屏幕后会在屏幕的任意地方再随机出现,直至血量为0消失。大boss则在屏幕中随机走动不出屏幕,直至血量为0消失。1.3 战机设置战机初始有五条生命,每条命的血量为50,所获得的积分以及其生
4、命值、血条都在窗口的左上角显示。在第一、二关时,按空格键战机会出现两个向上发射的炮弹,到第三、四关的时候,按空格键战机会发射三个不同方向的炮弹。战机吃到药瓶道具时血量会增加20,但不可以超过50;吃到闪电道具时,便可放大招,放大招的次数为15。当战机被敌方的炮弹击中或与敌方相撞时,血量减少,减少为0时生命值减1,直至生命值为0。1.4 游戏设置进入游戏时,会有背景音乐,窗口左上角显示战机所得积分及其生命值。根据积分情况进入不同的关卡。游戏通关时屏幕清空,并显示通关成功,按Y可重新开始游戏。当战机的血量以及生命值为0时,游戏失败,屏幕清空并显示游戏结束,按Y即可重新开始游戏。2. 相关技术2.1
5、 Windows定时器技术Windows定时器是一种输入设备,它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。程序将时间间隔告诉windows,然后windows给你的程序发送周期性发生的WM_YIMER消息以表示时间到了。本程序在OnCreate()函数中使用了编号为1的定时器,控制了每30毫秒刷新一次。2.2 双缓冲技术在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样即可解决图片闪烁问题。本程序在绘制滚动背景以及飞机,敌机等中用到了该技术。2.3 获取矩形区域用CRect定义一个对象,利用这个对象得到要用到的矩形
6、区域,用IntersectRect函数来判断两个源矩形是不是有重合的部分。3. 总体设计与详细设计3.1 系统模块划分飞机大战游戏主要模块可以说是有几个重要的类组成的。首先是老师给出的CGameObject类,以及在其派生下的Bomb,Ball,Enemy,MyPlane,Explosion,AddBlood等等此处不一一列举。另外还有CObject派生的BackGround类。如下图:3.2 主要功能模块主要功能是在飞机大战View类中,OnTimer函数中实现,将各个类调用,随机产生敌机,子弹的输出,爆炸的实现等等。它的实现图可以如下实现:本程序所包含的功能和类模块:游戏子系统模块名称功能
7、简述应用程序对象游戏程序的加载、游戏对象的绘制、玩家的键盘事件获取游戏对象各个游戏对象的抽象父类(CGameObject)战机对象战机类(MyPlane)敌机对象敌机类(Enemy, LittleBoss,Boss)导弹对象导弹类(Bomb,Bomb2)炸弹对象炸弹类(Ball,BossBall)爆炸对象爆炸类(Explosion)道具对象道具类(AddBlood,AddBomb)4. 编码实现4.1 初始准备模块名称应用程序对象功能描述游戏程序的加载、游戏对象的绘制、玩家的键盘事件获取数据结构与算法CflyfightView:CflyfightView()/ TODO: 在此处添加构造代码f
8、lag=0;flag2=0;level=1;bossblood=100;CflyfightView:CflyfightView()BOOL CflyfightView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改/ CREATESTRUCT cs 来修改窗口类或样式return CView:PreCreateWindow(cs);/ CflyfightView 绘制void CflyfightView:OnDraw(CDC* pDC)CflyfightDoc* pDoc = GetDocument();ASSERT_VALID(pDo
9、c);if (!pDoc)return;/ TODO: 在此处为本机数据添加代码/ CflyfightView 打印BOOL CflyfightView:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void CflyfightView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加额外的打印前进行的初始化过程void CflyfightView:OnEndPrinting(CDC* /*pDC*/, CPrintI
10、nfo* /*pInfo*/)/ TODO: 添加打印后进行的清理过程/ CflyfightView 诊断#ifdef _DEBUGvoid CflyfightView:AssertValid() constCView:AssertValid();void CflyfightView:Dump(CDumpContext& dc) constCView:Dump(dc);CflyfightDoc* CflyfightView:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(Cflyf
11、ightDoc);return (CflyfightDoc*)m_pDocument;#endif /_DEBUG/ CflyfightView 消息处理程序int CflyfightView:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: 在此添加专用代码和/或调用基类PlaySound(LPCTSTR)IDR_WAVE1, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC|SND_LOOP);Set
12、Timer(1, 30, 0);CMyPlane:LoadImage();CEnemy:LoadImage();CExplosion:LoadImage(); CBomb:LoadImage(); CBall:LoadImage(); CAddBlood:LoadImage(); CAddBomb:LoadImage(); CBomb2:LoadImage(); CLittleBoss:LoadImage(); CBoss:LoadImage(); CBossBall:LoadImage();return 0;void CflyfightView:OnKeyUp(UINT nChar, UIN
13、T nRepCnt, UINT nFlags)/ TODO: 在此添加消息处理程序代码和/或调用默认值if(nChar=VK_DOWN|VK_UP)myPlane.SetVerMotion(0);if(nChar=VK_RIGHT|VK_LEFT)myPlane.SetHorMotion(0);CView:OnKeyUp(nChar, nRepCnt, nFlags);补充说明4.2 战机对象模块名称战机对象功能描述战机移动、战机导弹的发射数据结构与算法short key=GetKeyState(VK_RIGHT);short key1=GetKeyState(VK_LEFT);short k
14、ey2=GetKeyState(VK_UP);short key3=GetKeyState(VK_DOWN);if (key&0x80)!=0)myPlane.SetHorMotion(1);else if (key1&0x80)!=0)myPlane.SetHorMotion(-1);else if (key2&0x80)!=0)myPlane.SetVerMotion(-1);else if (key3&0x80)!=0)myPlane.SetVerMotion(1);void CflyfightView:OnKeyUp(UINT nChar, UINT n
15、RepCnt, UINT nFlags)/ TODO: 在此添加消息处理程序代码和/或调用默认值if(nChar=VK_DOWN|VK_UP)myPlane.SetVerMotion(0);if(nChar=VK_RIGHT|VK_LEFT)myPlane.SetHorMotion(0);CView:OnKeyUp(nChar, nRepCnt, nFlags);void CflyfightView:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)/ TODO: 在此添加消息处理程序代码和/或调用默认值if(nChar=VK_SPACE) if(
16、myPlane.Fired()if(flag=0&&(level=1|level=2)listBomb.AddTail(new CBomb(myPlane.GetPoint().x+10,myPlane.GetPoint().y+20,0,12);listBomb.AddTail(new CBomb(myPlane.GetPoint().x+30,myPlane.GetPoint().y+20,0,12);else if(flag=0&&(level=3|level=4)listBomb.AddTail(new CBomb(myPlane.GetPoint().
17、x+10,myPlane.GetPoint().y+20,5,12);listBomb.AddTail(new CBomb(myPlane.GetPoint().x+30,myPlane.GetPoint().y+20,0,12);listBomb.AddTail(new CBomb(myPlane.GetPoint().x+30,myPlane.GetPoint().y+20,-5,12); if(flag2!=0)listBomb2.AddTail(new CBomb2(myPlane.GetPoint().x+10,myPlane.GetPoint().y+20,10,10);listB
18、omb2.AddTail(new CBomb2(myPlane.GetPoint().x+40,myPlane.GetPoint().y+20,5,10);listBomb2.AddTail(new CBomb2(myPlane.GetPoint().x+20,myPlane.GetPoint().y+20,0,10);listBomb2.AddTail(new CBomb2(myPlane.GetPoint().x+40,myPlane.GetPoint().y+20,-5,10); listBomb2.AddTail(new CBomb2(myPlane.GetPoint().x+40,m
19、yPlane.GetPoint().y+20,-10,10);flag2-;if(flag2<1)flag=0;补充说明4.3 敌机对象模块名称敌机对象功能描述敌机、大小boss随机产生,随机方向发射子弹,大boss随机发射子弹,大小boss的血条显示数据结构与算法/敌机的随机产生if(level=1)if(rand()%30=10)listEnemy.AddTail(new CEnemy();if(level=2|level=3)if(rand()%25=15)listEnemy.AddTail(new CEnemy();if(level=4)if(rand()%20=15)listE
20、nemy.AddTail(new CEnemy();/大小Boss的随机产生if(myPlane.score%600=0&&level!=1&&level!=2)listlboss.AddHead(new CLittleBoss();if(myPlane.score=3630)listboss.AddHead(new CBoss();/敌机、Boss产生子弹posEnemy=listEnemy.GetHeadPosition();while(posEnemy!=NULL)CEnemy *pEnemy=(CEnemy*)listEnemy.GetNext(posE
21、nemy);CPoint point2=pEnemy->GetPoint(); if(rand()%60=1)listBall.AddTail(new CBall(point2.x+10,point2.y+10,0,-12);poslboss=listlboss.GetHeadPosition();while(poslboss!=NULL)CLittleBoss *plboss=(CLittleBoss*)listlboss.GetNext(poslboss);CPoint point3=plboss->GetPoint();if(rand()%50=1)listBall.AddT
22、ail(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);posboss=listboss.GetHeadPosition();while(posboss!=NULL)CBoss *pboss=(CBoss*)listboss.GetNext(posboss);CPoint point4=pboss->GetPoint();i
23、f(rand()%40=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);/大Boss血条显示CBrush brush;brush.CreateSolidBrush(RGB(255,0,0);pDC->SelectObject(brush)
24、;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(myP
25、lane.score%510=0)listAddblood.AddHead(new CAddBlood();if(myPlane.score%900=0&&level!=1) listaddbomb.AddHead(new CAddBomb();/*加血药瓶*/POSITION posaddblood=listAddblood.GetHeadPosition();POSITION pos4;for(posaddblood;(pos4=posaddblood)!=NULL;)CAddBlood *paddblood=(CAddBlood*)listAddblood.GetNext
26、(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;/*技能道具*/POSITION posaddbomb=listaddbomb.GetHeadPosition();P
27、OSITION pos5;for(posaddbomb;(pos5=posaddbomb)!=NULL;)CAddBomb* paddbomb=(CAddBomb*)listaddbomb.GetNext(posaddbomb);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 pa
28、ddbomb;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 = listE
29、nemy.GetHeadPosition(); (pos1=posEnemy ) != NULL;)CRect intersectRect;CEnemy *pEnemy = (CEnemy*)listEnemy.GetNext(posEnemy);int intersectSection = intersectRect.IntersectRect(pEnemy->GetRect(), pBomb->GetRect();if (intersectSection != 0)CRect eRect;eRect=pEnemy->GetRect();listExplosion.AddT
30、ail(new CExplosion(eRect.left, eRect.top);myPlane.score+=30;if(myPlane.score%510=0)listAddblood.AddHead(new CAddBlood();if(myPlane.score%900=0&&level!=1)listaddbomb.AddHead(new CAddBomb();if(myPlane.score%600=0&&level!=1&&level!=2)listlboss.AddHead(new CLittleBoss();if(myPlan
31、e.score=3630)listboss.AddHead(new CBoss();listEnemy.RemoveAt(pos1);listBomb.RemoveAt(pos2);delete pEnemy;/删除爆炸的对象delete pBomb;break;for(posBomb2=listBomb2.GetHeadPosition();(pos3=posBomb2)!=NULL;)CBomb2 *pBomb2=(CBomb2*)listBomb2.GetNext(posBomb2);for (posEnemy = listEnemy.GetHeadPosition(); (pos1=p
32、osEnemy ) != 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+=3
33、0;if(myPlane.score%510=0)listAddblood.AddHead(new CAddBlood();if(myPlane.score%900=0&&level!=1)listaddbomb.AddHead(new CAddBomb();if(myPlane.score%600=0&&level!=1&&level!=2)listlboss.AddHead(new CLittleBoss();if(myPlane.score=3630)listboss.AddHead(new CBoss(); listEnemy.Remov
34、eAt(pos1);listBomb2.RemoveAt(pos3);delete pEnemy;delete pBomb2;break;/战机导弹击中小BossPOSITION posa = NULL;/删除敌机POSITION pose = NULL,posc=NULL;/删除导弹for (posBomb = listBomb.GetHeadPosition(); (pose=posBomb)!= NULL;)CBomb *pBomb = (CBomb*)listBomb.GetNext(posBomb);for (poslboss = listlboss.GetHeadPosition(
35、); (posa=poslboss ) != NULL;)CRect intersectRect;CLittleBoss *plboss = (CLittleBoss*)listlboss.GetNext(poslboss);int intersectSection = intersectRect.IntersectRect(plboss->GetRect(), pBomb->GetRect();if (intersectSection != 0)CRect eRect;eRect=plboss->GetRect();myPlane.score+=30;if(myPlane.
36、score%510=0)listAddblood.AddHead(new CAddBlood();if(myPlane.score%900=0&&level!=1)listaddbomb.AddHead(new CAddBomb();if(myPlane.score%600=0&&level!=1&&level!=2)listlboss.AddHead(new CLittleBoss();if(myPlane.score=3630)listboss.AddHead(new CBoss();if(plboss->lblood>0) pl
37、boss->lblood-=5;if(plboss->lblood<=0)listExplosion.AddTail(new CExplosion(eRect.left, eRect.top); plboss->lblood=0;listlboss.RemoveAt(posa);delete plboss;listBomb.RemoveAt(pose);/删除爆炸的对象delete pBomb;break;for(posBomb2=listBomb2.GetHeadPosition();(posc=posBomb2)!=NULL;)CBomb2 *pBomb2=(CBo
38、mb2*)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();if(sect!=0)CRect eRect;eRect=plbo
39、ss->GetRect();myPlane.score+=30;if(myPlane.score%510=0)listAddblood.AddHead(new CAddBlood();if(myPlane.score%900=0&&level!=1)listaddbomb.AddHead(new CAddBomb();if(myPlane.score%600=0&&level!=1&&level!=2)listlboss.AddHead(new CLittleBoss();if(myPlane.score=3630)listboss.Add
40、Head(new CBoss();if(plboss->lblood>0) plboss->lblood-=5;if(plboss->lblood<=0)listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);plboss->lblood=0;listlboss.RemoveAt(posa);delete plboss;listBomb2.RemoveAt(posc);delete pBomb2;break;战机导弹击中大Boss的原理基本与战机击中小Boss的相同,故此部分代码不再给出/战机撞
41、到敌机POSITION posEnemy=listEnemy.GetHeadPosition();POSITION pos=NULL;/删除战机和敌机for(posEnemy;(pos=posEnemy)!=NULL;)CEnemy *pEnemy = (CEnemy*)listEnemy.GetNext(posEnemy);pEnemy->Draw(&m_mDC, FALSE);CRect rect;int section = rect.IntersectRect(pEnemy->GetRect(), myPlane.GetRect();if (section != 0)
42、CPoint point = myPlane.GetPoint();CRect eRect=pEnemy->GetRect();listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);explosion.Draw(&m_mDC, FALSE);if(myPlane.blood>0)myPlane.blood-=5;if(myPlane.blood<=0&&myPlane.life>1) myPlane.life-=1; myPlane.blood=50+myPlane.blood;e
43、lse if(myPlane.blood<=5&&myPlane.life=1) myPlane.blood=0; myPlane.life=0;CObject *d;d = listEnemy.GetAt(pos);listEnemy.RemoveAt(pos);delete d;break;/战机撞到小BossPOSITION poslboss=listlboss.GetHeadPosition(),posb=NULL;for(poslboss;(posb=poslboss)!=NULL;)CLittleBoss* plboss=(CLittleBoss*)listl
44、boss.GetNext(poslboss);plboss->Draw(&m_mDC,FALSE);CRect rect;int section = rect.IntersectRect(plboss->GetRect(), myPlane.GetRect();if(section!=0)CRect eRect=myPlane.GetRect();listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);explosion.Draw(&m_mDC, FALSE);if(myPlane.blood>0
45、)myPlane.blood-=5;if(myPlane.blood<=0&&myPlane.life>1)myPlane.life-=1;myPlane.blood=50+myPlane.blood;if(myPlane.blood<=5&&myPlane.life=1)myPlane.blood=0;myPlane.life=0;if(plboss->lblood>0) plboss->lblood-=5; if(plboss->lblood<=0)plboss->lblood=0;listlboss.R
46、emoveAt(posb);delete plboss;break;/战机撞到大BossPOSITION posboss=listboss.GetHeadPosition(),pos7=NULL;for(posboss;(pos7=posboss)!=NULL;) CBoss* pboss=(CBoss*)listboss.GetNext(posboss);pboss->Draw(&m_mDC,FALSE);CRect rect;int section = rect.IntersectRect(pboss->GetRect(), myPlane.GetRect();if(s
47、ection!=0)CRect eRect=myPlane.GetRect();listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);explosion.Draw(&m_mDC, FALSE);if(myPlane.blood>0)myPlane.blood-=20;if(myPlane.blood<=0&&myPlane.life>1) myPlane.life-=1; myPlane.blood=50+myPlane.blood;if(myPlane.blood<=5&
48、&myPlane.life=1)myPlane.blood=0; myPlane.life=0; if(pboss->bblood>0) pboss->bblood-=1;bossblood-=1;if(pboss->bblood<=0) listboss.RemoveAt(pos7);delete pboss;break;/敌机,小Boss发射炮弹击中战机POSITION posBall = listBall.GetHeadPosition();POSITION pos6 = NULL;for (posBall; (pos6 = posBall) !=
49、NULL;)CBall *pBall = (CBall*)listBall.GetNext(posBall);pBall->Draw(&m_mDC, FALSE);/战机被敌机的炸弹打到时,战机和炸弹都删除CRect intersectRect;int intersectSection = intersectRect.IntersectRect(myPlane.GetRect(), pBall->GetRect();CPoint pt=myPlane.GetPoint();CPoint pt4=eBall.GetPoint();if (intersectSection !=
50、 0)/爆炸效果CRect eRect;eRect=myPlane.GetRect();listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);/从链表中删除并释放爆炸了的对象。if(myPlane.blood>0)myPlane.blood-=10;if(myPlane.blood<=0&&myPlane.life>1)myPlane.life-=1;myPlane.blood=50+myPlane.blood; else if(myPlane.blood<=5&&myPl
51、ane.life=1)myPlane.blood=0; myPlane.life=0;listBall.RemoveAt(pos6);delete pBall;break;/大Boss发射炮弹击中战机POSITION posbossball=listbossball.GetHeadPosition();POSITION pos11=NULL;for (posbossball; (pos11 = posbossball) != NULL;)CBossBall *pbossball = (CBossBall*)listbossball.GetNext(posbossball);pbossball-
52、>Draw(&m_mDC, FALSE);/战机被敌机的炸弹打到时,战机和炸弹都删除CRect Rect;int Section = Rect.IntersectRect(myPlane.GetRect(), pbossball->GetRect();if (Section != 0)/爆炸效果CRect eRect;eRect=myPlane.GetRect();listExplosion.AddTail(new CExplosion(eRect.left, eRect.top);/从链表中删除并释放爆炸了的对象。if(myPlane.blood>0)myPlane.bloo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年杭州市余杭区网格员招聘考试备考试题及答案详解
- 2026年伊春市友好区社区工作者招聘笔试参考试题及答案详解
- 2026年乌海市海勃湾区社区工作者招聘笔试备考题库及答案详解
- 2025年宜昌市伍家岗区网格员招聘考试试题及答案详解
- 2026年绍兴市越城区网格员招聘笔试参考试题及答案详解
- 2026年鹤岗市兴安区事业编单位人员招聘考试参考试题及答案详解
- 2025年山东省日照市网格员招聘考试试题及答案详解
- 2026年洛阳市西工区事业编单位人员招聘考试参考试题及答案详解
- 2026年白银市平川区网格员招聘考试备考试题及答案详解
- 2026年庆阳市西峰区社区工作者招聘考试备考试题及答案详解
- 贵州省贵阳市环西小学小学三年级下册期末试卷(含答案)
- 2026年学校财务人员招聘题库及答案
- VDA 6.5 产品审核培训
- 2025年浙江省卫生高级职称评审医学期刊目录大全
- 情感咨询话术
- 2025-2026学年人教版(2024)七年级生物学第一学期期末模拟卷(含答案)
- 医疗机构名称与商标的知识产权保护
- 2026年高考新高考二卷数学题库试题附答案完整版
- 2025年新版麻醉记录单
- DB41∕T 2886-2025 矿产地质勘查规范 花岗伟晶岩型高纯石英矿
- 冻货供销合同范本
评论
0/150
提交评论