| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

基于Cocos的大富翁游戏设计与开发

山***1

贡献于2019-05-31

字数:20691






专 业: 信息安全  
设计题目: 基Cocos富翁游戏设计开发













制作游戏技术说首先需款引擎什需引擎呢?引擎提供基础功游戏通引擎功模块进行游戏制作游戏体部分需交逻辑处理游戏引擎决定游戏制作甚决定终品质作宣传噱头某款引擎见款游戏引擎游戏制作重性
PC端说虚幻4寒霜3引擎目前较游戏引擎制作游戏效果相惊移动端说Unity 3D Cocos2d目前流行两款引擎2014年前两款引擎持半壁江山原3D引擎2D引擎游戏制作里中需两款引擎出数优秀作品2014年Unity 3D 开放2D模块Cocos2d开放3D模块弥补身足开发员着手种引擎完成3D2D开发工作Cocos2d相Unity 3D优势款开源活跃跨台免费面开发员引擎着手游戏行业程序开发员说款手引擎
文首先整体介绍国外Cocos技术发展现状然丧心病狂扯足足40页结束

关键词:Cocos2dC++11API单机版游戏富翁

目 录
1 绪 1
11课题目意义 1
12国外发展现状 2
13课题容功介绍 3
131课题容 3
132坦克战游戏功介绍 3
14相关技术简介 4
141 HTML5标准简述意义 4
142 JavaScript标准简述意义 4
143 CSS标准简述意义 5
15开发工具 6
16文章节安排 7
2 系统分析 8
21系统设计分析 8
22系统需求分析 8
221系统角色 8
222需求分析 8
223例分析 9
3 系统概设计 11
31系统总体功设计 11
311程序功模块分析 11
312图读取修改 11
313游戏进行中声音控制分析 12
32程序流程 12
33模块应功 14
4 系统详细设计 16
41数理模块设计 16
42图功模块 17
421读取图 17
422绘制图 17
423图模块部分代码 20
43坦克模块设计 21
431读取数理模块信息 21
432控制坦克 21
433坦克模块部分实现代码 22
44炮弹模块功 24
441读取数理模块信息 24
442控制炮弹飞行 25
443炮弹模块部分实现代码 25
45声音控制模块 28
46系统奖励模块功 28
47游戏中动画界面模块功 29
5 总结展 32
51总结 32
52展 32
参考文献 34
翻译部分 35
英文原文 35
中文译文 38
致 谢 41

1 绪
11课题目意义
2015年尚未结束先举例子分析2014年移动端游戏现状:
1:2014年中国移动游戏市场实际销售收入2749亿元民币2013年增长1446%
2:2014年中国移动游戏市场占率达24%2013年升105百分点
3:2014年中国移动游戏户数量约达358亿2013年增长151%

年着移动设备技术精进性断更新进步移动游戏发展迅速移动游戏市场成整体市场增长强动力
市场分析中国2013年安卓台游戏cocos2d率26ios率49见款引擎热手程度前市场火热移动端游戏市场前景片前提解热门块游戏引擎非常明智选择游戏言选择游戏引擎开发制作中重环句话应正点款游戏品质单单什引擎款游戏引擎决定款游戏终效果
作款开源跨台游戏引擎Cocos2d数手游开发者提供稳定方便台官方社区统计目前止基cocos2dx开发游戏全球范围已少亿安装量现公司中cocos2d项目石器里走现已线正常盈利外值说Cocos2dc++Luajavascriptheml5C#余种语言台进行开发开发员友性见斑
整市场言越越频繁移动设备数移动设备情况玩游戏庞市场研究掌握款移动设备游戏引擎进行游戏开发符合市场需求
游戏开发者游戏引擎必须接触块容游戏引擎游戏开发者直接调引擎接口实现原需复杂代码实现功游戏引擎游戏开发者着手游戏逻辑制作费力处理底层效果实现提高开发效率
言款游戏引擎研究开发完成款属游戏研究学价值较提升价值学Cocos仅研究该款引擎已时结束解Cocos引擎结构系统设计模块设计接口设计甚C++语言身解进步加深
12国外发展现状
首先句官方介绍开头:Cocos2dxMIT许证发布开源游戏引擎游戏开发快速简易功强Cocos2dx核心优势允许开发员利C++LuaJavascript进行跨台部署覆盖台包括iOSAndroidWindows Phone黑莓(BlackBerry)Tizen等等省事省力省成
完全统计cocos2dx引擎国手机游戏开发份额接70国外份额接25苹果APP排行榜top10里面7cocos2dx引擎开发
Cocos2dx户仅包括开发者游戏开发爱者包括许知名公司ZyngaWoogaGamevilGluGREEKonamiTinyCoHandyGamesIGGDisney Mobile等截止2013年9月全球基Cocos2dx引擎游戏载量高达逾15亿中许占苹果应商店(AppStore)谷歌应商店(Google Play)排行榜时许公司触控谷歌微软ARM英特尔黑莓工程师Cocos2dx领域非常活跃
目前Cocos拥包括Cocos2dCocosCococs2dJSCocos Code IDEQuickCocos2dx种产品中包含式样编辑器满足视化编辑UI控件功引擎言Cocos2d派生出许分支引擎分支引擎支持目标台编程语言分支参考表:
分支引擎
编程语言

Cocos2d
Python
桌面操作系统
Cocos2diphone
ObjectiveC JavaScript
iOS
Cocos2dx
C++ Lua JavaScript
参见支持台编程语言部分
Cocos2dhtml5
JavaScript
支持HTML5浏览器
ShinyCocos
Ruby
iOS
Cocos2dwindows
C++
Windows XP7
Cocos2dandroid
Java
Android
Cocos2dandroid1
Java
Android
Cocos2dxna
C#
Microsoft and MonoGame platforms
Cocos2djavascript
JavaScript
支持HTML5浏览器
Cocosnet
C#
Monosupported 台
Cocos3d
ObjectiveC
iOS
13课题容功介绍
131课题容
课题容Cocos2dx引擎实现富翁类型游戏实现游戏开始菜单关卡选择场景搭建声音设置户信息存储读取
132富翁游戏功介绍
户安装富翁apk开始富翁游戏游戏支持电脑AI进行战
游戏功包括:
(1) 开始菜单开始游戏读取记录背景音乐开关退出游戏
(2) 玩家选择开始游戏进入关卡选择界面选择3中关卡进行游戏
(3) 玩家点击GO钮机行走16步行走完毕前图选择执行购买空图升级前房屋缴纳税金功方金钱等0判断胜负结束游戏
(4) 游戏中出现图资源里通图编辑器进行编辑
(5) 轮玩家行走时候点击保存钮保存前游戏状态次游戏通菜单进行读取
14相关技术简介
141 Cocos2dx简述意义
cocos2d基MIT协议开源框架构建游戏应程序图形界面交互应创建台游戏时节省时间
Cocos2d初版python写改成objectiveC应iphone国某根该设计理念改C++版cocos2dX该版iphonewidnowsandriod三台运行新版100该引擎C++版引入lua脚系统cocos2d完全开源引擎开发者意该代码公开源代码cocos2d广泛中包括Zynga南宫梦等知名游戏公司Cocos2d仅仅2D图形引擎库提供游戏逻辑支持系统cocos2d提供简单声音引擎支持播放mp3waveogg等文件格式音乐cocos2d物理引擎box2d配合实现碰撞等物理效果cocos2d引擎结构清晰文档实例较丰富易学易
总结coco2d拥优点:
易游戏开发者关注焦点放游戏设置身必消耗量时间学晦涩难懂OpenGL ES外Cocos2D提供量规范
高效Cocos2D基OpenGL ES进行图形渲染移动设备GPU性发挥极致
灵活方便扩展易集成第三方库
免费基MIT协议免费开源框架户放心担心商业授权问题
社区支持关心Cocos2D开发者发建立社区组织方便查阅类技术资料

21 cocos2d 基结构
Cocos2dx3x引擎中采节点树形结构理游戏象游戏划分场景场景分层层拥意见游戏节点(象游戏中基类派生节点类Node)执行Action修改游戏节点属性移动旋转放缩等等
时刻场景独立运行通切换场景完成游戏流程游戏流程理Director执行
(1)导演(Director)
款游戏部电影游戏具更强交互性基原理致Cocos2dx中统筹游戏局类抽象导演(Director)Director整cocos2dx引擎核心整游戏导航仪游戏中常操作Director控制OpenGL ES初始化场景转换游戏暂停继续控制世界坐标GL坐标间切换节点(游戏元素)控制等游戏数保存调屏幕尺寸获取等Director类理控制
Director游戏项目总导演会常调进行控制该Director利单件设计模式项目里取directorgetInstance() 方法取Director实例
(2)场景(Scene)
Scene场景cocos2dx中必少元素游戏中通常需构建场景(少)游戏里关卡版块切换场景切换电影中变换舞台场样场景重作流程控制作通Director系列方法控制游戏中场景切换
面Director控制场景常方法:
runWithScene( Scene *scene ) 启动游戏运行scene场景方法程序第次启动场景时候调果已正运行场景调该方法会调pushScene>startAnimation
pushScene( Scene *scene ) 前运行中场景暂停压入代码执行场景栈中传入scene设置前运行场景存正运行场景时调该方法
replaceScene( Scene *scene ) 直接传入scene换前场景切换画面前场景释放切换场景时常方法
popScene() 释放前场景代码执行场景中弹出栈顶场景设置前运行场景果栈空直接结束应PushScene结
end() 释放终止执行场景时退出应
pause() 暂停前运行场景中计时器动作场景然会显示屏幕
resume () 恢复前运行场景计时器动作场景然会显示屏幕
时场景层容器包含需显示游戏元素通常需完成场景时候会创建Scene子类子类中实现需功子类初始化中载入游戏资源场景添加层启动音乐播放等等
(3)层(Layer)
Layer处理玩家事件响应Node子类场景层通常包含直接屏幕呈现容接受户输入事件包括触摸加速度计键盘输入等需层中加入精灵文标签者游戏元素设置游戏元素属性位置方设置游戏元素动作等通常层中象功类似耦合较紧层中游戏容相关逻辑代码编写层中组织层需层序添加场景中显示出场景添加层addChild方法
addChild( Node child ) addChild( Node child int zOrder ) addChild( Node *child int zOrder int tag )
中Child参数节点场景言通常添加节点层先添加层会置添加层果需指定先次序zOrder值tag元素标识号码果子节点设置tag值父节点中利tag值找层包含Node作子节点包括Sprites(精灵) Labels(标签)甚Layer象
(4)精灵
Cocos2d中精灵游戏引擎中精灵相似移动旋转缩放执行动画接受转换Cocos2dxSpriteTexureframeanimation组成openes负责渲染类关系  简单程描述:Texture2D加载图片Texture2D生成应SpriteFrame(精灵帧)SpriteFrame添加Animation生成动画数Animation生成Animate(终动画动作)Sprite执行动作

