手游开发
箫易
这个作者很懒,什么都没留下…
展开
-
初次接触cocos2dx
难得将要放一个多月的漫长寒假,学点新东西增值一下!工具准备:搭建开发环境需要安装的工具有:Visual Studiopython,(以python2.7.3版本为例)下载地址:https://www.python.org/download/releases/2.7.3/Cocos2d-x,(以cocos2d-x-2.2.6为例)下载地址:http://cn.cocos2d-x.原创 2015-01-27 01:33:03 · 506 阅读 · 0 评论 -
addObserver和postNotification函数传递函数的区别
上一篇文章中,我们利用addObserver来订阅消息,用postNotification来发布消息,但是有一点要注意的是,addObserver和postNotification都可以传递一个CCObject数据,那么如果两个函数都传递了数据,在接收消息时,我们应该取谁的数据呢?在上一篇的代码中修改OtherLayer类,代码如下:我们看到,在init中新建了一个原创 2015-03-05 10:23:57 · 1184 阅读 · 0 评论 -
观察者模式——CCNotificationCenter
HelloWorldScene.h:我们新增了两个函数,一个用于接收消息的回调函数,一个用于发布消息,当然,通常消息的订阅者和消息的发布者不会是同一对象,这里只是为了简单才放到一起。HelloWorldScene.cpp(部分修改代码):在init函数里,订阅了一个名为“test”的消息,并且创建了一个菜单,用于发布消息,现在用调试模式运行项目,原创 2015-03-04 23:59:36 · 487 阅读 · 0 评论 -
Cocos2d-x游戏开发——重复动作CCRepeatForever&CCJumpBy
CCJumpBy有4个参数,第一个参数:动作持续的时间 第二个参数:每次跳动X方向+10,Y方向+1 第三个参数:每次跳动的高度为100 第四个参数:在1s内跳多少次原创 2015-01-30 17:35:33 · 529 阅读 · 0 评论 -
让一切都停下来——Unschedule
HelloWorldScene.h:HelloWorldScene.cpp(修改的部分代码):运行项目,可发现每一帧都会调用update()函数,而每隔两秒都会调用一次MyUpdate()函数如果要取消update函数的调用,只需要一句代码,this->unscheduleUpdate();如下:此时,我们用调试模式运行项目,将看到日原创 2015-03-04 21:55:52 · 3013 阅读 · 0 评论 -
触发器——scheduleOnce
HelloWorldScene.h:HelloWorldScene.cpp(部分修改代码):以调试模式运行项目后,可以发现,隔2s之后会调用cookFinish函数,而且只会调用一次原创 2015-03-04 22:08:04 · 1249 阅读 · 0 评论 -
Cocos2d-x 的CCObject与autorelease 之深入分析
[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier]红孩儿Cocos2d-X学习园地QQ群:249941957 [暂满]加群写:Cocos2d-x 红孩儿Cocos2d-X学习园地QQ2群:44208467 加群写:Cocos2d-x Cocos2d-x 的CCObject与au转载 2015-03-08 17:14:28 · 417 阅读 · 0 评论 -
Cocos2d-x开发之——保存数据
keyword: CCUserDefault 当我们在开发设计游戏时,需要保存游戏中的各种数据,不然如果玩家玩我们的游戏玩了一整天,然后退出了,结果我们告诉他:"抱歉,游戏不能保存数据.",估计玩家得疯掉~所以,Cocos2d-x提供了保存数据的功能,这个类就是CCUserDefault。它会将我们的数据存储到一个XML文件里,下次就可以从XML文件中读原创 2015-03-09 09:42:17 · 879 阅读 · 0 评论 -
Cocos2d-x——读取Csv配置文件
KeyWord : Csv、CCFileUtils在一个游戏中,通常会有很多怪物、关卡、技能等数据,这些数据不可能在代码里写死,一般都会使用配置文件保存,使用时再加在到内存。这次,要给大家介绍在项目里常常使用的一个配置文件——Csv格子文件。Csv文件其实很简单,它就是一组只用逗号分隔开的字符串,如图:看起来像是excel文件一样,但是当我们用记事本打原创 2015-03-09 11:41:30 · 1243 阅读 · 0 评论 -
Cocos2d-x游戏开发——场景切换效果
CCTransitionJumpZoom 作用: 创建一个跳动的过渡动画 参数1:过渡动作的时间 参数2:切换到目标场景的对象 reScene = CCTransitionJumpZoom ::create(t , s); CCDirector::sharedDirector()->replaceScene(reScene); C转载 2015-01-28 16:01:16 · 566 阅读 · 0 评论 -
《跑跑跑》(三)——焦点是主角,让地图随着主角滚动
上一节中,已经实现了主角向前跑动,但是跑着跑着主角就跑出地图了,接下来我们来实现地图随着主角滚动。首先要在Player中添加一个函数setViewPointByPlayer。 Player.h代码(红框内是新加的)Player.cpp:(新加的代码)setViewPointByPlayer()函数的功能是判断当主角的坐标改变时,是否需要滚动地原创 2015-02-28 15:32:47 · 545 阅读 · 0 评论 -
Cocos2d-x游戏开发——播放背景音乐
添加头文件:将音频放到工程目录下的Resources文件夹下,第二个参数true是指循环播放原创 2015-01-28 19:49:56 · 504 阅读 · 0 评论 -
游戏实例之《跑跑跑》(一)——地图生成和添加主角
先新建一个项目首先我们把游戏窗口大小设定为1024*640,在main.cpp里面改,上几章有提到,就不再提了。现在我们来创建一个筛选器,以便为代码分类,如图:在“关卡”筛选器中创建一个类,命名为TollgateScene, 代码如下:TollgateScene.h:TollgateScene.cpp:代码很简单,主要看看init函数原创 2015-02-26 00:28:39 · 989 阅读 · 0 评论 -
创建第一个游戏《Little Runner》——添加场景、角色(一)
筛选器(相当于文件夹)在项目上单击鼠标右键,依次选择[添加] -> [新建筛选器],如图:我们先创建一个名为“LittleRunner第一篇”的筛选器,再以同样的方法创建“实体”筛选器和“主角筛选器”……,如图:2.创建实体基类Entity.h代码:Entity.cpp代码:3.创建主角类:Player.h代码:Playe原创 2015-02-06 18:21:47 · 726 阅读 · 0 评论 -
《跑跑跑》(五)——添加障碍物,Tiled障碍层的使用
首先利用TiledMap在原来的地图上添加上障碍物,先新建两个图层,分别叫barrier和meta2,如下选中barrier,然后利用图块中的素材,在地图上画障碍物,如图:嗯....在地图上一坨坨的就是所说的障碍物。但是如果现在保存,重新运行项目的话,可以发现这些障碍物并不能阻碍主角前进所以才需要用到meta2图层,先加载下面的图块:(命名为meta2)原创 2015-03-03 11:52:46 · 3118 阅读 · 0 评论 -
《跑跑跑》(四)——添加屏幕点击事件,让主角上下移动
创建一个“三方控制器”用来取代之前的SimpleMoveController.ThreeDirectionController.h:基本上和SimpleMoveController类差不多,区分了X和Y方向上的速度,以及加入了触屏事件(继承自CCLayer),所以,Controller.h中要把继承类CCNode改为CCLayer!ThreeDirectio原创 2015-02-28 16:20:39 · 706 阅读 · 0 评论 -
《跑跑跑》(二)——让主角动起来
为了让主角跑起来,先给主角添加一个动画,首先给Player添加一个函数run(),如图:run()实现:此时,运行项目,可以看到主角在原地跑起来了。让主角向前跑起来——添加角色控制器 我们采用组合来实现让主角向前跑,把向前跑作为一个功能单独写在一起类,主角只要增加一个成员变量(向前跑的类)就能实现向前跑的动作。而这个类,就是控制器。原创 2015-02-26 22:42:24 · 732 阅读 · 0 评论 -
Cocos2d-x利用schedule实现定时器
每一帧都有我——scheduleUpdate和update新建一个项目,命名为ScheduleUpdate_test.将HelloScene.cpp中的init函数的多余代码删掉,然后我们敲几行代码,如下图所示:MyUpdate是自定义的函数,通过在init中每2秒调用一次该函数,记得在,h文件中声明一下用调试模式运行一下,可以看到:原创 2015-03-04 21:40:33 · 670 阅读 · 0 评论 -
固定主角出生点——对象层的使用
上一章中,主角的坐标是在代码里写死的,我们还可以更灵活一点,Tiled Map还有一个很腻害的功能,那就是:对象层。其实没有多神气,就是在地图上的某个位置设置一个对象,然后可以在代码里获取这个对象的信息,比如坐标。打开Tiled地图编辑器,依次单击菜单栏的 [ 图层] -> [添加对象层],新建一个对象层,命名为objects,如图:接下来,选中objects图原创 2015-02-26 20:54:33 · 3081 阅读 · 0 评论 -
cocos2dx HelloWorld代码分析
刚接触cocos2dx,看了一些教程之后,先稍微总结一下,有点粗浅,多多指教1.用python脚步创建一个新项目,名为Hello:2.可见,在projects目录下多了一个Hello的文件夹:3.打开Hello,再打开里面的proj.win32,就可以看到有一个Hello.sln,这个是VS的工程文件,双击打开4.如图:5.先运行一下项目看看,按Ctrl原创 2015-01-28 14:41:53 · 619 阅读 · 0 评论 -
Cocos2d-x游戏开发——九妹和按钮搭配和按钮点击事件
1.在HelloWorldScene.cpp中修改init()的实现,并修改头文件:2.在HelloWorldScene.h中的修改:原创 2015-01-29 16:54:33 · 605 阅读 · 0 评论 -
Cocos2d-x游戏开发——血量条
效果图:HelloWorldScene.cpp代码:创建Slider有三个参数,和potentiometer同理,如果要做成血量条,则可以把第三个参数的图片弄成透明的,原创 2015-01-29 18:54:32 · 844 阅读 · 0 评论 -
Cocos2d-x游戏开发——动作监听
当图片执行动作完之后,回调函数,出现“I am home!”效果图:(注意,记得在HelloWorldScene.h中声明backHome函数)原创 2015-01-30 19:14:10 · 391 阅读 · 0 评论 -
Cocos2d-x游戏开发——CCBlink
CCBlink可以使精灵闪烁,并且可以指定闪烁的次数Init()代码:第一个参数时,闪烁的时间,第二个是闪烁的次数原创 2015-01-30 16:49:51 · 606 阅读 · 0 评论 -
Cocos2d-x游戏开发——简单的动作
在HelloWorldScene.cpp中修改init():CCMoveTo中的一个参数是指动作执行时间(单位为秒),第二个参数是Sprite精灵最终到达的位置如果改为CCMoveBy:原创 2015-01-30 15:14:55 · 423 阅读 · 0 评论 -
Cocos2d-x游戏开发——CCBezierTo/By
原创 2015-01-30 17:15:35 · 548 阅读 · 0 评论 -
Cocos2d-x游戏开发——屏幕触摸事件
HelloWorldScene.h代码:HelloWorldScene.cpp代码:按F5进入调试模式,点击,拖动后显示:原创 2015-01-30 20:03:28 · 442 阅读 · 0 评论 -
Cocos2d-x游戏开发——图片伸缩CCScaleTo\CCScaleBy
效果图:Init()代码:CCScaleTo有三个参数,分别对应动作持续的时间、X方向的拉伸值,Y方向的拉伸值原创 2015-01-30 16:35:39 · 633 阅读 · 0 评论 -
Cocos2d-x游戏开发——CCSequence&CCSpawn
多个动作连续执行:多个动作同时播放:只要将“CCSequence”改为“CCSpawn”即可原创 2015-01-30 18:00:22 · 552 阅读 · 0 评论 -
《Little Runner》(二)——无限滚动场景
每一帧都可以操作——scheduleUpdate初探原创 2015-02-06 18:54:53 · 398 阅读 · 0 评论 -
《Little Runner》(六)——创建分数标签、血量条
这次我们只需要给TollgateScene类加东西,首先看头文件:我们新增了两个函数,分别用于创建分数标签和血量条,以及用于保存分数标签和血量条对象的变量我们要在init函数的最后加上新的两个函数,如下:重点来的,看看新增的两个函数做了什么:至此,我们的第一个游戏实例就到尾声了。接下来让分数标签和血量条起作用,我们稍微修改一下TollgateScen原创 2015-02-16 15:19:17 · 461 阅读 · 0 评论 -
什么是纹理——CCTexture简单解说
在上一章中,利用CCSpriteBatchNode,在一次渲染中加载多个Sprites,大大地提高了运行速度。但是CCSpriteBatchNode只能同时加载具有同一纹理的精灵。那么什么是纹理呢?我们可以简单地理解为图片,一个精灵可以在绘制时只使用图片的一部分,比如只绘制人物的头部,但它依旧是属于同一个纹理。我们来看代码,新建一个项目,命名为Chapter6_2_CCTextur原创 2015-02-18 15:42:49 · 582 阅读 · 0 评论 -
《Little Runner》(四)——添加怪物
效果图:首先在实体筛选器中创建“怪物筛选器”,然后在“怪物筛选器”下新建一个类,命名为Monster。Monster.h的代码如下:Monster一共声明了4个函数,1个变量,分别介绍如下:(1)show函数:由于怪物是不断出现,然后不断消失的(碰到主角就消失),为了避免频繁“new”对象,怪物消失时只是暂时隐藏,而不进行销毁,该函数用于显示怪物。(2)hide原创 2015-02-11 13:57:38 · 565 阅读 · 0 评论 -
把相同的精灵装上车——使用CCSpriteBatchNode优化
我们要介绍一个很强大的类,当我们要制作那种满屏都是怪物的游戏时,特别有用,它就是CCSpriteBatchNode.原创 2015-02-16 15:24:05 · 441 阅读 · 0 评论 -
《Little Runner》(五)——怪物碰撞检测
上一章中,虽然怪物已经出现了,但是怪物对玩家没有造成任何伤害,所以我们接下来要加入碰撞检测,如果怪物碰到主角,则扣主角的血。我们给Player类添加点东西,如下代码显示:Player类新增了以下内容:(1)hit()函数:怪物碰撞到玩家时调用(2)getiHP()函数:获取玩家血量(3)getBoundingBox()函数:获取碰撞范围(4)int m_iHP变量:原创 2015-02-13 15:37:49 · 761 阅读 · 0 评论 -
《Little Runner》(三)——让主角跳起来
上一篇文章中,实现了地图的无限滚动,那么接着我们创建一个Jump按钮,让主角可以跳起来。效果图:1.CCControl的应用——创建跳跃按钮TollgateScene.h代码:(别忘了引入cocos-ext.h头文件)我们要给TollgateScene添加两个函数,如图:TollgateScene.cpp修改部分代码:(要记得在ini原创 2015-02-10 19:52:29 · 473 阅读 · 0 评论