怎样制作基于cocos2d x游戏-x的SLG游戏

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
基于cocos2d-x引擎的动作类游戏的设计与实现
下载积分:2000
内容提示:基于cocos2d-x引擎的动作类游戏的设计与实现
文档格式:PDF|
浏览次数:118|
上传日期: 21:07:03|
文档星级:
该用户还上传了这些文档
基于cocos2d-x引擎的动作类游戏的设计与实现.PDF
官方公共微信人人网游李成主题为《基于cocos2d-x的游戏框架设计》
人人网游李成主题为《基于cocos2d-x的游...
分享给好友
您需要先安装&,才能下载视频哦
用优酷App或微信扫一扫,在手机上继续观看。
人人网游李成主题为《基于cocos2d-x的游戏框架设计》
分享给站外好友
把视频贴到Blog或BBS
flash地址:
<input type="text" class="form_input form_input_s" id="link3" value=''>
<input id="link4" type="text" class="form_input form_input_s" value=''>
本次演讲主要分为三部分:
第一,软件设计不仅仅是游戏开发,它跟传统的建筑业有很直接的关系。你可以从两方面互相汲取一些经验。在盖大楼的时候,如果楼踏了就相当于游戏崩溃了,这种两种情况会直接导致什么结果呢?如果楼踏了很多人就必须重新盖,相对于程序员来说,就必须重新返工,很多其他项目的人员都一直跟着你加班加点。如果你把游戏做崩溃了,项目没有成,并且没有女朋友的话,别人都不愿意跟你,如果有女朋友的话你丈母娘就不愿意,说你把游戏都整崩溃了,还有什么不敢干的。
第四届Cocoachina开发者大会暨Cocos2D-X技术研讨会
播放数: 15,020
播放数:14,620
最近更新:1年前
播放数:33,455
最近更新:1年前
播放数:12,105
最近更新:1年前
播放数:12,534
最近更新:22小时前
播放数:299
最近更新:1年前
播放数:7,834
最近更新:1年前
节目制作经营许可证京字670号
京公网安备号
药品服务许可证(京)-经营-Sina Visitor System基于cocos2d-x引擎的手机游戏快速开发工具的设计与实现--《南京大学》2013年硕士论文
基于cocos2d-x引擎的手机游戏快速开发工具的设计与实现
【摘要】:随着近年来智能手机市场的快速发展,它所提供的丰富多彩的应用不仅开启了一个新的通讯时代,更给人们带来了一种集沟通、办公、娱乐为一体的新的生活方式。在满足人们娱乐方面,手机游戏发挥了举足轻重的作用。如何快速有效的开发出一款稳定、可玩性强的游戏等成为业界面临的一道难题。近年来,在全球众多开发者的共同努力下,产生了一款开源2D手机引擎——cocos2d-x。
然而现有的cocos2d-x引擎也存在较大缺陷,如没有一个有效的可视化编辑工具,从游戏的UI布局到后台逻辑只能通过代码实现,对开发环境的跨平台支持不足,对多对象组成的动画制作也比较繁琐等。针对这些问题我们开发了基于cocos2d-x的手机游戏快速开发系统——卡卡编辑器。该编辑器系统使用了MVC模式的设计思想,运用SWT/JFACE框架设计界面,结合了storyboard和dom4j等先进技术方法,主要由界面组件模块、PSD处理模块、模型定义模块、模型操作控制模块和跨平台快速开发模块五个模块组成。本文就其中模型定义模块、模型操作控制模块和快速开发模块做出了详细介绍,重点阐述了系统如何实现对游戏场景中各控件以及操作的模拟、编辑器相关控制功能的实现,并介绍了多控件动画的实现机制。
作为iOS、Android和一体机游戏开发的主要工具,卡卡编辑器已经成功开发出若干款畅销游戏,编辑器本身在使用过程中也在不断完善。
【关键词】:
【学位授予单位】:南京大学【学位级别】:硕士【学位授予年份】:2013【分类号】:TP311.52【目录】:
摘要5-6Abstract6-9图目录9-10表目录10-11第一章 引言11-15 1.1 项目背景11-12 1.2 业界手机游戏开发工具的发展概况12-13 1.3 本文主要研究的工作13-14 1.4 本文的组织结构14-15第二章 技术综述15-21 2.1 cocos2d-x引擎15-17
2.1.1 cocos2d-x引擎简介15-16
2.1.2 cocos2d-x引擎的结构16-17 2.2 MVC模式17-18 2.3 SWT/JFACE框架18-19
2.3.1 SVVT18
2.3.2 JFACE18-19 2.4 storyboard简介19-20 2.5 dom4j技术20 2.6 本章小结20-21第三章 卡卡编辑器的分析与设计21-42 3.1 项目总体规划21 3.2 系统需求分析21-27
3.2.1 传统游戏UI需求21-22
3.2.2 手机游戏UI需求22-24
3.2.3 卡卡编辑器系统需求24-27 3.3 系统总体设计27-29
3.3.1 总体结构27-28
3.3.2 系统流程图28
3.3.3 模块分层28-29 3.4 系统主要模块设计29-41
3.4.1 模型定义模块29-33
3.4.2 模型操作控制模块33-39
3.4.3 快速开发模块39-41 3.5 本章小结41-42第四章 卡卡编辑器的实现42-63 4.1 模型定义模块的实现42-47
4.1.1 模型定义模块主要类的实现42-46
4.1.2 模型定义模块相关界面46-47 4.2 模型操作控制模块的实现47-60
4.2.1 模型操作控制模块主要类的实现47-58
4.2.2 模型操作控制模块相关界面58-60 4.3 快速开发模块的实现60-62 4.4 本章小结62-63第五章 总结与展望63-65 5.1 总结63 5.2 进一步工作展望63-65参考文献65-67致谢67-69
欢迎:、、)
支持CAJ、PDF文件格式
【参考文献】
中国期刊全文数据库
孟宪启;梁明;;[J];电脑知识与技术;2011年15期
王宇;程国忠;张世禄;;[J];福建电脑;2007年01期
杨森;;[J];计算机光盘软件与应用;2012年22期
侯捷;;[J];程序员;2004年10期
陈晓忠;;[J];吉林广播电视大学学报;2010年05期
安毅生;刘卫方;;[J];计算机与数字工程;2011年12期
任中方,张华,闫明松,陈世福;[J];计算机应用研究;2004年10期
肖袁;;[J];科技信息;2011年02期
偶玉彬;;[J];程序员;2008年05期
尹松强;傅鹂;;[J];软件导刊;2008年11期
中国硕士学位论文全文数据库
刘晓华;[D];浙江大学;2006年
毛利铧;[D];东南大学;2005年
张磊;[D];西南交通大学;2007年
黄浦益;[D];北京交通大学;2010年
程超;[D];大连理工大学;2012年
霍常伟;[D];北京交通大学;2012年
马月花;[D];北京邮电大学;2012年
【共引文献】
中国期刊全文数据库
王磊;姚保峰;朱洪浩;郭有强;;[J];辽宁科技大学学报;2011年06期
陈实;;[J];办公自动化;2007年16期
梁智;沈倩;;[J];重庆理工大学学报(自然科学);2011年09期
王斌;;[J];信息记录材料;2012年02期
刘新娥;;[J];电脑开发与应用;2010年09期
段昌敏;;[J];电脑知识与技术;2008年07期
卢俊玮;常琳;陈昀锟;;[J];电脑知识与技术;2010年19期
高崇;周南;邱小彬;;[J];电子产品世界;2006年12期
桑士振;杨旭;张什永;王晓蒲;霍剑青;;[J];电子技术;2010年09期
杜威;邹先霞;常会友;;[J];福建电脑;2007年01期
中国重要会议论文全文数据库
赵强;刘畅;;[A];中国计量协会冶金分会2012年会暨能源计量与节能降耗经验交流会论文集[C];2012年
彭颖;沈怀荣;;[A];'2010系统仿真技术及其应用学术会议论文集[C];2010年
中国博士学位论文全文数据库
叶鑫;[D];大连理工大学;2006年
洪荣晶;[D];东南大学;2006年
盛秀杰;[D];中国地质大学;2010年
靖可;[D];东北大学;2010年
王国忠;[D];中国科学技术大学;2013年
中国硕士学位论文全文数据库
刘东;[D];大连理工大学;2010年
高上上;[D];大连理工大学;2010年
南志海;[D];中国海洋大学;2010年
张宇迪;[D];河南工业大学;2010年
李晓飞;[D];江西师范大学;2010年
石海涛;[D];华东师范大学;2010年
江韬;[D];华南理工大学;2010年
王喜虎;[D];华南理工大学;2010年
李海峰;[D];南昌大学;2010年
熊志君;[D];南昌大学;2010年
【二级参考文献】
中国期刊全文数据库
王亚明;郭峰;向阳霞;;[J];北京广播电视大学学报;2007年02期
王爱莉,于林宇,吕江花;[J];吉林大学学报(信息科学版);2005年05期
徐永亮;[J];电脑知识与技术;2005年03期
杨珉池;;[J];电脑知识与技术;2006年11期
崔新蕊;;[J];电脑知识与技术(学术交流);2007年20期
桂绍钢;;[J];电脑知识与技术;2010年27期
黄丽民,王华;[J];辽宁工程技术大学学报;2004年04期
刘琪;迟贤书;;[J];辽宁工程技术大学学报(自然科学版);2008年02期
刘军锋;朱洪雷;熊邦宏;朱柱锦;;[J];自动化与信息工程;2008年03期
王娴;刘辉;倪远平;;[J];信息技术;2006年06期
中国硕士学位论文全文数据库
黄静;[D];北京交通大学;2011年
游晓宇;[D];广东工业大学;2011年
秦可;[D];浙江大学;2005年
刘业辉;[D];武汉理工大学;2005年
赵海;[D];四川大学;2005年
关锋;[D];山东大学;2005年
刘晓华;[D];浙江大学;2006年
常伟;[D];南京航空航天大学;2006年
姚刚;[D];长沙理工大学;2006年
张磊;[D];西南交通大学;2007年
【相似文献】
中国期刊全文数据库
温济全,沈健;[J];机床与液压;2001年03期
孙大勇;;[J];每周电脑报;1998年12期
向冬,王润孝,秦现生;[J];组合机床与自动化加工技术;2003年07期
;[J];每周电脑报;1997年46期
林艺山;;[J];福建电脑;2009年04期
贺波,陈耀武;[J];现代科学仪器;1998年03期
周岳;;[J];程序员;2007年05期
习志军;[J];电脑知识与技术;2005年27期
羊海潮;;[J];电脑知识与技术;2009年05期
朱麟;[J];中国计算机用户;1997年34期
中国重要会议论文全文数据库
郭彩立;刘星;向泽君;;[A];重庆市测绘学会第三届优秀论文评选获奖论文暨年度学术交流会论文选编[C];2008年
吴穷;刘志慧;;[A];第六届全国信息获取与处理学术会议论文集(2)[C];2008年
吴思波;丁恩杰;王振华;;[A];第十八届全国煤矿自动化学术年会中国煤炭学会自动化专业委员会学术会议论文集[C];2008年
陈明;程引会;;[A];第11届全国计算机在现代科学技术领域应用学术会议论文集[C];2003年
徐继宁;范怿涛;;[A];2008全国第十三届自动化应用技术学术交流会论文集[C];2008年
沈旭昆;赵沁平;;[A];加入WTO和中国科技与可持续发展——挑战与机遇、责任和对策(下册)[C];2002年
徐继宁;范怿涛;;[A];中国计量协会冶金分会2008年会论文集[C];2008年
伍贤旺;;[A];福建省第十二届水利水电青年学术交流会论文集[C];2008年
李昭原;贺平;;[A];第十届全国数据库学术会议论文集[C];1992年
祝晓红;刘炜;李俊丽;;[A];第二十七届中国控制会议论文集[C];2008年
中国重要报纸全文数据库
;[N];财会信报;2005年
西安协同数码股份有限公司;[N];中国计算机报;2006年
;[N];科技日报;2007年
钟晓军;[N];光明日报;2004年
邹大斌;[N];计算机世界;2011年
中国博士学位论文全文数据库
何丽;[D];新疆大学;2013年
中国硕士学位论文全文数据库
舒沂;[D];南京大学;2013年
曾玲;[D];南昌大学;2013年
阮复初;[D];西南交通大学;2010年
周东;[D];北京交通大学;2011年
周思远;[D];北京邮电大学;2011年
魏文辉;[D];武汉理工大学;2012年
张强;[D];电子科技大学;2010年
牛犇;[D];苏州大学;2012年
蒋剑忠;[D];厦门大学;2009年
王坜;[D];电子科技大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备74号如何制作一个简单的游戏(2) Cocos2d-x 2.0.4 - 推酷
如何制作一个简单的游戏(2) Cocos2d-x 2.0.4
& & & & 在第一篇《
》基础上,增加旋转炮塔功能,原文《
》,在这里继续以Cocos2d-x进行实现。有关源码、资源等在文章下面给出了地址。
步骤如下:
1.使用上一篇的工程;
2.下载本游戏所需的资源,将资源放置&
删除旧的资源
player.png
projectile.png
HelloWorldScene.cpp
函数,修改创建玩家精灵:
CCSprite&*player&=&CCSprite::create(
&player2.png&
ccTouchesEnded
函数,修改创建子弹精灵:
CCSprite&*projectile&=&CCSprite::create(
&projectile2.png&
4.编译运行,可以看到炮塔发射出了子弹,但是有一点奇怪,射击的时候,炮塔并没有朝向那个方向,如下图所示:
5.接下去,就是让炮塔可以旋转射击。在
HelloWorldScene.h
文件中,添加如下代码:
cocos2d::CCSprite&*_
HelloWorldScene.cpp
函数,如下:
_player&=&CCSprite::create(
&player2.png&
_player-&setPosition(ccp(_player-&getContentSize().width&/&
,&winSize.height&/&
-&addChild(_player);&
6.计算炮塔旋转的角度。看下面图:
数学的知识就是,tan(angle) = 对边 / 邻边,利用反正切angle = arctan(对边 / 邻边),这时计算出的是弧度,用CC_RADIANS_TO_DEGREES宏转换成角度。另外在数学中,逆时针为正,在Cocos2D-x中,顺时针为正,就如下图所示:
需要将最后计算出的角度乘以-1。在
ccTouchesEnded
函数里,添加如下代码在projectile精灵runAction之前:
&angleRadians&=&atanf((
)offRealY&/&(
)offRealX);
&angleDegrees&=&CC_RADIANS_TO_DEGREES(angleRadians);
&cocosAngle&=&-
_player-&setRotation(cocosAngle);
7.编译运行,这时就可以看到炮塔旋转射击了。如下图所示:
8.旋转再射击。炮塔的旋转是瞬间完成的,这不符合现实,需要让它有个动作移动炮塔的方向。在
HelloWorldScene.h
文件中,添加如下声明:
cocos2d::CCSprite&*_nextP
在构造函数里面,添加如下:
_player&=&
_nextProjectile&=&
ccTouchesEnded
函数,并且添加
finishShoot
方法,代码如下:
&HelloWorld::ccTouchesEnded(CCSet&*pTouches,&CCEvent&*pEvent)
&(_nextProjectile&!=&
&&&&CCTouch&*touch&=&(CCTouch*)pTouches-&anyObject();
&&&&CCPoint&location&=&
-&convertTouchToNodeSpace(touch);
&&&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();
&&&&_nextProjectile&=&CCSprite::create(
&projectile2.png&
&&&&_nextProjectile-&retain();
&&&&_nextProjectile-&setPosition(ccp(
,&winSize.height&/&
&&&&CCPoint&offset&=&ccpSub(location,&_nextProjectile-&getPosition());
&(offset.x&&=&
&realX&=&winSize.width&+&_nextProjectile-&getContentSize().width&/&
&ratio&=&(
)offset.y&/&(
)offset.x;
&realY&=&realX&*&ratio&+&_nextProjectile-&getPosition().y;
&&&&CCPoint&realDest&=&ccp(realX,&realY);
&offRealX&=&realX&-&_nextProjectile-&getPosition().x;
&offRealY&=&realY&-&_nextProjectile-&getPosition().y;
&length&=&sqrtf(offRealX&*&offRealX&+&offRealY&*&offRealY);
&velocity&=&
<span style="color:#ff
&realMoveDuration&=&length&/&
&angleRadians&=&atanf((
)offRealY&/&(
)offRealX);
&angleDegrees&=&CC_RADIANS_TO_DEGREES(angleRadians);
&cocosAngle&=&-
&rotateDegreesPerSecond&=&
<span style="color:#ff
&degreesDiff&=&_player-&getRotation()&-&cocosA
&rotateDuration&=&fabs(degreesDiff&/&rotateDegreesPerSecond);
&&&&_player-&runAction(CCSequence::create(CCRotateTo::create(rotateDuration,&cocosAngle),
&&&&&&&&CCCallFunc::create(
,&callfunc_selector(HelloWorld::finishShoot)),&
&&&&_nextProjectile-&runAction(CCSequence::create(CCMoveTo::create(realMoveDuration,&realDest),&
&&&&&&&&CCCallFuncN::create(
,&callfuncN_selector(HelloWorld::spriteMoveFinished)),&
&&&&_nextProjectile-&setTag(
&&&&CocosDenshion::SimpleAudioEngine::sharedEngine()-&playEffect(
&pew-pew-lei.wav&
&HelloWorld::finishShoot()
-&addChild(_nextProjectile);
&&&&_projectiles-&addObject(_nextProjectile);
&&&&_nextProjectile-&release();
&&&&_nextProjectile&=&
在函数开头检验_nextProjectile变量,如果非空表示炮塔正在旋转中。不把_nextProjectile立即加到场景中,等待旋转完毕再加入场景。炮塔旋转的速度,为半秒钟旋转半个圆,计算所旋转角度所需的时间。
9.编译运行,可以看到炮塔可以在旋转后进行射击了,如下图所示:
参考资料:
1.How To Make A Simple iPhone Game with Cocos2D 2.X Part 2
2.(译)如何使用cocos2d开发一个简单的iphone游戏:旋转炮塔。(第二部分)
非常感谢以上资料,本例子源代码附加资源
如文章存在错误之处,欢迎指出,以便改正。
已发表评论数()
&&登&&&陆&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见

我要回帖

更多关于 拼图游戏 cocos2d x 的文章

 

随机推荐