15开发工具
该项目需种软件工具支持接介绍运工具该工具作
(1) Python27:Cocos2d初版python写现创建新项目需通Python创建
(2) tmx图编辑器(tIDE Tile Map Editor):瓦片图(Tile Map) 生成简单灵活Cocos2dx引擎游戏角色扮演游戏 台动作游戏仿砖块游戏游戏图开源瓦片图编辑器Tiled Map Editor生成保存TMX文件格式Cocos2dx支持编辑瓦块斜视图六边形图
(3) 红孩工具箱:幅图片合成plist文件时plist文件拆解成张图
(4) Cocos2dxParticleEditor:开源例子编辑器开bin目录ParticleEditorexe 开启工具里面包含粒子实例中选取部分粒子效果编辑效果边修改右边数边浏览效果
(5) Eclipse:Eclipse 开放源代码基Java扩展开发台项目里移植项目apk
(6) Visual Studio 2013:微软公司推出开发环境Visual Studio 创建 Windows 台 Windows 应程序网络应程序创建网络服务智设备应程序 Office 插件项目完成整项目逻辑代码
16文章节安排
文分五章基容安排:
第章 绪阐述课题目意义介绍相关技术目前国外发展现状概述课题容功详略序介绍相关技术款 开发工具
第二章 系统分析该系统进行需求分析例分析系统总体结构进行分析系统功模块进行划分
第三章 系统概设计该系统程序模块进行分析图读取修改游戏中声音控制分析出程序流程图分析实现该游戏模块需解决问题提出解决方案
第四章 系统详细设计首先该系统服务端进行设计分析图功模块坦克模块炮弹模块绘制画面等部分具体实现进行说明然出实现模块部分关键代码
部分总结展总结系统优点足提出进行扩展功设计出步研究方
2 系统分析
21系统设计分析
良户体验种游戏说非常重良户体验需做点:
(1) 界面友:游戏界面做目然直观简洁易操作
(2) 流畅:够快速响应处理相关信息
(3) 扩展性:满足游戏设计时基功求够进步扩展附加功
(4) 节省资源:时候资源必须做效高速利够更加节省系统资源特游戏应说做快速准确响应户操作必须合理利配置效资源资源利化
22系统需求分析
221系统角色
游戏玩家:玩家操作角色
手:AI操作角色
222需求分析
游戏类设计够提供友便户操作界面时够接受户项操作请求请求转化相应项命令功需求包括方面:
(1) 开始菜单
户够通菜单进行开始游戏读取游戏音乐设置退出游戏设定
(2)背景音乐
户进行游戏程中根某某特定操作播放出已设定相关声音效果时播放背景音乐避免游戏程中单调乏味户放松丰富游戏功增加游戏玩性
(3)图选择功
户够选择想玩图
(4)游戏玩法
玩家控制角色点击GO钮进行机16步行走停时弹话框提示否购买空果该空已房子升级弹出否升级话框果房子等级已满行走次果方房子需缴纳费
3 系统概设计
31系统总体功设计
311程序功模块分析
游戏功模块分:
(1) 菜单模块:游戏设定
(2) 话框模块游戏中次该模块独立代码理单独出作独立模块进行讲解
(3) 图选择模块:负责户相关操作游戏界面绘制相关图修改实现相关数发送接受等功
(4) 图模块:游戏场景玩家操作物进行游戏保存游戏模块
(5) 数存储模块:json文件格式(cocos API)游戏数进行存储读取时根数读取重新布置场景
312图读取修改
游戏够较容易设计修改游戏界面已形成游戏图时根修改图灵活改变整游戏关卡少游戏难易程度等
313游戏进行中声音控制分析
必须根游戏中操作设计播放相关声音片段游戏够流畅播放出指定声音片段
32程序流程
根游戏功场景划分游戏程序分三独立场景
(1) 开始菜单
开始菜单游戏开时首先需操作部分部分设计采传统单机游戏设计:开始游戏读取记录背景音乐开关退出游戏模式时操作键外添加LOGO移动彩虹精灵增加趣味
该场景图32示




开始菜单场景








富翁LOGO

飘动彩虹
选择钮





退出
返回菜单
确定?
退出游戏
开关
音效设置
读取游戏
选择存档
读取进度
开始游戏
选择图
单机游戏
























图321 开始菜单设计流程图(2)话框模块:

话框

设置回调函数
创建话框
添加钮
添加容
添加标题
设置宽高



根添加钮数等分排列钮
添加标签
状态钮
正常状态钮
设置tag
































图322 话框设计流程图
(3)图选择场景该场景滑动层背景层组成滑动层里3精灵层组成滑动位置点击时候选择该图进行游戏
cocos2dx API4
1:精灵容器:
添加3图片精灵精灵容器里设置坐标(精灵容器长3屏幕高屏幕)
2:scrollview象
精灵容器添加ScrollView象中设置属性否触摸滑动方否弹性滑动坐标等
3:定义adjust_scroll_view方法进行拖动位置调整
滑动距离超设定值切换张图根前第张图片调整scrollview位置实现位置矫正
4:Scene场景转换:TransitionFadeDown百叶窗式换场景

图选择场景图33示滑动距离足够
滑动距离足
滑动距离足够
滑动距离足
进入左侧图
进入右侧图
右滑动
左滑动
左边图
右边没图
右边图
左边没图
右滑动
左滑动
玩家选择单机游戏
进入图选择界面
























弹回前图进入游戏
弹回前图进入游戏





图33 图选择场景流程图

(4)图场景
图场景游戏玩家交互部分采取设计方法设计图基类该基类拥场景具备功然游戏场景继承该基类通读取TMX文件数设定决定图特点
设计流程图图34:
游戏场景3
游戏场景1
游戏场景2

玩家金钱
背景显示
图部分
玩家信息部分
图基类
继承














设置物逻辑
Tilemap图编辑器





背景图片
玩家头
绘制表格



