77范文网 - 专业文章范例文档资料分享平台

飞机大战实训(2)

来源:网络收集 时间:2019-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

信息科学与工程学院软件实践实训报告

// C飞机大战View 构造/析构

C飞机大战View::C飞机大战View() { // TODO: 在此处添加构造代码 }

C飞机大战View::~C飞机大战View() { }

BOOL C飞机大战View::PreCreateWindow(CREATESTRUCT& cs) { // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 return CView::PreCreateWindow(cs); }

// C飞机大战View 绘制

void C飞机大战View::OnDraw(CDC* /*pDC*/) { C飞机大战Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 }

// C飞机大战View 打印

BOOL C飞机大战View::OnPreparePrinting(CPrintInfo* pInfo) { // 默认准备 return DoPreparePrinting(pInfo); }

void C飞机大战View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {

6

信息科学与工程学院软件实践实训报告

// TODO: 添加额外的打印前进行的初始化过程 }

void C飞机大战View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: 添加打印后进行的清理过程 }

// C飞机大战View 诊断

#ifdef _DEBUG

void C飞机大战View::AssertValid() const { CView::AssertValid(); }

void C飞机大战View::Dump(CDumpContext& dc) const { CView::Dump(dc); }

C飞机大战Doc* C飞机大战View::GetDocument() const // 非调试版本是内联的 { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(C飞机大战Doc))); return (C飞机大战Doc*)m_pDocument; }

#endif //_DEBUG

// C飞机大战View 消息处理程序

int C飞机大战View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 SetTimer(1, 20, 0); CMyPlane::LoadImageW();//--为什么不能放在OnTimer里面??? CEnemy::LoadImage(); CExplosion::LoadImage(); CBomb::LoadImage();

7

信息科学与工程学院软件实践实训报告

CBall::LoadImage(); return 0; }

void C飞机大战View::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值

SHORT key; key=GetKeyState(VK_DOWN); if(key&0x80) plane.SetVerMotion(1); key=GetKeyState(VK_RIGHT); if(key&0x80) plane.SetHorMotion(1); key=GetKeyState(VK_LEFT); if(key&0x80) plane.SetHorMotion(-1); key=GetKeyState(VK_UP); if(key&0x80) plane.SetVerMotion(-1);

/*CDC MemDC;*///定义一个显示设备对象 static int life=50; static int g=1; static int score=0;

//CBitmap MemBmap;//定义一个位图对象 CDC *pDC=GetDC(); CRect rect; GetClientRect(&rect);

CBrush m_brushBackground,m_brushBackground1,m_brushBackground2,brush,brush1; CBitmap bmp,bnp,bnp1; bmp.LoadBitmap(IDB_Beijing); ///加载位图 m_brushBackground.CreatePatternBrush(&bmp); ///创建位图画刷 pDC->FillRect(rect,&m_brushBackground); ///用背景画刷填充区域

8

信息科学与工程学院软件实践实训报告

//添加文字 pDC->SetBkMode(TRANSPARENT);//设置文字背景透明 pDC->SetTextColor(RGB(255,0,0));////设置文字颜色为黄色 CFont font; font.CreateFont(

0, // nHeight 0, // nWidth

0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality

DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T(\宋体\

); // lpszFacename CFont *oldFont=pDC->SelectObject(&font); //pDC->SelectObject(oldFont); CString Life; //显示生命值 Life.Format(L\生命:%d\ pDC->TextOutW(rect.Width()/2-200,10,Life); CString Guan; //显示生命值 Guan.Format(L\关数:%d\ pDC->TextOutW(rect.Width()/2-300,10,Guan); CString kan; //显示生命值 kan.Format(L\注意:上↑,下↓,左←,右→,开火space,暂停ctrl\ pDC->TextOutW(rect.Width()/2-8,10,kan); CString grade; //显示分数 grade.Format(L\分数:%d\ pDC->SelectObject(oldFont); pDC->TextOutW(rect.Width()/2-100,10,grade); plane.Draw(pDC, TRUE);//画出战机 //添加爆炸效果 POSITION posExplosion=NULL; for(posExplosion=listExplosion.GetHeadPosition();posExplosion!=NULL; ) { CExplosion *pExplosion=(CExplosion*)listExplosion.GetNext(posExplosion);

9

信息科学与工程学院软件实践实训报告

pExplosion->Draw(pDC,false); } if(score>=0&&score<=300) { g=1;

if (listEnemy.GetCount()<=8)//画出敌机 listEnemy.AddTail(new CEnemy()); }

if(score>=110&&score<=600) { g=2;

if (listEnemy.GetCount()<=10)//画出敌机 listEnemy.AddTail(new CEnemy()); }

if(score>610&&score<=1200) { g=3;

if (listEnemy.GetCount()<=13)//画出敌机 listEnemy.AddTail(new CEnemy()); }

if(score>=1210&&score<=1800) { g=4;

if (listEnemy.GetCount()<=16)//画出敌机 listEnemy.AddTail(new CEnemy()); }

if(score>=1810&&score<=3000) { g=5;

if (listEnemy.GetCount()<=20)//画出敌机 listEnemy.AddTail(new CEnemy()); }

POSITION pos,oldpos; pos=listEnemy.GetHeadPosition(); while(pos) { oldpos=pos; CEnemy *pEnemy=(CEnemy *)listEnemy.GetNext(pos);//记录pos的位置,pos往下移 CRect rect; if(!rect.IntersectRect(pEnemy->GetRect(),plane.GetRect()))//敌机子弹速度 { int x=rand()P; if(x==0)

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库飞机大战实训(2)在线全文阅读。

飞机大战实训(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/483262.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: