华容道游戏讲解Word文档格式.docx
《华容道游戏讲解Word文档格式.docx》由会员分享,可在线阅读,更多相关《华容道游戏讲解Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
p//heer/下<A/>载当,然要成想功下的载前是提要先注你册成S为nu会员的其(这样对你实是好处有的)当下.之来就是按后提照一示一步的步装安安.装了好后,我之们用一"
H个lleoWorld程序开"
始你J2ME之的.我旅启动WT们K2.0具集工的中ToolBKa,r后点击Ne然wPorejct按,在弹出钮的入框输中入输ProjectNma为HeelolWorld,MDIeltClssaNameHe为llo,后点击Cre然aetrPojct,开始e生项成目,具会弹工M出DP配I置表,这简接里生受的默认成(值以还后以可改)点修OK击,工具示提我把们好写J的va源a序程到放[TW_HKMO]Eap\p\HesllWoroldsr\目c录下.我之编辑们如下代,并码存保在述上录之下,文目名件为Hell.ojvaa。
mporjavatxm.crieoditoinm.iletd.*;
imoptrjaav.mixrceodtioni.lcuid*.;
upbiccllassHelloexetnsdMIletD{
privateDisplyaispdly;
a
pbluicHello()
{idpsaly=iDpslya.egtDsilpay(his);
t
blicvidstoatrApp({)
TexBotxt=neTextwoBx("
eHll"
o"
Helol,2"
6,0)5
d;
ipslya.seturreCt(tn)
;
}publi
vcoipduasAep(p{)
upbilcvioddstroyApepb(ooelnuaconndtionial){}
保好存了后之,击点Biuld钮按,工会具你编译程序,如为无意再点外Ru击n钮,按会弹一出个机手面,界剩下的不就我教了用(用鼠吧标手对机按键一狂顿点。
呵呵)你的,第个J一ME程2序已经OK了.什?
你么一点还都没呢(懂是厉害,不懂真能都写J出2EM程序,果来然是手高.我)这主里要是绍介WK2T0工具.的用使程,序并不目的是不懂的,后话面会有还细详的解说,这里只是带你路.上什么你不懂Ja?
v!
那也a有关没,后面系我再讲得一点细
跳过JM2E我们,来先讲游点的戏理.论具体华到道这个容戏,游主有三个方面,贴要图游戏操.作.逻辑判.这断讲里贴图,讲其两他方放面在概要设和计详
细设计讲.里所谓贴的,图其实是画图,就就在是要显图形的示位置输出一副图上,(要是牵片到扯画就要动麻烦一些可,以使用imTreTsk.ahTera或dRanabnl之e类的技术)这,图片可副以是先事准备的好也以是可时临处的理在.2ME中有J一个Image,类门专于用管理片,图它有reactemaIeg(方)法可,以接直读图取片件文J2ME只(持支NGP格的式图片,)也以截取可已的有片图的部分一(这我样可以们把多很片图在一放起然后,张一一张的截来下好处是节,存储省空间和件读取文时,间于对手机这者两都性是的瓶颈)能.JM2还有一E个Grpahci类,s专用门于绘,它有d图rawmaIeg)方(法,可以把副图一片在指定位置的上显出示来,它有还rdwRacet)(法方和setoColr()方法这两,个方法后面我们在进行游戏操作就会时到用,这先里代交一下.有了片和图绘图的方法还,要知道把需图到谁画上,J2ME提身了供一个Cnvaas类,面意字就思画布是它,一有p个anti)方(用法刷新页面于还,有个repa一ni()方t用法于用p调anti)(方.法听着有糊些涂是,吧不要紧,我来合结具程体序讲解下.为了一后今程编方便,我的创建们两个I类agmesD和ra,wImgeas用于存一些常保值量和片,图raD主要w是用画图,这于个两的源类代码如。
下
gesa类源的码如下代
:
pckagaheuaongrrad;
o
imortpjavax.mcrieodtioi.lncdu.*i;
mpoirtjvaa.xmicreoitdin.olcuidga.e.*;
m
pbulicclssamIgeas//{保常量
存/绘图/置位量常
publistaticficnailntUIN=T23//;
方块单的位长度
pbulistatccifinalntiLEF=1T;
/0画/图左的界顶点边
pbuilctstacifinalinTtPO9=//;
图的画边界顶上点//地图位
pu常licbtastcifialnintWITDH=4;
//地图的度宽
pbuicltatsciinfalnitHEIGTH=5/;
/地图高度的
//地图记常量标
pulbisctticafialnbyteCAOAOC=(btey'
)'
;
aA<hef="
rfil:
/e/"
曹>ilef:
/曹</A>操的地/图标
记pulbicstaictfinabyteMAClAOH=(byte'
b'
)//马的超地标记图
ublipcsatticfialnybteUHANZHGON=Gbyte)('
c'
/;
/忠黄地图标的记
pulbiscaticfitalnbyteGUANUY=(bty)ed'
'
//关羽的地图记标
upblcitatscifialnybeZHtNAGEIF=b(ye)te'
//张飞'
的地标图记
publicstaticfinabyleZtAHYUNO=(yteb)'
'
f//;
云的赵图地标
pu记blistatcificnalbteyUZ(b=yte)'
g'
/卒的/图地标
记pulibstctiacfianlbteByANL=K(byet)'
h'
//空的白图标地记
publicstaicftnaiblytCUeSROR=byt(e)i'
//标光的图标记地
//地图组标记合量
pu常lbicsatitcinalbytefLEFD=(Tbte)y'
1<Ahre="
ffiel:
/组"
>/fil:
/e/组<A>/合图左边形标记
ubpiclsttiacinalbytefUPD(=byet)2'
<Ah;
ef="
rfie:
l//"
>组ifl:
//e<组/A合图>上边形标
记uplbicsttiacfnialbyeDLEFtTPU(by=e)t'
3'
A<herf="
ifel:
//"
组f>li:
e/组</A>/合图左上形标记
//图常量
p片bluistctaciImgaeiame_gbsae;
/基本图/
public片tstaciImagemaige_haZyonu//赵;
云图片的
pbluisctatcIimgaieamg_Caocea;
//曹o操图的
p片builstcatciIagemimageH_anughozgn;
/黄忠的/片图
pulbcisatitcIamgeiagm_Meachao/;
/马的超图片
ublpictstaiImacgeiagemGua_yun;
/关羽/图的片
pulbictaticsImgeaimgea_haZnfeig;
//飞张的片图pub
lcisaticImtageimae_Zgu;
//卒的片
p图buiclsattcIiagemimga_Belan;
//k白空的图
p片blicusttiaIcamgeiame_Frage;
m//戏框架游的片
pubilIcamegs(){//造构函数}
ublcitsticabooleainnt()i{/初/始化游戏中到的用片
iamge_bsa=eImagec.eaterIage("
m/uarongrohadBI/BTACKp.gn"
)
migae_FamreI=mag.eceraeImtge(aimga_beae,s26,01,154,717,
Spite.rTRAS_NNNE)O
/;
/Sprie类t用是来翻图片的,转是IDM2.P0新新增的加支游持的特性戏
imaegZha_ouyn=mIagec.reteImage(amiae_gase,0b,,0UNIT,2*UNTI,
Spiter.RATSN_ONNE;
ima)g_eaocaoC=Iamgec.raeteImge(amige_baas,eUINT0,,2*NUIT,
2*UIN,TSpite.rTARNS_ONN);
E
maie_Hgaunzgonhg=Iamg.ecrateImaee(imgge_aaseb,3*UNIT0,U,NT,I
2*UNIT,
SripetT.RAS_NONNE;
i)maegM_chaao=Iamgec.reaeImagt(imaegebase_,02,*UNT,INIUT,2
*UNIT,
pSitre.RTNAS_ONNE;
imgaeG_aunyu=Imag.creaetImaeg(eiagem_base,NUT,2*INUT,I
2U*ITNU,NI,T
Sprit.TeRASNNON_)E;
imag_ZhaegfeinImag=.ceertaImeag(eiamgeb_sae,3*UINT,2*UNI,T
NIU,T2*NUI,T
pSiterT.RANSN_ON);
imaeg_uZ=Image.craeetmagI(iemga_base,0,4e*NUT,IUNT,UNIIT,Spri
teT.RASNNO_NE;
)miga_eBlank=Imaeg.crateeImaegim(ag_eabe,s1*UNIT,4*UNT,INIUT
pSrie.TRANtSNON_);
urnttre;
u
c}atchE(xectiopnex)
r{teurfalnes
a类w源代的码如:
cakgehuranorgoa;
d
mportijavaxmicro.deitoinlcdui.*;
.
pulibclcssaDrw{a/
/制绘游戏的中片图
pulicbrawD(anCvasacnav)s{//造函数构
publicsatitcboolenapait(nrapGichg,sbteimg,yinx,titny){
//在图的地x,点y绘制mgi指定图的片
try{paint(g
mg,ix,,yImgeas.NUT)I;
/把/地图xy,转点化画成的绝对坐标布,图绘
reurnttre;
}atch(Excepctoinex){
retrunfasl;
e
pulicsbtticaoboleanpait(nrGpahcis,gbyetimg,intx,ntiy,niunitt){
sw{itch(mi)g{
caesImagseCA.OCAO:
/画/操
曹//变成绝对坐标并做,调
整.grdwaIage(mmagIe.isamegCa_ocao,Iamgse.EFL+Tx*unit,
magesI.TPO+*uyni,t
raGphis.cTPOGr|phica.sEFTL;
asecIagms.GUeAYUN//画关:
羽
gdra.ImagweI(maes.igamgeG_uanuyI,ameg.LsEFT+x*nuit,
Iagesm.TOP+y*unit,Gra
pichsTOP.|GaphrcsiL.FE);
c;
saeImage.HsUNAZGHNG:
O//黄忠
g.画drwamIgae
(Imaesgi.amgeHuangzh_no,gmagesI.LFET+xu*nt,i
Imgase.TPO+y*nit,u
Grapics.hOT|PGrpaich.sLFT);
aceIsamges.MACAOH:
/画/超马
.dgarwIamge(mIags.emigae_achMa,oImaegsLE.F+Tx*uni,t
Imgae.sTOP+y*uit,
GnarhpicsTO.P|Graphis.LcFT)E;
bera;
kc
aeIsmaesg.HZAGFENI:
/画/飞张
g.darIwameg(Imges.iaame_gZhnafge,iImaes.gLFE+Tx*nuit,I
mgaseT.OP+y*uni,t
GrpaicshT.P|GOraphiscLE.TF;
brak;
ecas
eImagse.HAZOUN:
/Y/画云赵g.dr
awmaIegIma(gs.emaigeZ_ahouynI,amesgL.ETFx+*unit,
ImgaseTO.P+*uyint
Grpaihsc.TOP|rapGihc.LsEF);
T
break;
c
saeImags.eU:
Z/画卒/
g.draImawg(Iemaesgi.mag_eu,IZmgae.sELFT+x*uni,tI
maegs.TPO+y*nuti
GarhicpsTOP|.Gaprics.LhFT);
Ebre
cseaImges.BLaNAK:
/画空白
/g.darwImageIm(ags.imege_Blaan,kIameg.LEFTs+*xuint,
mIaes.TOg+P*yuni,t
rGahips.cTOP|Graphci.sLETF);
break;
caesImgae.CURsSR:
O//画标光
g.darRwet(Icmages.ELFT+x*uint,Im
geasT.OP+y*uin,tmIgesaUNIT,.magIesU.NIT);
rebak;
}
etunrtreu
};
atcch(Excepitnex){
reotrufnlsae;
其Images类存中的绘图是置常量位(也就是在画图时个格子的每长和度相坐标原对点位置要行的调整)进地、位图置量常地(图长的宽),地、图标常量(人记对应物记号),地图的合组标记常(量面会后说),图细片量常存放(物人的图片);
rDwa类要主责负制在定位的置画人出物片。
图下我来说面I说amge类中s地的图标常量和地图记合组记标量。
常为了够灵能的活排各个安关的面布,我局决们定把游布戏局的信存储在息外文件部中,然后序启程动后把它进来。
读这样们制我了一套存储图片定的码代这就是地,标图常量记如上,面Imaeg类中定s义Caoc的ao曹(操)用字a来表示,当符序读到程字符时就能a它将转成化曹操对的应图,并片在到读字a的位置上符进显行。
示是但实从际察观中们我现发有的图所片并不是一统大小的有的占4,格个子有,占2的格个,还子的占有1格个,而且即便子同占两个是格的子片还有图横、之分竖有鉴于。
此,我们入引了图地合标记常组,量就是在遇说到占有多格子的时候个值1,(也就Ima是egsLE.FT)示表它的边左一是真正的地图个标,值记2(就是I也mgae.sU)P表示的它上边是个真正一地图的标记值1,(就也是IamgseL.ETFP)表U示它左的上是边个一真的地图正标记。
图组合地标常量其记就实是用占位置来,的与实显示际关无,后当我们将到移面动时会再来分还析组标记合的使用。
rDaw主类要用是在来画布画上出形图,它两个有apni方法t这,是很见常函数重载。
但的程序是中际实上用只到了4参个数pain的t方法,
它直接获得要画片图相的对标坐位置信,然息调后用5参数个pai的n方t法5。
个参的p数anti方将法对坐标相位信息转置成绝换位置,对实际并调G用raphcsidr.aImwgea)(法方,将mIaesg的图片中画出了来。
种实现这法方的好处灵是活和便于扩展但你需,画图要位置并的能够对不到应格子的相对中坐位标时置你就,可直以调接用个参数的5pait方法n,而必再不去改这修类;
各但你加新的图片时,添只要在Imaesg中加对应的增量,常然向后Dawr中个参5的数aipnt法方加一条添理就处可以了。
到这里,两写天时间的好刚完用
三、。
求需析分
做叫求分需析,听起来挺人吓,其的就实搞是清我楚们要做么什,做成么什样那些,做。
下不面引我领着大共同家完成这来一步骤首先,我。
要们做一华容个的道游,戏容华道的事这故不再里述了,赘其但中的人在物里这限定一下如上,I面maegs里的定义,我类们这版本只提个曹供(操aCocoa)、关(Guan羽u)y张、(Zh飞anfgie、)赵(云Zhayuon)、忠黄H(anguhzng)o马、(Macha超)o和卒Z()。
u我们这也里限定下一游的戏操作法方:
首要通先过向键方择选个要一移的动区(就是一张域片图,)选被择区域的黑色用方框住框选;
好按后Fie键r就(确定是)键将块区这选域中,被中的区选用绿色方域框住;
然后选框择要移动到区的,域时此用红方框框色住被选的区择域选;
要移动到好区域的后之F按ire将要键移动的域(区片)图移要到移到的区域,动去并掉色绿红色和方框的这里。
需强调要概念有选择的区域的选、中区域、的移要的区动域和要移动的到域,这四区个概请念读者意区分注当,也然当把这一应部记入分据数典之字。
中为使文了章重点突出的介绍如何制作(一个2MEJ收集游戏的,)们我这里定限一些与本主题关无内的暂容去实现不:
过关后的动之(画现实时要到Time用Tras或khTerda,后类续系的列章文中会我细详介动绍方面的画知识)、面之间关的切(换其实简很单,完成当任务后之重再新一边)做暂停、保和存操作等(部这的分容内绍的资料很介多,我也写不什么出新东的来东难免抄袭,故,免此掉。
求分需基析完成,离下本午还一段时间,有上马手动用CDASe把从网上找来的BeMP文件调,整大小为其27*1177(的我这图个片是两部分合在一个起,以所比机实手屏幕际大),了存另为NGP式。
格天时半刚刚间,不好搞但楚了要清做东东的还,把用要的图片备准好了
设是从计求分析需过到渡细设详计桥梁和的纽,带这一分部中们我确定目的项现方法和模实的划分。
块们我定将决整个项分成目个五部分,分是别前介绍面的Imaes、Drag,w有还aM和Dpspi
laybla1和MeDIlet1。
Imgase和Drw类a能功简单、构结定,因固此多很项我们都目用这使两各类这里,直接来改改就拿能了,前面已经介用绍这过不里再述。
赘aM类p用是从来部文件外入地图读然后保存,在个数一之组中这,分的部容是内们在我本阶段讨的重论点。
iDsplyablae1是个继承一C了naav类的画布,它用s处来理序的主要程制控辑逻一部和控制逻辑所分需的助函数辅,要主函数该应包用括来绘图的apnit()函、数来用控操制的作keyrePsed()函s数、用控来选择区制的se域Ratgen()函、数来控制选择要移动到区域用s的tMeveoRange)(函数、用来动移中区域选Mo的ve)函(和判断是数否完任成务wi的n)函(,更具体的分数,我析放到详们设计中细去细化M。
IlDt1实e上就际一是个控整个制2ME应用J控制程序,其实也的没有么什特可别,它和的们我面前介的绍"
HlleoWord"
程l大同序异,这里小就展开来说不了,后