捕鱼达人游戏项目开发过程文档教学文稿
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
捕鱼达人项目开发过程文档
一、游戏资源文件
image 图片:包括火炮,鱼,子弹,渔网,金币,数字,背景图片以及其它UI 图片 CCFish 类:实现鱼的曲线路线的移动与各种鱼捕捉概率的设置
UINumber 类与UIRollNumber 类
二、游戏基本结构确定及搭建 图1.1 依次在项目中创建如有图类
完成项目结构,在总体上把握项目实现内容
三、详细设计与各功能模块的实现
程序编写流程
1. 系统菜单场景:
1) 添加初始化方法
2) 添加菜单
3) 添加菜单选项方法
2. 游戏场景
1) 添加初始化方法
2) 添加纹理图集载入方法
3) 添加UI 设计方法
4) 添加触摸事件处理方法
5) 添加自动补充鱼更新方法
6) 添加碰撞检测方法
3. 设置页面
4. 帮助场景
游戏重要模块详细实现
1. 纹理图集的使用与加载
要点:精灵处于界面中的层次关系,如下为纹理图集加载代码
[[CCSpriteFrameCache sharedSpriteFrameCache ] addSpriteFramesWithFile :@"fish.plist"];
fishSheet = [CCSpriteBatchNode batchNodeWithFile :@"fish.png"];
[self addChild :fishSheet z :100];
2. UI 设计的细节实现
要点:各个UI 部件(精灵)的层次,位置调整以及武器的更换动作设置,下面为UI 实现代码
-(void ) initUI {
SysMenu
(scene)
GameMain
(scene) Setting (layer)
Help (scene)
CGSize winSize = [[CCDirector sharedDirector] winSize];
CCSprite * background = [CCSprite spriteWithFile:@"bj00.jpg"];
background.position = ccp(winSize.width * 0.5, winSize.height * 0.5);
[self addChild:background z:0];
//添加能量槽
CCSprite *engryBox =[CCSprite spriteWithFile:@"ui_2p_004.png"];
engryBox.anchorPoint = ccp(0.5, 0.5);
engryBox.position = ccp(winSize.width/2,10);
[self addChild:engryBox z:10];
//添加能量箭头
energyPointer = [CCSprite spriteWithFile:@"ui_2p_005.png"];
energyPointer.anchorPoint = ccp(0.5,0.5);
energyPointer.position = ccp(winSize.width/2,10);
energyPointer.rotation = minEnergyRotation;
[self addChild:energyPointer z:12];
//添加顶部框体
CCSprite *bgExp =[CCSprite spriteWithFile:@"ui_box_01.png"];
bgExp.position = ccp(winSize.width/2, winSize.height);
bgExp.anchorPoint = ccp(0.5f,1.0f);
[self addChild:bgExp z:101];
//添加底框
CCSprite *bgNum =[CCSprite spriteWithFile:@"ui_box_02.png"];
bgNum.position = ccp(bgNum.contentSize.width/2, 0);
bgNum.anchorPoint = ccp(0.5f,0);
[self addChild:bgNum z:101];
//添加武器
cannnon = [CCCannon spriteWithSpriteFrameName: [NSString
stringWithFormat:@"actor_cannon1_%i1.png",1]];
cannnon.cannonLevel = 1;
cannonLevel = 1;
cannnon.anchorPoint = ccp(0.5f,0.5f);
cannnon.position = ccp(winSize.width/2,30);
cannnon.scale = cannon_scale;
cannnon.cannonType = nomal;
[cannonSheet addChild:cannnon];
//添加“+”,“-”按钮(待改)
[CCMenuItemFont setFontSize:32];
[CCMenuItemFont setFontName:@"Arial"];
CCMenuItem * addItem = [CCMenuItemFont itemFromString: @"+"target:self elector:@selector(addCannonLeave)];
//addItem.scale = 1.5;
CCMenu * addMenu = [CCMenu menuWithItems:addItem,nil];
addMenu.position = ccp(winSize.width*0.5+30, 10);
[addMenu alignItemsVertically];