- 博客(182)
- 问答 (3)
- 收藏
- 关注
原创 Cocos2d-JS 打包安卓APK
接着上一篇环境配置教程来写,其实教程不一定给别人看,时间长了,给自己看也是好的,或者无意中能解决某个开发者的困窘也是甚好。我们用Cocos2djs的目的便是用JS跨平台打包出APK,这里我们尝试打包,这里说明一下,打包有两种模式,一种是debug模式,一种是release,前一种是用来调试程序用的,后一种是用于发布给用户的,要说这俩种的区别,就是在下面提到的keystore,关于keyst
2016-12-12 19:44:37 2064
原创 A* A星 算法 C语言 实现代码
关于A*算法,很早就想写点什么,可是貌似天天在忙活着什么,可事实又没有做什么,真是浮躁啊!所以今晚还是来写一下总结吧! A*算法是很经典的只能启发式搜索算法,关于只能搜索算法和一般的搜索算法(例如DFS,BFS之类),在语言描述上的区别,我觉得用《代码大全》中的一句话描述的非常好:“驾驶汽车达到某人家,写成算法是:沿167号高速往南行至Puyallup,从XX出口后往山上开4
2016-12-12 17:25:44 11348 7
原创 C++ 模板的显示具体化
C++ 没有办法限制类型参数的范围,我们可以使用任意一种类型来实例化模板。但是模板中的语句(函数体或者类体)不一定就能适应所有的类型,可能会有个别的类型没有意义,或者会导致语法错误。例如有下面的函数模板,它用来获取两个变量中较大的一个:template const T& Max(const T& a, const T& b){ return a > b ? a : b;
2016-12-12 10:19:31 4661 1
原创 Socket 详解 总结
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有
2016-12-09 20:07:20 757
原创 Socket编程原理
1、问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用户进程多次
2016-12-09 19:47:57 441
翻译 操作系统Unix、Windows、Mac OS、Linux的故事 科普篇
我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户。在服务器领域,恐怕Linux是无人不知无人不晓。他们都是操作系统,也在自己的领域里独领风骚。这都还得益于另外一个古董级别的操作系统--Unix,虽然说古董级别,只是他年纪大了,性能和功能,Unix依然有着顽强的生命力。我们来沏杯茶,回顾Unix的传奇,讨论讨论Windows与Mac OS的
2016-12-09 17:46:12 14769 5
原创 Cocos2d中的网络通信协议(Socket通讯,http协议,WebSocket协议)
Socket通讯: Socket,俗称网络套接字,本身并不是协议,而是一个调用接口,是对TCP/IP协议的封装和应用,提供了一系列方法方便开发者进行网络通讯。 TCP/IP协议是使用最早的通讯协议,它是传输层协议,主要解决数据如何在网络中传输。 Socket中又分为流模式、数据报模式、原始套接字三种模式,即Socket_STREAM,Socket_DREA
2016-12-09 17:41:58 5295
原创 Socket 连接 初使用 (含源码)
注释: 在客户端游戏开发中,使用HTTP进行网络通信的比较少,一般使用的都是Socket进行通信。而HTTP一般用于网页或者网页游戏。 【Socket简介】 1、套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机
2016-12-09 17:40:09 961
原创 计算机网络 TCP/IP协议 三次握手 socket 扫盲篇
IP协议:对应于网络层,是网络层的协议。TCP协议:对应于传输层,是传输层的协议,主要解决数据如何在网络中传输。HTTP协议:对应于应用层,是应用层的协议,只要解决如何包装数据。Socket:本身不是协议,而是对TCP/IP协议的封装和应用的调用接口API,通过它我们才能使用TCP/IP协议。 TCP/IP协议TCP/IP指传输控制协议/网际协议(Transmission
2016-12-08 19:59:52 2493
原创 cocos2dx-3.1 接入多盟广告sdk+Android
经过几天的研究,再加上大神们的指导,终于cocos连接多盟广告sdk成功了。 连接第三方sdk,要先了解eclipse的一些用法,和看懂些Java代码,及一些xml,C++调用Java层代码是通过jni实现的。有一篇文章值得看看:http://blog.csdn.NET/ku726999/article/details/38553889点击打开链接 1、建
2016-12-07 21:13:12 1865
原创 C++ This 详解
this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。下面是使用 this 的一个完整示例:#include using namespace std;class Student{public:
2016-12-06 17:57:23 7069
原创 C++ 函数调用 默认参数
在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。下面是一个简单的示例:#includeusi
2016-12-06 17:35:30 8864
原创 typeof 详解 typeof 与 define 的区别
C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简单了:STU stu1;这种写法更加
2016-12-05 12:00:26 3995
原创 C 结构体 struct 详解
数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包
2016-12-05 11:47:08 33590 6
原创 枚举 enum 总结
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这里你
2016-12-05 11:22:18 544
原创 英雄互娱面试题目
1. 如何避免内存泄漏,如何查找内存泄漏。答:避免使用全局变量等生命周期长的变量每开辟一片内存的时候要时刻记着对它的释放,防御型编程,断言,异常处理,windows下查看任务管理器,查看进程,检查代码块Mac下用Instrument工具来检测内存使用状况2. 列举Cocos2dx内常用设计模式,并举例说明。答:工厂模式:工厂方法是程序设计中一个经
2016-12-03 12:09:05 3970
原创 cocos2dx 设计模式 观察者模式 实现
注释:main(),主程序IObservable,被观察者接口CHanFeiZiObservable,被观察者韩非子IObserver,观察者接口CLiSiObserver,观察者李斯CZhouSiObserver观察者周斯说明:将观察者聚集到被观察者韩非子身边,韩非子的每一个举动都会通知给观察者,如李斯或周斯。注意:最多允许一个对象既是观察者也是被观察者。
2016-12-02 21:40:48 1139
原创 学习 UML 类图
类之间的关系种类:Realization(实现), Generalization(泛化),Dependency(依赖)、Association(关联)、Aggregation(聚合)、Composition(合成或组合)。 其中,Aggregation(聚合)、Composition(合成)属于Association(关联),是特殊的Association关联关系。实现(Realiza
2016-12-02 20:38:47 261
原创 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 927
原创 C++11新特性
C++11新特性(1)对象构造的改良在标准C++中,构造函数不能调用其它的构造函数;每个构造函数必须自己初始化所有的成员或是调用一个共用.的成员函数。基类的构造函数不能够直接作 为派生类的构造函数;就算基类的构造函数已经足够,每个派生的类仍必须实现自己的构造函数。类中non-constant的数据成员不能够在声明的地方被 初始化,它们只能在构造函数中被初始化。 C++11将会提供这些问题的
2016-12-01 19:59:35 525
原创 Xcode中c++&Object-C混编,详细介绍如何在cocos2dx中访问object函数
首先建立了两个类,一个object-c ,一个c++,详细如下:HSpriteOC.h#import NSString * str;@ interface HSpriteOC +(void) testLog;+(void) testLogWithStr:(NSString*)_str;+(void) hMessageBox:(NSString*)pszMsg tit
2016-11-30 11:31:11 1386
原创 JS 面向对象实现 学习总结
1.js是完全的面向对象语言,其中类的创建格式如下:var person = { name:"zhanghow", sex:"boy", eat:function(food){ console.log("I'm eatting ",food) }} // 注意的是字段的赋值是冒号取代= 与Lua表的区别字段的访问:
2016-11-29 19:44:33 1897
原创 C++ 调用 Java Cocos2d-x利用jni调用java层代码
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)所以我们需要引用JNI头文件。(引入前做一下平台判断)#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include #include "platform/android/jni/JniHelper.h"
2016-11-29 19:42:38 522
原创 JS 面向对象 原型
// 面向对象var people = {name:"张三",age:20,sex:"男",eat:function(stuff){console.log("张三在吃"+stuff)}};people.height = 175;delete people["age"]people.eat("苹果")console.log(people
2016-11-22 21:34:24 326
原创 js string()常用方法总结
创建一个String 对象,语法:new String(stringValue),这个调用会将参数转换为字符串,并作为一个String 对象。事实上任何一个字符串常量都是一个String对象,可以将其直接作为对象来使用,这和使用new String()创建对象的区别是:typeof的返回值不同,一个是“stirng",另一个是"object".string.indexOf(searchSt
2016-11-21 19:25:59 3952
原创 JavaScript 入门基础语法
var num = 123;// 注释 "输出" // 说明// debug(num);console.log(num)// Number类型:用来表示整形和浮点型,还有特殊类型,非数值类型// 非数值类型NaN// 定义:表示一个本来要返回数值的操作数未返回数值的情况// 特点:1.任何涉及操作NaN的操作,都会返回NaN// 2
2016-11-21 19:18:25 254
原创 Quick GUI 实现代码
local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")--定时器第二种方式(需要引入头文件)local MainScene = class("MainScene", function() return display.newScene("MainScene")end)function MainSce
2016-11-16 20:27:57 704 1
原创 Quick 开发环境的搭建及基本语法
环境搭建 首先应该认识到Quick是Lua的一个封装的插件,它实现了对lua的扩展与增强。到官网下载对应的Quick安装包,安装后就可以用它新建项目,它自带一个模拟器用来调试。如果想更改代码的话就要考虑响应的IDE了。 IDE的选择我们采取的是sublime 2 ,下载地址:http://www.sublimetext.com,安装。然后是配置环境(Mac环境下
2016-11-14 21:20:48 753
原创 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 2528
原创 lua 面向对象的实现及原理
--[[function func( ... ) -- 对于不定参数的使用local args = {...}for k,v in ipairs(args) doprint(v)endendfunc(1,2,"ssa",6)]]---- 面向对象实现TSprite = {x = 0,y = 0 }-- 使用点操作符,需要显示的
2016-11-13 17:19:25 3717
原创 Lua 初学者需要注意的地方
实现不定参数: ...需要用一个表来接收不定参数 table表可以通过下标运算符来获取值,但是下标从1开始lua文件实现读入数据: lua文件需要有 io.read() 在控制台到文件的路径下使用lua命令 lua 文件名 即可执行此文件封装:三个权限 继承:子承父业,重写,重载多态:虚函数,动态联编 虚表,虚指针
2016-11-13 17:18:22 1525
原创 cocos2d-x 屏幕适配 策略
资源分辨率:表示我们的图片的分辨率。设计分辨率:表示我们设计的分辨率。可以这么认为,如果将我们的程序放到这个分辨率的设备上,那么我们的程序将完美显示。屏幕分辨率:实际屏幕的分辨率。getVisibleSize:表示获得可视区域的大小,如果DesignResolutionSize同屏幕尺寸一样大,则getVisibleSize等于getWinSize。getVisibleOrigin
2016-11-11 17:53:30 1485
原创 lua实现ipairs、pairs的功能
ipairs只能遍历以数字为下标的,而pairs则可以遍历各种下标(包括字符串)其中的实现都仰仗闭合函数function dieDaiQi(t)--实现ipairs的功能local i = 0return function ()i = i+1if i>#t then // 检测是否超出范围return nilendreturn i,t[i]end
2016-11-10 15:17:24 2272
原创 Lua table表函数库
一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明. table.concat(table, sep, start, end)concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep
2016-11-09 17:06:15 300
原创 Lua 开发环境搭建 基本语法
一、配置lua引擎包lua引擎包安装配置,首先下载lua的引擎包,这里采用的是5.3.3版本,mac环境,然后解压缩到存放的地方,尽量不要中文路径,然后运行终端,cd进入该文件src目录,输入 make macosx 然后回车1:首先下载最新版lua ,然后解压到你想解压到的位置http:// www.lua.org/ftp/2:运行终端,cd 进入该文件夹src目录下。
2016-11-07 21:34:00 414
原创 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 4283 2
原创 C++混编OC 交互编译
首先需要将C++类中的CPP后缀名改为.mm然后在导入oc类的头文件之前需要判断是否为IOS平台,若是则导入对OC窗体的添加首先要获得glview 导演类的单例对象调用getOpenGLView()函数在调用getEAGLView()获得GLview窗口之后创建一个窗体(按照oc的方法)glview相当于根视图,将创建的窗体添加上去话不多说,直接撸代码:void HSp
2016-11-04 17:43:19 1369
原创 cocos2dx 18个易忽略的知识点
一、const与define的区别1.const修饰的是有数据类型的,在编译时编译器会对其进行数据类型安全检查2.define只是简单的宏替换 ,不对进行数据类型安全检查const实现机制:const用来说明定义的变量是只读的。实现机制:这些在编译期间完成,编译器直接使用常数来替换掉对此变量的引用二、重载:参数列表不同(1.参数个数不同2.参数类型不同)
2016-11-02 21:01:58 1244
原创 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 461 1
空空如也
同行们普遍有这个”认识“很多经典的算法实际工作中好像用到的并不多,是这样么?
2016-07-22
iOS 我的scrollview 为啥不能滚动?
2016-03-10
ios开发中怎么删除NavigationController?大神救我
2015-11-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人