游戏“黄金矿工”设计思路.doc
22页实验:黄金矿工完成本实验后,可以实现矿工抓金子并计分的效果,如下所示:rLsward.[-_i也.irf复制金块学习目标学习应用dGetScreenLeft,dGetScreenRight,dGetScreenTop,dGetScreenBottom学习应用srand函数这节我们实现黄金矿工的金块随机分布,并设置不同金块的大小,为后续的抓取金块做好准备Stepl:图片资源导入新建一个新的项目,取名为GoldenManDemo添加如图所示资源到环境中:111预览甸共闭商11吋释放團片蚩源]适刖恨配置匚陶董派backgioundlmageroeksfarlmacierocksnESTlmia內eUFOBackGroundImageMapGolderBacklmageMapL3^BackGroundlinageMapMiniGollBacklmageMapPictureDlYBacklrnageMiapD;andanBacklmageMapGolfBaekground2lmageMapMolebackgroundlmageMappuzzlebackgiQuncllIm^geMappuzzlebackground2lrnageMappuzzlebackground3lrnageMapbackgrsund_CQpylmageMapCheckers_boardlmageMapwavelrnagebngelfishlsheetlrnageMapseahorse2sheetlmageMapanqelfish2sheethnaqeMap疵加到丄程III回共用窗口时释啟图片资源(适用低丽置机署】图片费顋资嫁GunRootlmageMapBeginlmageMapminiufoaltlinageMapIminiufoaltlmageMapSGunRoot2ImageMapGunBody2lmag&MapGolderBlocklmageMapGolderManlmageMapGolderTcolhnageMapPidureDIYISamplelmageMapPictureDIYIImageMapPichjreDIY21mageMapPictureDIY3hnageMapPictureDIY4lmageMapPicfdreDIYSImageMfipPictureDIY6lmag已閘apPictUreDIY7lmageMapPictureDIYShnageMapPictdreDIYSImageMapPictureDIYIOhnaqeMap济加到丄程并按如下所示布置图片位置:并为金子取名为goldTemplateStep2:本实验用到的API/*dGetScreenLeft:获取世界边界之左边X坐标* 返回值:左边界X坐标*/externfloatdGetScreenLeft();/*dGetScreenTop:获取世界边界之上边Y坐标* 返回值:上边界Y坐标*/externfloatdGetScreenTop();/*dGetScreenRight:获取世界边界之右边X坐标* 返回值:右边界X坐标*/externfloatdGetScreenRight();/*dGetScreenBottom:获取世界边界之下边Y坐标返回值:下边界Y坐标*/externfloatdGetScreenBottom();/*dSetSpriteWidth:设置精灵外形宽度* 参数szName:精灵名字* 参数fWidth:宽度值,大于0*/externvoiddSetSpriteWidth(constchar*szName,constfloatfWidth);/*dGetSpriteWidth:获取精灵外形宽度* 参数szName:精灵名字* 返回值:精灵宽度值*/externfloatdGetSpriteWidth(constchar*szName);/*dRandomRange:获取一个位于参数1到参数2之间的随机数* 返回值:int,范围iMin-iMax* 参数iMin:小于iMax的整数* 参数iMax:大于iMin的整数*/externintdRandomRange(constintiMin,constintiMax);Step3:思路阐述要实现金块的随机分布,首先需要利用模板复制一定数量的金块,然后将他们随机布置在窗口中,可以通过dSetSpritePosition来设置金块的横纵坐标。
接下来要面临的问题就是,如何获取窗口中不同位置的坐标利用dGetScreenLeft,dGetScreenRight,dGetScreenBottom,dGetScreenTop来获取窗口的范围,然后使用dRandomRange在该范围中随机一个新的坐标对于金块的大小设置,可以利用dSetSpriteHeight和dSetSpriteWidth来实现Step4:代码详解首先定义全局变量,定义如下全局变量:intg_fGoldBornMinX=0;intg_fGoldBornMaxX=0;intg_fGoldBornMinY=0;intg_fGoldBornMaxY=0;intg_iGoldCount=0;金块布置属于初始化工作,在WinMain的初始化部分添加如下代码:dSetWindowTitle("黄金矿工");g_iGoldCount=20;//金子数量g_fGoldBornMinXg_fGoldBornMaxXg_fGoldBornMinYg_fGoldBornMaxY//金子左边界//金子右边界//金子上边界//金子下边界dGetScreenLeft()+5;dGetScreenRight()-5;dGetScreenTop()+20;dGetScreenBottom()-5利用循环生成20个金子,以goldTemplate为模板intiLoop=0;//循环变量控制intiSize=4,iPosX=0,iPosY=0;//iSize表示金块大小的变量for(iLoop=0;iLoop
这节我们实现黄金矿工的钩子180度来回转动,这样矿工就可以控制抓取范围了,也为后面的抓取金子做好准备Stepl:图片资源导入点击添加一个新的动画添加GolderManAnimation1,GolderManAnimation2,GolderManAnimation3到环境中,添加完后效果如图:将GolderManAnimation2拖进屏幕,并取名为GoldMan,如下图所示:需i:Goldh/lan同理,将静态精灵中的钩子,拖进屏幕,按初始界面排放并在右侧的“编辑”中设置名称如下:〒程呼接丨1toldHaak布置好后的效果如下:Step2:本实验用到的API/*dSetSpriteRotation:设置精灵的旋转角度* 参数szName:精灵名字* 参数fRot:旋转角度,范围0-360*/externvoiddSetSpriteRotation(constchar*szName,constfloatfRot);Step3:思路阐述实现钩子的180度来回摆动,其实就是不断地设置钩子与地面的夹角从0—180度不断地变化,可以利用dSetSpriteRotation来进行设置为了使钩子以恒定的速度来回摆动,我们可以自定义一个初始化速度speed,然后利用游戏屏幕刷新的时间fTimeDelta来实现,即speed*fTimeDelta即为当前钩子所在的角度位置。
Step4:代码及注释首先定义全局变量,定义如下全局变量:floatg_fHookRotation=0.f;//钩子与地面的夹角;在WinMain的初始化部分,即金块分布的for循环下方添加:constfloatfRotateSpeed=45.f;//摇摆速度,单位度/秒intiHookRotToLeft=1;〃钩子摆动的方向:1〜;0f由于钩子摆动在游戏过程中一直进行,所以应该将摆动的代码置于while循环中,在floatfTimeDelta=dGetTimeDelta();下方添加如下代码:floatfThisRotate=fRotateSpeed*fTimeDelta;//本次旋转的角度if(iHookRotToLeft){//向左转,度数不断变大g_fHookRotation+=fThisRotate;if(g_fHookRotation>=180.f){//大于180,置为向右转,即0g_fHookRotation=180.f;iHookRotToLeft=0;}}Else{//向右转,度数不断变小g_fHookRotation-=fThisRotate;//小于0,置为向左转,即1if(g_fHookRotation<=0.f){g_fHookRotation=0.f;iHookRotToLeft=1;}}dSetSpriteRotation("GoldHook",g_fHookRotation);//设置钩子的当前角度编译运行,可得到如下所示的效果:练习:1.使钩子从左往右进行旋转释放绳索学习目标学习应用dSetSpriteLinearVelocityPolar,dAnimateSpritePlayAnimation函数学会利用全局变量来控制游戏的运行状态。
这节我们实现黄金矿工在某一角度放下绳索的操作,为之后的真正抓取金子。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


