
cocos2d-x 3.0
文章平均质量分 67
zhanghow
人生是一个长跑,不要在意短期的得失,更重要的是自己是否在正确的方向上。
展开
-
cocos 基本类与概念
cocos 第一天基本类与概念导演 Director场景 Scene布景层 Layer精灵 Sprite节点 Node// 游戏初始化调用的函数bool AppDelegate::applicationDidFinishLaunching() // 游戏进入后台是调用的函数void AppDelegate::appl原创 2016-09-22 21:12:31 · 738 阅读 · 0 评论 -
《保卫萝卜》项目实践(2)
接着上次的总结。传送门 http://blog.youkuaiyun.com/zhanghow/article/details/52892406五、layout 与 pageview 总结layout为布局视图,可以在上面排铺精灵,按钮但要注意设置位置坐标以防止遮盖。layout 的content size()则是限制了内部的布局pageview为翻页视图,其内部必须为layout即有多少原创 2016-10-25 20:57:36 · 1483 阅读 · 3 评论 -
cocos2d-x 详谈 Label 与 MenuItem
一、有关MenuItem的所有实现方式(cocos2d-x 3.3)// menuitem所有 autoitem =MenuItemFont::create("Click",CC_CALLBACK_1(HelloWorld::item_call,this)); item->setPosition(visibleSize.width/2-400,visib原创 2016-10-31 19:32:27 · 481 阅读 · 1 评论 -
cocos2d-x 网络请求 Http
HTTP网络http是短协议,登录注册用,socket是长连接战斗时用 https(更安全)加密传输,身份认证 get 与 post 的差异:void HelloWorld::HttpGetTest(){ HttpRequest * request = new HttpRequest (); request->setUrl("http://42.96.151.原创 2016-11-14 15:58:04 · 2568 阅读 · 0 评论 -
cocos2dx 18个易忽略的知识点
一、const与define的区别1.const修饰的是有数据类型的,在编译时编译器会对其进行数据类型安全检查2.define只是简单的宏替换 ,不对进行数据类型安全检查const实现机制:const用来说明定义的变量是只读的。实现机制:这些在编译期间完成,编译器直接使用常数来替换掉对此变量的引用二、重载:参数列表不同(1.参数个数不同2.参数类型不同)原创 2016-11-02 21:01:58 · 1274 阅读 · 0 评论 -
Cocos2d-x 3 版本的新特性(相对于2.)
1、将有一个新的渲染系统(epenGL ES 2.0)。 2、支持多线程,并且易于支持新的GPU平台。3、更快,更高效也更易于维护的Label文本绘制。4、拥有一个新的,统一的事件派发器(EventDispacher)。5、减少对objectc的兼容考虑,更多考虑对C++开发者更友好。用C++最佳实践,替换掉了objectc模式;移除匈牙利命名法。(即CC)6、menu和原创 2016-12-02 20:36:33 · 956 阅读 · 0 评论 -
cocos2dx 设计模式 观察者模式 实现
注释:main(),主程序IObservable,被观察者接口CHanFeiZiObservable,被观察者韩非子IObserver,观察者接口CLiSiObserver,观察者李斯CZhouSiObserver观察者周斯说明:将观察者聚集到被观察者韩非子身边,韩非子的每一个举动都会通知给观察者,如李斯或周斯。注意:最多允许一个对象既是观察者也是被观察者。原创 2016-12-02 21:40:48 · 1163 阅读 · 0 评论 -
A* A星 算法 C语言 实现代码
关于A*算法,很早就想写点什么,可是貌似天天在忙活着什么,可事实又没有做什么,真是浮躁啊!所以今晚还是来写一下总结吧! A*算法是很经典的只能启发式搜索算法,关于只能搜索算法和一般的搜索算法(例如DFS,BFS之类),在语言描述上的区别,我觉得用《代码大全》中的一句话描述的非常好:“驾驶汽车达到某人家,写成算法是:沿167号高速往南行至Puyallup,从XX出口后往山上开4原创 2016-12-12 17:25:44 · 11463 阅读 · 7 评论 -
ios 安卓 打包 (mac&&window) 含 Quick 打包
iOS 需在设置EnableBitecode 为NO,选择手机系统版本, 然后在Xcode中添加开发者账号,即手机的AppleID,确保手机解锁状态,点击运行项目,就会在你的手机上安装项目运行。==》真机调试Android就比较麻烦了1️⃣命令行打包首先需要三个资源 :在安装cocos引擎包后,提示设置这三项路径的时候添进去(记得把句尾的空格去掉)最后一个a原创 2016-10-22 15:07:00 · 1086 阅读 · 0 评论 -
layer层的触摸吞噬
今天在一个场景上添加布景层layer的时候,想要设置触摸吞噬本以为this->setTouchEnable(true);this->setSwallowsTouches(true);两句话就搞定了,却一直得不到想要的效果。后来发现仅仅设置可触摸是不行的,需要给他设置触摸监听事件,用设置的监听listener来调用设置触摸吞噬函数。注意:需要实现一个touchBegan,否则vs会报错)原创 2016-12-15 09:36:51 · 47414 阅读 · 0 评论 -
斗地主算法思路
1、扑克牌类的封装用一个枚举存储牌的大类型(黑红梅方),再用一个枚举存储牌的小类型(A~K,dawang,xaiowang)。牌的属性:id(0~53)54张牌唯一标识根据id分别获得牌的大类型与小类型牌的等级:grade 大王等级最高 对牌排序的时候用到2、洗牌与发牌算法思路a.洗牌算法的思路就是,构造54张牌,首先从所有元素中随机选取一个与第原创 2017-01-02 14:32:05 · 8899 阅读 · 0 评论 -
CocosBuilder 使用技巧
本文主要侧重于CocosBuilder在cocos2dx中的集成。对CocosBuilder使用的介绍比较简单。详细的使用请参考官方教程;CocosBuilder部分1)创建工程首先创建Cocos2dx工程“ShootTheApple”,然后在其Resources目录下新建ccb,并在ccb中创建CocosBuilder工程。目录结构如下图:CocosBuilder工程会产原创 2017-01-06 13:35:38 · 10266 阅读 · 0 评论 -
Cocos2d-x3.2 UserDefault用户数据 使用
//GameScene.h#include "cocos2d.h"USING_NS_CC;class GameScene : public cocos2d::Layer{public: static cocos2d::Scene* createScene(); virtual bool init(); void原创 2017-01-06 15:40:56 · 657 阅读 · 0 评论 -
针对vs2013运行项目无法打开.lib文件的解决方案
解决方法比较老土-》复制 或者 右键项目-》属性-》链接器-》编辑-》(将库文件lib路径引入)(打不开的最终解释其实就是找不到)先说说第一种方案:到项目中搜索缺失的lib搜索到的话 一同 将 同名的.dll文件 复制到 proi.win32/Debug.win32 中 再运行,有缺原创 2017-01-07 09:11:28 · 12316 阅读 · 0 评论 -
Cocos2d-x是怎样实现跨平台?
AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同平台的不同实现。比如我们通常认为一个程序是由 main 函数开始运行,那我们就去找寻,我们看到了在 proj.linux 目录下存在 main.cpp 文件。在main.cpp 中 CCApplication::sharedApplication()–>run(); 这一句看起,这一句标志着, cocos2d-x原创 2016-12-20 21:00:03 · 3930 阅读 · 0 评论 -
cocos2d-x 屏幕适配 策略
资源分辨率:表示我们的图片的分辨率。设计分辨率:表示我们设计的分辨率。可以这么认为,如果将我们的程序放到这个分辨率的设备上,那么我们的程序将完美显示。屏幕分辨率:实际屏幕的分辨率。getVisibleSize:表示获得可视区域的大小,如果DesignResolutionSize同屏幕尺寸一样大,则getVisibleSize等于getWinSize。getVisibleOrigin原创 2016-11-11 17:53:30 · 1513 阅读 · 0 评论 -
FrameSize、WinSize、VisibleSize、VisibleOrigin概念理解
FrameSize就是屏幕的实际分辨率,这是不变的,比如我用的盖世三的手机分辨率为1280x720,这就是盖世三的FrameSize。 注意这个FrameSize很容易理解成屏幕的长宽多少,其实不是,分辨率和实际的长宽没有必然联系。 比如: 盖世3的尺寸(长宽)为4.8寸,分辨率为1转载 2016-10-31 10:16:03 · 3562 阅读 · 0 评论 -
cocos2dx 碰撞检测 总结
之前所用到的碰撞检测均为cocos提供的方法。1、点与矩形碰撞auto rec = tubeOn1->getBoundingbox();// 得要矩形区域bool collision = rec.containsPoint(p);//p这个点是否在矩形区域内,返回一个bool型的值2、矩形与矩形的碰撞auto rec1 = bird->getBoundingbox();// 得原创 2016-10-26 18:01:18 · 6626 阅读 · 1 评论 -
cocos2d-x3.0 场景跳转scene与坐标系
场景跳转场景的跳转基本上是在对按钮的绑定事件中实现的1️⃣ 压栈(push)与出栈(pop) auto scene = MyScene::creatMyScene(); // 对将要进入场景的声明 Director::getInstance()->pushScene(scene);出栈就不需要指明类了,从哪里来到哪里去Director::getIns原创 2016-09-22 21:11:40 · 915 阅读 · 0 评论 -
cocos2d-x 3.0 绘制图形DrawNode与调用周期性回调函数schedule
cocos 绘制图形与调用回调函数 time1--; char str[100]; //auto label1 = (Label* )this->getChildByTag(100); sprintf(str,"Time:%d",time1); // 设置变化Label的值 label->setString(str);绘制图形原创 2016-09-22 21:09:52 · 506 阅读 · 0 评论 -
cocos2d-x 3.0 动画与触摸事件总结
动画与触摸动画动画分为两部分 animation 与 animate 将动画类比为连环画,则 animation相当于造书的过程而 animate则为快速翻书的动作 通常会再添加一个repeateForever的动作,确保动画一直继续下去1️⃣animation 首先创建精灵帧缓存,然后将许多图片合成一张大图片与plist文件,加入缓存中 // 创建获取精灵帧缓原创 2016-09-22 21:04:56 · 1035 阅读 · 0 评论 -
cocos Box2D物理引擎
Box2Dnew&&delete使用new会调用构造函数使用delete会调用析构函数malloc&&free c的库函数,仅仅用来申请内存空间构造:先构造父类后构造本身析构:先析构本身后析构父类1.属性框:显示物理攻击,防御值,生命值 要求:显示当前卡牌的属性Box2D物理世界世界表示一个范围,实际上也是一个刚体,需要设置边界,即原创 2016-10-10 20:56:32 · 785 阅读 · 0 评论 -
cocos文件持久化
cocos 文件持久化 访问json文件格式rapidjson::Document doc; doc.Parse(data.c_str()); doc["hello”][0].AddMember("name", "zhnaghow", doc.GetAllocator());//hello为属性名 [0]为hello内第一个大括号包含的内容json文件格式:原创 2016-10-10 20:57:12 · 820 阅读 · 0 评论 -
cocos 动画 触摸事件
动画与触摸动画动画分为两部分 animation 与 animate 将动画类比为连环画,则 animation相当于造书的过程而 animate则为快速翻书的动作 通常会再添加一个repeateForever的动作,确保动画一直继续下去1️⃣animation 首先创建精灵帧缓存,然后将许多图片合成一张大图片与plist文件,加入缓存中 // 创建获取精灵帧缓原创 2016-10-10 20:59:17 · 582 阅读 · 0 评论 -
cocos 绘制图形与时间调度器
cocos 三 绘制图形与调用回调函数 time1--; char str[100]; //auto label1 = (Label* )this->getChildByTag(100); sprintf(str,"Time:%d",time1); // 设置变化Label的值 label->setString(str);绘制图原创 2016-10-10 21:00:33 · 364 阅读 · 0 评论 -
cocos场景跳转与坐标系
cocos 第二天场景跳转与坐标系场景跳转场景的跳转基本上是在对按钮的绑定事件中实现的1️⃣ 压栈(push)与出栈(pop) auto scene = MyScene::creatMyScene(); // 对将要进入场景的声明 Director::getInstance()->pushScene(scene);出栈就不需要指明类了,从哪里来到原创 2016-10-10 21:09:17 · 623 阅读 · 0 评论 -
GUI2 进度条LoadingBar 滑块 Slider
GUI 九宫格 loadingBar slider九宫格九宫格是利用一张很小的图片来绘制大区域图片却不失真的技术。绘制时会遵循下面的规则: a. 保持4个角部分不变形b. 单向拉伸4条边(即在4个角两两之间的边,比如上边,只做横向拉伸)c. 双向拉伸中间部分(即九宫格的中间部分,横向,纵向同时拉伸,PS:拉伸比例不一定相同)loadingBar进度条1️⃣设置背原创 2016-10-10 21:10:45 · 801 阅读 · 0 评论 -
cocos2d-x3.0 GUI Button PageView Layout ListView ScrollView Image Checkbox editBox
cocos2d-x3.0 GUI Button PageView Layout ListView ScrollView Image Checkbox editBox #pragma mark 页面视图cocos2d::ui::Layout * UItest:: createLayout(int index){ auto ly = cocos2d::ui::L原创 2016-09-26 19:02:28 · 945 阅读 · 1 评论 -
Tiled瓦片地图的使用
Tiled软件使用的注意事项:1️⃣文件的导入。图层文件的导入不能有中文名字,最好是先把需要的资源文件导入到工程的Resource文件夹中,让后到这个文件夹中导入Tiled软件,进行瓦片地图的绘制。2️⃣文件的导出。在保存的时候就可以直接保存到工程的Resource文件夹中,随后在工程中添加,即导出成功。导出后可以查看.tmx文件,可以尝试着读懂导出的.tmx文件。以上步骤完成后就可以原创 2016-10-22 15:05:18 · 2114 阅读 · 0 评论 -
《保卫萝卜》项目实践心得
1️⃣如何一张1280*740 RGB4448的图片所占内存大小图片大小必须为2^n,不足的往大的靠,如上就是占用2048*1024Byte再乘上色素乘色深 即(4*3+8)将其转化为M 即除以(8*1024*1024) 8byte=1B 1204B=1KB 1024KB=1M 即2048*1024*(4*3+8)/(8*1024*1024)=原创 2016-10-22 15:09:37 · 3201 阅读 · 10 评论 -
cocos2dx ios平台发布&&发布广告
&iOS平台发布(①创建发布证书②申请应用占位③Xocde打包提交)创建发布证书,大体上分为4步:1.生成本地密钥是在MAC上“钥匙串”程序。点击“钥匙串访问”->证书管理->从证书颁发机构请求证书 选择自己的邮箱或者是随便写个邮箱地址,然后选择存储磁盘位置,存储,完成。2.生成应用ID则需要到官网上申请。(提示首先要有一个Apple ID,可到官网注册)&发布广原创 2016-10-25 20:29:41 · 658 阅读 · 0 评论 -
cocos studio 初体验 版本3.10
新建项目—>添加控件cocos项目中需要添加头文件#include "cocostudio/CocoStudio.h"using namespace cocostudio;#include "ui/cocosGUI.h"// 播放帧序列动画时需要使用该命名空间using namespace cocostudio::timeline;// 通过csb文件获取节点S原创 2016-11-06 13:43:46 · 4353 阅读 · 2 评论 -
安卓打包 有关Android.mk 引入.cpp .c文件路径问题
问题的引入在使用NDK编译C/C++项目的过程中,免不了要编写Android.mk文件,其中最重要的就是LOCAL_SRC_FILES源文件列表.考虑有如下源文件分布的情况:cpp文件全部位于android项目下的jni文件夹下,结构如下 jni |---1.cpp |---2.cpp |---Android.mk |---原创 2017-01-15 23:04:49 · 4593 阅读 · 0 评论