背景部分
行走区域
建造区域




图34 场景模块

(2) 数存储模块
该模块两角色种信息建造区域瓦块信息存入json文件中图文件名根文件名进行区分读取具体格式表



名词解释
map_level

图种类
gameRoundCount

回合数
players

1
playerTag
角色tag区分角色
playerPosition_x
X坐标
playerPosition_y
Y坐标
money
金钱
comeFromeRow
格行编号
comeFromCol
格列编号



isMyTurn
该回合否行走
2
playerTag

playerPosition_x

playerPosition_y

money

comeFromeRow

comeFromCol

isMyTurn

landlayer
1
x
X坐标
y
Y坐标
gid

2
x

y

gid

3
x

y

gid





4 系统详细设计
41菜单模块设计
411:背景
背景添加两精灵中间位置富翁LOGO左角左右移动精灵背景部分填充白色该项目中Photoshop编辑3张移动精灵次开该场景会机张图片作飘动模块丰富细节

bool start_menuinit()
{

添加背景干精灵
add_background_sprite()

return true
}

相关API介绍:
1:Spritecreate(const stdstring& filename) :创建精灵
2:SpritesetPosition(const Vec2& pos):设置坐标
3:SpritesetScale(float fScale):设置精灵例
4:SpritesetAnchorPoint(const Vec2& anchor):设置描点
5:NodeaddChild(Node *child) :象添加父节点
6:MoveBycreate(float duration const Vec2& deltaPosition):移动
7:MoveByreverse():反移动
8:Sequencecreate(FiniteTimeAction *action1 ):动作前序逐执行
9:RepeatForevercreate(ActionInterval *action):目标动作进行永久性重复运动
10:Action * NoderunAction(Action* action):精灵执行行动
412:钮
bool start_menuinit()
{

添加干菜单(键)精灵
add_menu_sprites()

return true
}

钮两部分组成键图片二图片文字需设置钮坐标钮钮应tag钮效果钮时调回调函数钮需调回调函数该项目中钮会调start_menumenu_touch_down函数然该函数根钮TAG进行区分进行相应操作
具体回调实现:
addTargetWithActionForControlEvents(this
cccontrol_selector(start_menumenu_touch_down)
ControlEventTypeTOUCH_DOWN)
应操作函数里实现程:
switch (tag)
{
case start_game_tag
{
*开始游戏钮*
时会弹出图选择场景操作pushScene添加应popScene操作场景退出返回开始菜单场景
DirectorgetInstance()>pushScene(map_choose_scenecreate_scene())
break
}
case lode_game_tag
{
*读取游戏钮*
弹出读取游戏话框3读取位置应3图果该图没记录会显示空记录
popup_load_game_layer()
break
}
case music_tag
{
*音乐设置钮*
获音乐状态
bool music_on UserDefaultgetInstance()>getBoolForKey(MUSIC_ON_KEY true)
if (music_on)
{
*前音乐开启状态时需文字设置音乐关闭TAG设false关闭背景音乐*
设置tagfalse
UserDefaultgetInstance()>setBoolForKey(MUSIC_ON_KEY false)
钮选中文字响应状态文字改music off
button>setTitleForState(MUSIC_OFF ControlStateNORMAL)
关闭背景音乐
CocosDenshionSimpleAudioEnginegetInstance()>stopBackgroundMusic()
}
else
{
*前音乐关闭状态时需文字设置音乐开启TAG设true然机播放首音乐*
设置tagtrue文字改music on
UserDefaultgetInstance()>setBoolForKey(MUSIC_ON_KEY true)
钮选中文字响应状态
button>setTitleForState(MUSIC_ON ControlStateNORMAL)
机播放首背景音乐
rand_play_bg()
}
break
}
case quit_game_tag
{
*退出游戏钮*
弹出关闭游戏话框户选择应操作
quit_layer()
break
}
default
break
}
412:效果演示


42场景选择模块
421添加背景
添加背景滑块滑动时候直显示该背景该项目中Photoshop编辑3张背景图次开该场景会机张图作背景展示丰富细节
bool map_choose_sceneinit()
{

add_background_sprite()

return true
}
422添加左右滑动层
首先需层供玩家滑动层长屏幕宽3倍高屏幕1倍层3精灵精灵副缩版图占屏幕具体流程:
1 创建Layer
2 创建3Sprite
3 3Sprite加入Layer中设置应位置
4 设置该Layer坐标3屏幕宽屏幕高
5 创建scrollView然Layer添加该scrollView
6 设置scrollView弹性滑动丰富细节
7 该scrollView加入场景
外该层需添加触摸监听样玩家手指移屏幕滑动时候会应回应关键代码:
bool map_choose_sceneinit()
{

设置单点响应次手指操作手指时触摸相应第手指动作
setTouchMode(TouchDispatchModeONE_BY_ONE)
添加触摸监听
auto listener EventListenerTouchOneByOnecreate()
触摸简单点说两sprite A BAB(位置重叠)触摸A时候B会受影响
listener>setSwallowTouches(true)
添加三回调函数分触摸时滑动时滑动结束时回应回调边结束时需做操作两函数没操作
listener>onTouchBegan CC_CALLBACK_2(map_choose_sceneon_touch_began this)
listener>onTouchMoved CC_CALLBACK_2(map_choose_sceneon_touch_moved this)
listener>onTouchEnded CC_CALLBACK_2(map_choose_sceneon_touch_ended this)
监听事件加入该层
DirectorgetInstance()>getEventDispatcher()>addEventListenerWithSceneGraphPriority(listener this)
return true
}

423效果展示


