vC课程设计打飞机游戏文档格式.docx
- 文档编号:17095616
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:50.40KB
vC课程设计打飞机游戏文档格式.docx
《vC课程设计打飞机游戏文档格式.docx》由会员分享,可在线阅读,更多相关《vC课程设计打飞机游戏文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
之后通过打开C:
\WINDOWS\system32打开cards.dll加载Bitmap图片,并选中对其进行重命名。
接着对以上添加的控件建立类向导。
主要有AddFunction、
AddVariable和EditCode这三项的添加。
根据流程图在类的原文件中逐一添加实现各个模块其功能所需要的各种函数,并添加相应的源代码,同时在头文件中添加对各种函数及变量的声明。
对编译好的程序进行保存,开始进行调试,边调试边根据报错对原程序进行修改,直到程序不再进行报错为止,如图2所示。
-<
_jFliililerrESJurceE
1-_jBitnaph」Cursni
1-_JDialog
*'
jIwn
*□Menu
~1SiringTabic国卅昭jLJToolbar
*LJVe『soon
+□
1ir«
?
_A0OUTBflX
Kit
关于■MJHMM
mSHIT
in?
击中!
IPSI^AI1DOWN
1Q3
dr^Tl'
»
IDS_FA1IJUHE
104
IDS_GOOD
105
胖搂了!
IDS_SORRY
IDSOK
1(1/
ID5WELCOME1
ioa
欢酋欢亀
】D(SWELC0ME2
1Q9
水祸戒打飞机
ID3WCLCCMt3
110
有豊又競
IDSWELCOME
111
IDSWELCOMES
112
IDMENUSAVE
32772
Save
I矗
CJFifthtrr.rc-宇串養(Siri»
£
T^blc]
图2设计模块
2.4主窗口建立
主界面控制菜单的设计接下来回到资源编程界面,编写菜单资源,用来控制扫雷的过程,难度选定,以及自定义难度窗口等。
设置菜单包含:
开始,布局,载入,保存。
帮助菜单获取该软件的版本信息,如图3所示。
int
mnWelconeTiner;
lnt
A
B
i<
_nFljhternit;
mmFiqliLtfrDouiim_nBanb;
voidDrauuciniiienCfLDLCPointmptbeu;
uoidDmPiocdfCDf*uoioDrawshootlngnesiInImnShnolLnyRr^iUlllitm_nS^[10][18];
ClBctm_r>
ctSk^;
voidvoiduniflvoidvoiduoid
OnCLickHe^O;
OnCLickPoe1tian*lineiicKsau^tJ:
OnCLickapt10ii()OnClichLoadO;
OnClirkt*iit();
nbSho^Shooting^nbShouHandCurs
OOOL
BOOL
RR1rmap*n_(ininfiirnwCSilndppiFrdm?
6i(iih|COCntlenDC;
CSijpPicture;
击落飞恥
壬中Wl=
69
Z3
D
F
C
图3开始功能模块
发
U
具体实现代码为:
BOOLm_bLoadWelcomeString;
intm_nGameStatus;
//游戏是否开始
BOOLm_bLoadFrame;
CStringm_strComment5;
CStringm_strComment4;
CStringm_strComment3;
CStringm_strComment2;
CStringm_strComment1;
CRectm_rectCommentFrame;
//fixedframe
CPointm_ptComment;
〃scroll(therectangletoshowComment)
CRectm_rectFighterDown;
CRectm_rectBomb;
CRectm_rectFighterHit;
intm_nCommentTimer;
intm_nWelcomeTimer;
intm_nFighterHit;
intm_nFighterDown;
intm_nBomb;
public:
voidSetURL(CStringstrURL);
CStringGetURL()const;
voidSetColours(COLORREFcrLinkColour,COLORREFcrVisitedColour,
COLORREFcrHoverColour=-1);
COLORREFGetLinkColour()const;
COLORREFGetVisitedColour()const;
COLORREFGetHoverColour()const;
voidSetVisited(BOOLbVisited=TRUE);
BOOLGetVisited()const;
voidSetLinkCursor(HCURSORhCursor);
HCURSORGetLinkCursor()const;
voidSetUnderline(BOOLbUnderline=TRUE);
BOOLGetUnderline()const;
voidSetAutoSize(BOOLbAutoSize=TRUE);
BOOLGetAutoSize()const;
HINSTANCEGotoURL(LPCTSTRurl,intshowcmd);
voidDrawComment(CDC*pDC);
CPointm_ptNew;
voidDrawPiece(CDC*pDC,intx,inty,intnResult);
voidDrawShootingResult(CDC*pDC);
intm_nShootingResult[10][10];
intm_nSky[10][10];
CRectm_rectSky;
2.5打飞机游戏布局建立
此模块对游戏的使用客户有着自行的需求,除了能有系统自带的飞机,游戏的使用
这还可以自行设计飞机数量、位置、以及飞机形态大小一系列的基本信息,并且还能使
游戏充满动态形式多变等如图4所示。
Wlriihtcrck«
fci
pSftvnPflsirlhiiii
iJ.Topten
-"
jBCNkrw
s•*tlCMcnuDaflj]
w•*CAJbouVf3flgc鼻B■Ciluhlionf
i^CCreditStaticnCFlghterAw
sMCAghtefOlto
■*1CHgtvterlnlt
,^CIMiCFUnlc
**:
•CMyButtop
t■■COperallonPage
・CUuitJIg
i・汕伽(1回驴
iCSetfniPtgtt
*_JGlnbwH
-CopyRect(lpSrcRect);
n_pDiC■ipN;
n_pmdBiit>
nh9[WkJjjM
nbHerDC-
CrpateciiiliblLnkdpri_[ini1i1Rk
Uiiiiiii
ra.DFrintri~n[>
cnhfflttri
//I>
p5trupctiiircm"
'
HGHtliutlirriDCO
ifgeneric
REcipy
riils^mrect.left,mrectsrccopvj;
.mg
图4游戏的布局
BOOLStartScrolling();
voidEndScrolling();
voidSetCredits(LPCTSTRcredits,chardelimiter='
|'
);
voidSetCredits(UINTnID,chardelimiter='
voidSetSpeed(UINTindex,intspeed=0);
voidSetColor(UINTindex,COLORREFcol);
voidSetTextHeight(UINTindex,intheight);
voidSetEscape(UINTindex,charescape);
voidSetGradient(UINTvalue=GRADIENT_RIGHT_DARK);
BOOLSetBkImage(UINTnIDResource);
BOOLSetBklmage(LPCTSTRIpszResourceName);
voidSetTransparent(BOOLbTransparent=TRUE);
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
〃{{AFX_VIRTUAL(CCreditStatic)〃}}AFX_VIRTUAL
//Implementation
virtual~CCreditStatic();
//Generatedmessagemapfunctions
protected:
voidMoveCredit(CDC*pDC,CRect&
r,CRect&
r2,BOOLbCheck);
voidAddBackGround(CDC*pDC,CRect&
m_ScrollRect,CRect&
m_ClientRect);
voidDrawCredit(CDC*pDC,CRect&
m_ScrollRect);
voidFillGradient(CDC*pDC,CRect*m_ScrollRect,CRect*m_FillRect,COLORREFcolor);
voidDrawBitmap(CDC*pDC,CDC*pDC2,CRect*rBitmap);
此游戏还具有保存功能,可以在用户使用一半时进行保存,以备下次能继续使用,
此保存功能如图5所示
氢峠奩1
CL
三空
凹壬面
!
丄厂蘇ai•丰才險玄r?
i
:
”3Ei:
tSeJ
Ti
_2|LjeI
vfu,
_!
理与自+
二彳谨北件空C2)建玄件士13)
如1机:
D旄
已歲烂;
^2裳
机fD空.
4項
it«
朗Fjqhrti^rdais只亡久
"
■SsvrPcishifiit
■Toptrn
・BCMrnu
□CMcnuDflTa
SHCMenuMemDC:
CJMmutffg亡
BC<
Cfl«
gradMti(Hi[
1CCppdhSHlIr:
=C!
Ht)h1&
TApp
■CHqhlerDIg上CRflihlefliKfo-■CHyn^rtJiifc
-*:
匚Mcnnhrmlofn亠"
■CMyBulWn
**■C"
Opcrtjlhi!
ifeP^i|ji*・•■QCkilTDId
*壮CRAnkPflge
-■;
c
*^GIobalG
C«
nfigur^ti«
n:
Ftaht电沪
呼存在a.
也
保存奘3JC:
|:
图5游戏保存图
#ifndefBCMenu_H
#defineBCMenu_H
#include<
afxtempl.h>
//BCMenuDataclass.Fillthisclassstructuretodefineasinglemenuitem:
classBCMenuData
BCMenuData(){menulconNormal=-1;
xoffset=-1;
bitmap=NULL;
pContext=NULL;
nFlags=0;
nlD=0;
syncflag=O;
m_szMenuText=NULL;
global_offset=-1;
};
voidSetAnsiString(LPCSTRszAnsiString);
voidSetWideString(constwchar_t*szWideString);
constwchar_t*GetWideString(void){returnm_szMenuText;
~BCMenuData();
CStringGetString(void);
//returnsthemenutextinANSIorUNICODE
intxoffset,global_offset;
intmenulconNormal;
UINTnFlags,nlD,syncflag;
CImageList*bitmap;
void*pContext;
//usedtoattachuserdata
COLORREF
m_Colors[5];
m_TextHeights[4];
TCHAR
m_Escapes[4];
m_DisplaySpeed[3],m_CurrentSpeed;
//CRect
m_ScrollRect;
//rectofStaticTextframe
CStringListm_ArrCredit;
CString
m_szWork;
m_nCounter;
//workints
POSITION
m_ArrIndex;
m_bFirstTime;
m_bDrawText;
m_nClip,m_ScrollAmount;
m_nCurrentFontHeight;
CBitmap
m_bmpWork;
//bitmapholder
m_BmpMain;
CSize
m_size;
//drawinghelpers
m_pt;
CPoint
BOOLm_bProcessingBitmap;
CPalettem_pal;
CBitmapm_bitmap;
intm_cxBitmap,m_cyBitmap;
BOOLm_bFirstTurn;
UINTm_Gradient;
BOOLm_bTransparent;
3•设计结果与分析
3.1游戏的调试及保存
back
在代码添加过程中,由于涉及到很多的函数和变量,有时候可能会出现某几个变量忘定义的情况,这些变量有可能是在头文件中忘记定义或者在某个函数体中忘记定义,在添加完各个函数的代码完毕后,以为头文件会自动对相应得变量进行定义,但头文件没有对所有的变量都定义,于是出现了如上图所示的错误。
打开头文件,双击gaoqingzhiDIg.h,在classCDgaoqingzhiDIg:
publicCdialog类定义函数中添加对m_参数的定义就可运行成功,如图6所示。
■.-jjlawimwimbuhbjib
4B!
BCMenuWRiinDC
DAbaLiiFagE
4■■CCoiigradualonL
*■-;
CCrEdiitSrallc
ifCFighterAip卩
注打CnghleiOly丄■」:
CFighicrtnlQIf,B^cnyptrtiftfc+■[CMmuh纱iliMu
•■£
CMyRiimn
i■*COfienlionRage「吒CQuilDIg
I雪GRflnkPsigi!
tCSdliiigiPfigc-+JGlpbak
口…IgjjRcJ兰|UL“
vlnciiidrcafKtrnpl.h)
//BCHenuD^tdclass.F
BCIIeiluDdild
«
hartKmsittFrtufpuhltc:
naupniiD^ra()fivnnFljgs-9;
n[D=t;
sjfnuuid^vtAnslsirLnqvuiiiSvtUideSI-R-lhigcon«
twchart»
tstt
c^trlngnrr^tring£
intjcoff^et.globalIntnenulconHurulUlHTnFldi|s叭刈CIiwy^Li^L*blLnd!
|juoidKpCsnt^Mt;
/
):
//structCtlenuEtcnilnftlruclCHenuJltevilnFcpLJ
1?
nonFlgjiiratInn;
Fightpfilln^l?
Dehitg
FlqliterpM?
-0刖ruy.QMrnlnqfs)
■jyLai萍{亍无h住冥口i屮&
衣h吓■
图6程序调试图
追i
■fl辆
W7
離飞lib
0乘
0塩
a氷
程序调试成功后进行运行界面,运行成功后可以选择开始选项、布局选项、保存选
项、载入选项以及退出,程序调试成功后运行,如图7所示
图7程序运行图
开始新的游戏,
在程序运行成功后如果用户想重新开始游戏,也可以重新选择开始,
新的游戏开始如图8所示
2
E
架
3
击中飞机
次
死吓局
继续努力
真遗憾
击空
击落飞机=
己发炮弾:
*jjL-JL
游競进行中.需要重新开始吗了
.ill仙厲
k打飞机*情提展
图8游戏重新开始图
4.设计心得体会
该项目的实现,在经过代码的不断完善和功能的加强后,该系统在封装前能够在WINDOWS平台上正常的运行,能够实现相应的作用。
该项目的运行状况:
该游戏能够在用户合法登陆后进行相应的功能,运行状况良好。
在这次课程设计过程中,我的编程有了很大的提高,虽然有时候自己没有思路,但是凡事不能被困难吓倒,只要有开始,去尝试。
就会有意想不到的收获。
可以借鉴别人的代码,看别人设计的思路,理解的同时自己小试一下也可以编出来,所以其次,在运行、调试过程中也学到了很多,以前编程最怕的就是报错,尤其是错误多了的时候,感觉毫无头绪直接头大,但是编程不可能不出错,报错,只要逐一对付,然后细心研究改正,终究一切问题都会迎刃而解的,所以遇到问题,不能急,要心平气和的去应对,才能把所学的只是真正用于实际,这不得不说正是我们当代大学生所严重缺乏的,以后的学习中更应注意。
综上,课程设计即将结束,虽然时间有些紧凑,虽然中间遇到好多的挫折,但毕竟是自己努力了的,自己收获的是过程中的酸甜苦辣,总体收获很大,有了此次的学习经验,我想以后的课程设计应该就会轻松的多吧。
通过这次课程设计,加强了我动手、思考和解决问题的能力
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vC 课程设计 飞机 游戏