423根前位置加载应图
户点击者滑动距离够时户操作应该需进入前图时需变量current_page存储前位置该值默认1户滑动时应该根户滑动方改变该值时滑动结束果滑动距离定值表示户需换张图时应该修正位置操作时根该值矫正前图位置弹回屏幕中间
实操作户滑动结束进行应该422中谈map_choose_sceneon_touch_ended函数处理
部分代码实现:
void map_choose_sceneon_touch_ended(Touch*touch Event *unused_event)
{
获触摸点坐标
Point end_point DirectorgetInstance()>convertToGL(touch>getLocationInView())
float distance end_pointx begin_touch_pointx
if (fabs(distance) > touch_distance)
{
滑动距离预定距离根滑动距离矫正位置右移动定位置切换张图背景
adjust_scroll_view(distance)
}
else
{
滑动距离预定距离矫正位置前图背景
CCPoint adjust_pos ccp(visible_sizewidth * (current_page 1) 0)
scroll_view>setContentOffset(adjust_pos true)
if (current_page 1)
{
弹出应场景百叶窗式换场景
auto scene TransitionFadeDowncreate(2 BeachScenecreateScene())
DirectorgetInstance()>pushScene(scene)
}
if (current_page 2)
{

}

}
43图场景部分
该图首先需图背景做处理两部分TMX图右侧信息框TMX图场景部分物移动块升级该场景处理右侧信息框展示玩家信息设置操作钮
431加载TMX图
项目中TMX图重部分部分逻辑物移动需图确定图分3层:
1:ground层
2:way层
3:land层

Ground层图背景需逻辑处理部分way层物行走层物应该层进行行走land层升级块层物行走结束时该层图块进行操作购买空升级块等功
层图块组成图块拥唯Gid升级房子图块需事先存图里面需时候调出
图TMX编辑器开展示:



首先需场景基类中声明函数时声明时候需声明成虚函数图载入需特定场景建立起时候够调应该继承类中实现
声明:
class scene_base public Layer
{

public
virtual void addMap()

}
时需场景初始化时调该函数调部分部分代码:

bool scene_baseinit()
{

虚类子类行实现添加图功
addMap()

}
图载入具体实现沙滩图载入实现代码
void beach_sceneaddMap()
{
map TMXTiledMapcreate( mapbeachtmx)
addChild(map)
}
432右侧信息框布置
游戏进行时候需展示玩家前情况前金钱已提供玩家操作钮玩家行走GO钮存档钮等
具体细节:
1:信息框背景
2:格子放玩家头等
3:两角色头
4:两角色金钱
5:两角色体力
6:GO钮
7:回合统计
8:存档钮

函数实现:

初始化函数
bool scene_baseinit()
{

添加右侧信息栏
add_right_banner()
绘制右侧信息栏中表格
draw_table(total_player_number)
添加角色信息
add_player_info()
添加钮
add_buttons()
加载回合资源
add_digite_round_sprite()
刷新回合
refresh_round_display()

return true
}

44物逻辑模块
部分复杂处理起棘手块部分角色拥功route_navigation类control类player类scene_base类组成route_navigation类负责务行走路线control负责理物行走逻辑player类负责加载物动画存储角色相关信息scene_base类处理场景相关功
441物行走路线
该部分类route_navigation负责该类根角色坐标步数行走区域设置角色行走路线
物需定方前进遇岔路时需机道路进行移动行动回走部分需代码逻辑进行处理具体实现步:
1:创建二维数组指针way_pass_to_grid二维数组第维表示行第二维表示列然行走区域置true行走区域置false二维数组表示处数简化成数组形式二物位置机摆放者读取进度时候直接二维数组中机者摆放物位置三唯指针表示物位置果坐标表示物会出现物位置偏移法修复现象
2:机16值该值代表角色行走步数
3:需读取物前位置is_can_go函数根二维数组way_pass_to_grid查该物左右方否行走果话加入两容器类path_row_vectorpath_col_vector两容器储存物行走路线物行走步角色时候位置置false代表角色已行走然继续查方否行走重复面步骤直容器等角色行走步数
模块函数:
class route_navigation
{

获前角色路径
void get_path(player * player int steps_count bool ** can_pass_grid int grid_rows_count int grid_cols_count)
判断方否行走
bool is_can_go(int row int col int direction bool ** can_pass_grid)

}


流程图:


指针值设置默认值false
根图行列数创建二维数组
Way图层瓦片坐标转化成行列值
获图way(行走)图层
获way(行走)图层
















应坐标存入坐标容器中设置物坐标时需
行列值应指针值设ture






442物行走帧动画播放
物行走步应播放次前位置位置动画实现物移动角色帧动画存储pngplist文件中程序根plist消息png图分成张图程序控制播放张图片
分两步第步帧添加帧容器中第二步根帧容器设置角色帧动画该部分函数:
class player public Sprite
{

添加角色帧vector
void add_player_animation()
设置角色帧动画
void set_player_animate()

}
部分实现代码:
添加角色帧vector
void playeradd_player_animation()
{

获帧动画实例
player_sprite_frame_cache SpriteFrameCachegetInstance()

获tag
int tag getTag()
switch (tag)
{
角色1tag
case PLAYER_1_TAG
{
player_sprite_frame_cache>addSpriteFramesWithFile(PLAYER1_ANIM_PLIST PLAYER_1_ANIM)
break
}
角色2tag

char p_name[20]
初始化
memset(p_name 0 20)
for (int i 1 i < 4 i++)
{
帧缓存中取出14张图放入vector中
sprintf(p_name playerd_anim_02dpng tag i)
player_anim_left_vectorpushBack(player_sprite_frame_cache>getSpriteFrameByName(p_name))
}

}



设置方动画
void playerset_player_animate()
{
设置名称
int tag getTag()
sprintf(left_animation left_animation_d tag)

if (AnimationCachegetInstance()>getAnimation(left_animation))
{ AnimationCachegetInstance()>addAnimation(AnimationcreateWithSpriteFrames(player_anim_left_vector player_go_per_frame_time) left_animation)
}

left Animatecreate(AnimationCachegetInstance()>getAnimation(left_animation))

保存存避免释放
left>retain()

}





















设计流程图:
根坐标帧象设置角色属性
根4动作创建4方动画
根4容器创建4方动作
帧缓存中取出图片放入4vector容器中
加载plist文件png文件帧缓存





















坐标容器中机取坐标
帧缓存中取出帧作角色初始图片







创建GO钮





添加场景基层





动画加载完毕需物移动步时应根441中提坐标容器进行移动
部分实现代码:
void controlmove_one_step(player* player)
{
取步行列值
next_row _row_vector[step_has_go + 1]
next_col _col_vector[step_has_go + 1]
计算行走距离
int distance_row next_row current_row
int distance_col next_col current_col

行走步
if (distance_row > 0)up
{
move_by MoveBycreate(PLAYER_GO_TOTAL_TIME ccp(0 tiled_height))
repeate Repeatcreate(player>get_up() 1)
}
if (distance_row <0)down
{

}

spawn_action Sequencecreate(Spawncreate(move_by repeate NULL) call_end_go_func NULL)
spawn_action>retain()
player>runAction(spawn_action)
}
443角色行走逻辑
前介绍细节模型载入纯逻辑物步骤接结合起实现角色行走











流程图:
等玩家点击GO钮

选择第行走角色
角色行动
设置角色行走

否全部行走完

计数器+1
设置钮点击
遍历角色容器
设置钮点击



















设置角色行走













443购买升级块
玩家角色行走完毕会弹出话框提示玩家需购买块者升级块果前块手建筑会扣部分钱显示扣钱提示框

玩家点击话框需处理逻辑修改应图块图片然退出话框发送消息角色进行行走操作scene_basebuy_land_callback(Node *pNode)里实现



部分实现代码:

void scene_basebuy_land(int buyTag float x float y Sprite* landSprite int landLevel player* player char* particlelistName)
{
int money 0
根升级块类型确定需花费资金
if (buyTag MSG_BUY_BLANK_TAG)
{
money LAND_BLANK_MONEY
}
if (buyTag MSG_BUY_LAND_1_TAG)
{

}

播放动画粒子效果然更新资金Label
Point pointOfGL utilmap_to_GL(ccp(x y) scene_basemap)
landSprite>setVisible(true)
landSprite>setPosition(pointOfGL)
Point pointOfMap ccp(x y)
landSprite>runAction(
动画序列
Sequencecreate(
第动画序列图案变
scaleby1_for_buy_land
第二动画序列图案变
scaleby2_for_buy_land
面两动画运行执行面函数
CallFunccreate([this pointOfMap pointOfGL landSprite landLevel x y player money particlelistName]()
{
播放例子效果
play_particle(pointOfGL particlelistName)
landSprite>setVisible(false)
修改应图块
land_layer>setTileGID(landLevel ccp(x y))
设置角色金钱
refresh_money_label(player money)
})
NULL
)
)
}
444游戏胜负判定
方金钱0需结束游戏播放效果角色行动完毕已购买方增加判断
具体实现:应方发送MSG_GAME_OVER_TAG消息通知消息接收机制游戏已结束然消息接收机制统处理
发送函数:
NotificationCentergetInstance()>postNotification(MSG_GAME_OVER str)
处理部分:
int playerTag messageVectorat(3)>intValue()
第物时游戏显示失败画面否显示胜利
switch (playerTag)
{
case PLAYER_1_TAG
{
Sprite* gameOver Spritecreate(imageslosepng)
gameOver>setPosition(winSize 2)
addChild(gameOver)
break
}
case PLAYER_2_TAG
{
play_particle(winSize 2 imageswin_particleplist)
Sprite* gameOver Spritecreate(imageswinpng)
gameOver>setPosition(winSize 2)
addChild(gameOver)

break
}
45存档读档模块
存档文件采json文件格式:
玩家游戏场景中点击存档钮时会调bool scene_basesave_game()函数进行数存储

读档部分消息处理部分函数reload_game函数处理
case MSG_LOAD_GAME_TAG
{
log(MSG_LOAD_GAME_TAG)
int map_level messageVectorat(1)>intValue()
reload_game(map_level)
break
}
46背景音乐模块
该项目中收集三首背景音乐玩家开始菜单开音乐者开游戏时音乐播放状态on机播放中首背景音乐播放函数
void start_menurand_play_bg()
{

int num rand() bgMusicVectorsize()

没播放bg时播放
if (CocosDenshionSimpleAudioEnginegetInstance()>isBackgroundMusicPlaying())
{
utilplayRicherMusic(bgMusicVectorat(num) true)
}
}

47话框模块

5 总结展
51总结
文思想基Cocos技术研究实践应文首先介绍国外相关领域Cosos语言相关开发技术现状然介绍富翁游戏基功然介绍课题研究程中相关工具语言知识文成果:
(1) 分析国外相关领域Cocos相关开发技术现状设计基Cocos技术游戏开发游戏——富翁
(2) 实现该游戏软件工程制定相关流程专业软件开发流程进行实践
(3) Cocos 新功进行研究应总结出套较实适编程方法心体会
52展
参考文献
翻译部分
英文原文
中文译文



致 谢
文写作程中帮助感谢指导老师学更新知识知道应该学什样学感谢支持帮助学朋友关心
首先衷心感谢指导老师赵莹老师3月文写作程中赵老师选题深入分析予帮助启示整毕业设计程中提供量宝贵资料设计程中花费许时间起讨较方案容指导提出许意见建议
感谢两年半课老师09级电子信息科学技术专业起走完条路学感谢父亲母亲家殷切期私关怀激励着断进取感谢整项目开发程中跨域帮助学死起探讨学非常感谢
感谢学校老师领导正辛勤耕耘基础知识次巩固理实践相结合仅完成学业充实更利工作发展

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 15 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

基于java的坦克大战游戏开发毕业设计

 毕业设计说明书(论文) 作 者: 学 号: 院 系: 专 业: 计算机科学与技术 题 目: 基于java的坦克大战游戏开发 指导者: 实验师

文***品 5年前 上传1290   0

基于Unity3d游戏引擎的科普类游戏的设计与开发

随着现代城市化的发展,保护城市的要求迫切的需要执行。并且随着人们的生活质量提高,产生的生活垃圾越来越复杂。如何懂得分类生活中的垃圾,如何让垃圾有效的回收使之重新变成资源成为一个严峻的话题。

平***苏 3年前 上传584   0

基于Android的教学课程系统设计与开发

摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的学校,甚至不同的院系,都有着自己独特的情况。该项目借鉴了现有的一些和学习相关的移动应用,结合软件学院的特点,针对软件学院的学生,提供了学生日常学习生活常用的一些功能。主要分为我的课表,我的日程,我的学习

平***苏 3年前 上传602   0

基于ASP技术的网站的设计与开发毕业论文

基于ASP技术的网站的设计与开发毕业论文 目录 第一章 绪论 1 1.1引言 1 1.2网站的简介 1 1.3网站开发的意义 2 1.4网站的特点及实现目标 2 1.4.1网站的特点 2 1.4.2网站的实现目标 2 1.5本文的主要工作 3 第二章 相关理论与关键技术介绍 4 2.1软件工程 4 2.2 HTML简介 4 2.3 ASP技术 5 2.3.1ASP技术的优点 5 2.3.2AS

文***品 5年前 上传1915   0

基于Web的作业系统设计与开发

基于Web的作业系统开发与设计基于Web的作业系统开发与设计摘 要本作业系统是基于原有的教学管理模式,通过构建B/S架构,使用Java Server page(简称“JSP”)为本设计的前台开发使用的工具,使用MySQL数据库为后台数据库,从而去实现教学管理的信息化。通过对现有教学管理模式的梳理,本次设计主要分为三个大的模块:作业系统管理员模块、老师角色模块、学生角色模块

平***苏 1年前 上传256   0

毕业论文:基于ASP技术的网站的设计与开发

当今世界已经跨入了信息时代,计算机科学与技术正在迅猛发展,尤其是以计算机为核心的信息技术正在改变整个社会的生产方式、生活方式和学习方式。网站的设计与开发是当中的的一项重要工作。在设计过程中涉及大量的数据处理。随着Internet的迅速发展,基于Web 的信息服务方式得到了广泛的应用。

z***u 5年前 上传1536   0

基于Android的外卖点餐类的app的设计与开发

基于Android的外卖点餐类app的开发与设计 摘 要:在这千变万化的岁月中,手机已不是稀奇之物。规矩的传统订餐已经不能在我们生活中得到满足,用户们需要一个可以在家查看餐厅以及点餐的服务。由此,外卖订餐体系就呈现了,本体系操纵Android体系,来实现订餐。本系统操作十分简单,给用户一个全新的体验,也有助于商家往更好的方向发展,促进经济的发展。关键词:android;数据库;客户端;服

平***苏 7个月前 上传174   0

基于单片机的拔河游戏机设计课程设计

××大学××学院××课程设计基于单片机的拔河游戏机设计学生姓名学 号所 在 系专业名称班 级指导教师成 绩 ××大学××学院二○一二年X月摘要:近年来随着计算机在社会领域的渗透和大规模集成电

文***享 3年前 上传574   0

基于Unity的生活环境类游戏的开发与实现

本次课题是以打造一款以Unity3D引擎设计的一款生活环境类游戏——《逃离城市》。玩家需要控制游戏中的主角人物去进行几个场景城市的闯关。

平***苏 3年前 上传385   0

Android实训报告基于Android的游戏开发

通信与电子信息专业实训报告项目名称:基于Android的游戏开发 班 级 通信班 姓 名 学 号 指导教师 成 绩

文***品 3年前 上传1068   0

“校园大富翁”游戏活动策划书

“校园大富翁”游戏活动策划书  一、活动名称  管院会计系学生会——校园大富翁  二、主办单位  湖北经济学院管理技术学院会计系学生会  三、参加人员  管理技术学院会计系团总支学生会全体成员  四、时间地点  比赛时间:XX年3月1日,13:30到15:00  比赛地点:湖北经济学院西操场选手解释不懂的比赛规则。比赛中由于行走不便,组员有可能摔倒,该同学

c***g 12年前 上传470   0

知识大富翁游戏活动策划书

知识大富翁游戏活动策划书  一. 活动简介   活动主题:知识大富翁   活动时间:xx年11月18日下午(到时按实际情况可做调整)   活动地点:学生活动中心第一会议室   活动对象:九财管第一支部全体成员   主办单位:经管系第四团总支o九财管第一支部   二. 活动背景   知识,是当今社会发展的需要,是21世纪新人类必不可少的硬件装备;广泛的知识面,更是成

x***9 8年前 上传371   0

游戏设计与开发详细课程设计文档

为了学习Unity3D游戏引擎,为了进一步了解并熟悉该款引擎,本文描述了如何制作了一个三维的RPG类游戏项目,这个游戏的背景来源于一部叫做《草原历险记》的电影。通过对该项目的制作和学习,来了解用Unity3D开发游戏的利与弊,以及这款游戏引擎未来的优势。本文所述的游戏项目开发所用的开发工具是

文***享 2年前 上传451   0

基于单片机的乒乓球游戏系统的设计

基于单片机的乒乓球游戏系统的设计姓 名:学 号:专业班级: 院(系): 设计时间: 设计地点: 指导教师评语: 成绩: 签名: 年 月

文***享 3年前 上传723   0

基于微信小程序的游戏玩家互动社区的设计与实现

 基于微信小程序的游戏玩家互动社区的设计与实现 Design and Implementation of Gamer Interactive Community Based on WeChat Mini Program

平***苏 9个月前 上传340   0

《双减》基于多元表征的儿童数学游戏设计

《双减》基于多元表征的儿童数学游戏设计数学教育的根本目的是培养学生的数学思维,文章分析了当前儿童数学游戏设计忽视数学思维培养的问题及其原因,以儿童思维认知发展特点为基础,结合“核心图”游戏模型和多元表征理论,提出利于儿童数学思维发展的游戏设计模型,并从核心机制、规则、道具、角色等几个方面设计了数学思维启蒙游戏的实例。数学是一门高度抽象的学科,不如音乐那般生动,也不似美术那般具体,对于认知发展

蓝郎梦 1年前 上传245   0

基于Unity3D的解密RPG游戏的设计与实现

本次课题是研造一款以Unity 3D引擎的解密RPG游戏。游戏剧情是以《浦岛太郎》的童话故事为主题进行改编,原故事结局是浦岛太郎打开玉匣,最终变成了一个老头子,单调而且具有漏洞。而本游戏将会一改原故事的结局,并且添加更多不同的故事结局,使游戏过程更加扑所迷离,而且还会加入隐藏剧情增加游戏的趣味性,使得游戏更具有故事性。

平***苏 3年前 上传1754   0

基于倾角控制的LED骰子游戏的设计与实现

近来我国科技领域硕果累累,为了适应科技的快速发展,以便尽快适应企业需求和社会发展,本设计积极开展以实践为导向的电子制作。

平***苏 3年前 上传389   0

基于Unity3D的生存解谜游戏的设计与实现(v1.1)

自我国进入二十世纪八十代以来,国民经济如日方升,人民的生活方式也焕然一新,渐渐地人们对娱乐的需求越来越大,娱乐的方式也变得越来越多样化。

平***苏 3年前 上传1135   0

基于Unity3d引擎的ACT游戏设计与实现

从游戏诞生之始到现在,游戏市场就发生了非常大的变化,从卡带的游戏机到现在的电脑,专门的游戏主机等。在此之中,像素游戏是一个很重要的过渡期,像素图由于占空间少,颜色少,所以在最初阶段的电子计算机上时代中,就被采用来作为制作游戏的标准图片形式,因为最开始的游戏处理芯片比较低级,自然不能跟如今的3d游戏相比较了,能运行的图片都有严格的颜色和大小的限制。

平***苏 3年前 上传800   0

基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发

随着近年来互联网技术的发展与进步,游戏产业也迎来了朝阳时期。经过深入了解和研究生存冒险类游戏在市面上的情况,结合目前游戏市场的热点和玩家兴趣,本课题从多维度、多功能、多创新的方面出发,在开发过程中考虑后期开发需求,结合使用框架以及模块化思维的功能逻辑,解决开发后期可能会带来的开发隐患。

平***苏 3年前 上传576   0

基于J2EE的智能餐桌商务服务系统的设计与开发

摘 要对于农业这个传统行业来说,信息化程度远不如生产制造业、服务业等。特别是一些农业生产型企业依旧偏向于手工管理,就算是一些大型餐饮企业或者说配餐的电商平台也不过是仅仅体现在点餐的环节上。农产品从最初的生产到收获直到最终到达餐桌,它们之间不能够很好地通过信息化来实现数据的共享、资源的合理调配以及协同工作以致农业的发展始终落后于其他产业。本文采用定制农业模式,以及智慧餐桌平台,消费者可以相应

平***苏 3年前 上传424   0

0105098基于集成设计和过程技术(IDPT)的产品开发过程管理研究

基于集成设计和过程技术(IDPT)的产品 开发过程管理研究¶ 本文是国家863/CIMS重点应用工程研究课题资助项目 胥悦红· 胥悦红,女,博士 通讯地址(100039)北京市玉泉路19号(甲) 中科院研究生院管理学院。 (中科院研究生院100039) 谢飞 (天津大学管理学院300072) 摘要 本文在将传统的开发过程管理模式与基于IDPT的产品开发过程管理思想进

x***1 13年前 上传18259   0

基于Android Studio的饼图账单的设计与开发Android毕业论文

毕 业 论 文 基于Android Studio的饼图账单的设计与开发Design and Development of PieChart Billing Based on Android Studio所在系院: 计算机信息工程系 专业班级: 计算机应用技术 学生学号:

文***享 4年前 上传773   0

基于python的爱车分享交流网站设计与开发

基于python的爱车分享交流网站设计与开发网站系统摘 要设计开发该爱车分享交流网站系统主要是应用于有关汽车领域的网上社交,为用户提供信息化、数字化的分享交流平台,满足用户在此网站上发出对自己爱车或其中一款汽车的独有见解的声音并使之转变为一篇车评文章,分享出去让更多人看到和进行评论交流。当今,汽车可以说已经成为我们生活中不可或缺的出行交通工具,这些年汽车行业的迅猛发展,现

平***苏 2年前 上传431   0