- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Python轻量级Http服务器——Post接收上传文件(如图片)
1. 客户端使用libcurl(C++) 测试//http post测试用例-Begin auto respCb = [=](const Json::Value json) { cout << "\nUpload gif success by http : " << item._gif_name.c_str() << endl; }; dev::httpPostGif("192.168.2.4
2021-06-04 11:14:48
3793
原创 Socket 与 Websocket通信交互 Linux/C++/epoll网络模型
Socket 与 Websocket通信交互 Linux/C++/epoll网络模型简要:Websocket是基于http协议实现的,而Socket是基于TCP/IP协议实现的。所以要想使Socket与Websocket进行数据交互,就必须在网络层手动解析http协议,大致分为两个步骤:握手连接 拆分协议帧。本实例使用Linux网络库,C++开发语言,epoll网络模型(不熟悉的童鞋可以百度,两者网络数据通信和epoll网络模型没有联系)示例代码:1.main...
2020-07-03 14:53:22
1041
3
原创 数据结构之环形队列实现 (C++/数组)
数据结构之环形队列实现 (C++/数组)1.概念示意图 内存中不存在环形数据结构,均由基础结构实现逻辑上的闭环效果2.环形队列与普通队列的区别1.front头部指针一般队列:front头部指针初始值为-1,从队列取数据时,该值依次递增,指向的元素即待取出的数据,而队列的头部数据所在的指针位置为front+1。当front=maxSize-1时,队列最后一个数据取出,此时队列为空。环形队列:front头部指针初始值为0,指向的元素既是队列的头部数据也是待取出的数据。从队列取数据时..
2020-07-02 12:31:57
1396
原创 Cocos Creator 粒子特效的使用实例记载
Cocos Creator 粒子特效的使用实例记载 初次开发使用Cocos Creatordeli的粒子特效功能,完成了下面界面的3个特效。 1.制作特效预制体资源,以下是UI效果,过程略,粒子特效源文件格式一般是.plist和.png两个文件,具体可以使用免费粒子特效编辑生成。 2. 代码编辑 只需将粒子特效生成一个节点添加到父节点上即可...
2019-01-22 17:43:52
6721
原创 空悬指针和野指针
空悬指针和野指针的区别 空悬指针dangling pointer,指向已经销毁的对象或已经回收的地址。以下情况可能出现空悬指针:情况1{ char *dp = NULL; { char c; dp = &c; } //变...
2018-09-03 15:20:26
438
原创 Cocos Creator动画的几种创建方式
Cocos Creator动画的几种创建方式1. 骨骼动画:以动画文件格式为altas json为例,在节点上面添加组件Spine Skeleton,将资源为atlas的文件直接拖进Skeleton Data选项:注意Premultiplied Alpha的预乘参数不用勾选,关掉颜色预乘效果 ...
2018-05-04 15:38:39
17785
4
原创 Cocos Creator 基础概念和用法敲录
Cocos Creator的特性:组件化 脚本化 数据驱动模型1. 拿到当前脚本组件所依附的节点:this.node;2. 拿到当前脚本组件:this3. 获取其它节点如取得节点的父节点:this.node.parent;4. 获取其它节点如取得子节点数组:this.node.children;5. 通过节点名获取子节点:this.node.getChildByName('node-1'); //...
2018-04-02 22:15:58
2524
原创 cocos2d-js 开发基础练习代码(2)——使用事件管理器创建用户交互以及cocos精灵帧动画的js使用
cocos2d-js 开发基础练习代码(2)首先通过使用cc.EventListener.create创建了一个Touch事件监听器touchListener,然后,通过cc.eventManager.addListener注册监听器到事件管理器。cc.EventListener.create扩展出一个用户监听器。event属性,定义这个监听器监听的类型。swallowTouches属性设置是否吃...
2018-03-03 19:24:08
583
原创 cocos2d-js 开发基础练习代码(1)——熟悉场景加载,精灵,动画使用等
cocos2d-js 开发基础练习代码(1)个人入门练习敲代码例子:GameKernelScene.js 功能是加载个场景 layer界面随机添加些sprite从上往下掉落,超出屏幕则删除代码涵盖内容包括:cocos2d-js场景的创建,layer的创建,sprite的创建,动画的使用,定时器的使用,以及JavaScript语法基础,对象的使用,方法的调用,数组Array的元素两种删除使用,Arr...
2018-03-03 17:13:38
820
原创 Cocos2dx使用ClippingNode在ios上出现图片全白区域
解决方案:修改OpenGL渲染参数void AppDelegate::initGLContextAttrs() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) GLContextAttrs glContextAttrs = { 8, 8, 8, 8, 24, 8 }; #else GLContextAttrs glContextAttr
2018-01-31 17:31:16
556
原创 JavaScript 常用方法及基础语法个人练习实例录
JavaScript 常用方法及基础语法练习实例A.正则表达式的运用 语法:/正则表达式主体/修饰符(可选)修饰符:i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。使用 test()test() 方法是一个
2017-12-21 18:24:17
600
原创 IAP实现之一掉单优化处理 — cocos2dx
IAP实现之一掉单优化处理 — cocos2dx前两片文章分别介绍了苹果内购的两种验证方式处理,那么在内购的过程中,会不可避免的出现些掉单情况,比如网络不好,程序闪退,或者使用外挂恶意刷单等种种突发原因,导致玩家支付成功却未能实现后台验证加货币的情况,以下介绍的方案只是优化中的一种。1.在收到内购支付成功回调函数中,发送receipt-data至服务器的同时,将订单号和re
2017-12-18 10:45:32
779
原创 IAP实现之一服务器模式 — cocos2dx
cocos2dx中的IAP实现:二C.服务器模式代码实现:添加StoreKit.framework,走完正常的内购前半流程completeTransaction中处理receipt-data发送至server验证1.发送数据有几点要注意的:a.不建议使用AFN方式,虽然封装的比较好,但用不好各种闪退 b.原生OC NSURLSession 也不建议使用,发送
2017-11-29 19:09:30
663
原创 IAP实现之一内建模式 — cocos2dx
cocos2dx中的IAP实现:一A.苹果内购IAP两种模式流程:1.内置模式:2.服务器模式的流程:
2017-11-28 10:30:26
733
原创 游戏、应用启动另一游戏或者应用处理(Android/Ios)
Android平台:根据包名启动(方案之一),有安装则启动,否跳转下载地址public static void OpenGameByPackage(String packageStr) { if(isAvilible(MainActivity.getContext(), packageStr)){ PackageManager packageManager
2017-07-31 15:41:53
827
原创 cocos2dx Android工程编译出现error: CreateProcess错误
编译cocos2dx项目Android 工程时:NDK编译代码遇到了下面的错误arm-Linux-androideabi-g++.exe: error: CreateProcess: No such file or directory原因是.MK文件中包含的文件太多了,也就是cpp文件过多导致,而windows对于函数参数个数有限制,解决的方法:
2017-07-05 15:50:07
885
转载 Missing Private key解决方案——IOS证书 .cer 以p12文件
一个苹果证书怎么多次使用——导出p12文件为什么要导出.p12文件:因为苹果规定 .cer证书只能存在于一台机器上,因此 如果另一台电脑想要用的话,需要导出为.p12 file ,安装到另一台没有安装.cer文件的mac电脑 当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,2个开发证书,可以发现再也申请不了开发证书和发布证
2017-06-26 15:05:03
21828
原创 Android/IOS 复制字符串到剪贴板 粘贴功能
PS:适用于cocos2dx ,应用开发1: Android 实现:str是需要复制的字符串public static void copy(final String str) { MainActivity.runOnUiThread(new Runnable() { @Override public void run() { final St
2017-06-14 11:52:35
1630
原创 Android应用内启动第三方应用
1、最简单的情况:只有包名PackageManager packageManager = context.getPackageManager(); Intent it= packageManager.getLaunchIntentForPackage(pk_name);2、启动第三方指定页面。(这个方法有限制,第三方页面 Activity的属性Expo
2017-06-02 11:46:19
642
转载 IOS内购支付服务器验证模式
IOS 内购支付两种模式:内置模式服务器模式内置模式的流程:app从app store 获取产品信息用户选择需要购买的产品app发送支付请求到app storeapp store 处理支付请求,并返回transaction信息app将购买的内容展示给用户服务器模式的流程:
2017-05-26 14:58:26
3505
原创 第三方应用处理ios上是否安装微信登录
第一步:RootViewController.h头文件需要引入微信SDK头文件,并继承微信处理接口#import "WXApi.h"@interface RootViewController : UIViewController {}第二步:由于ios系统升级的原因,9.0之后需要添加微信白名单,否则功能无法使用,也是关键一步,方法如下Xcode 工程下打开Info,选项C
2017-05-02 11:10:05
2554
原创 升级支持ipv4/ipv6后的Socket处理(cocos2dx项目苹果审核支持ipv6处理二)
升级支持ipv4/ipv6后的Socket处理前提条件是socket已经支持ipv4处理,需修改以下两处:1.创建socket时 //解析是ipv4地址还是ipv6地址 structaddrinfo addrin; structaddrinfo* pAddr = &addrin; int nRet =getaddrin
2016-10-19 16:12:59
2197
原创 不使用Mac机器网络使用iPhone网络搭建ipv6测试环境(cocos2dx项目苹果审核支持ipv6处理一)
不使用Mac机器网络使用iPhone网络搭建ipv6测试环境1.正常使用Mac机器搭建ipv6的网络环境步骤简单,需要注意的是Mac需要有线连网,不能wi-fi入网,否则创建共享网络没有创建NAT64选项2.第一种方式如果机器所在网络不支持ipv6协议,可能会出现模拟的ipv6环境不能正常测试,亲自趟过坑。游戏Socket对ipv4/ipv6处理没有问题,但就是在第一种方式创建的ipv6环
2016-10-19 15:50:45
1686
原创 iOS :undefined symbols for architecture x86_64
类似 iOS :undefined symbols for architecture x86_64 或者 undefined symbols for architecture arm64 的问题为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构。但是发现工程在真机上可以编译通过但是在模拟器上却未编过。问题解决:经研究在编译选项中再加入x86_64架构,重
2016-10-14 14:15:31
726
原创 [IOS platform]AudioEngine:Fixed audio can not resume if it is interrupted cause by an incoming phone
1.cocos是个坑2.修改 cocos/audio/apple/AudioEngine-inl.mm: { if ([[[UIDevice currentDevice] systemVersion] intValue] > 5) { [[NSNotificationCenter defaultCenter] addObserver:self selecto
2016-09-14 15:38:38
779
原创 IAP监听购买结果paymentQueue,SKPaymentTransaction方法重复累计调用解决
最近在做IAP的时候无意发现以前写的内购代码有个小漏洞,收到内购的结果处理会根据购买次数而相应的增加,实现消息监听的初始化和结果监听代码处理如下:- (id)initWithPayConstructor:(NSString *) productIdStr{ self = [super init]; if (self) { // Custom initi
2016-09-06 15:07:20
14472
原创 cocos2dx Lua工程调用C++ 详细操作步骤
一、个人对“绑定”这词有两种理解1、lua绑定到C++,就是C++能调用到lua的东西,那必须让C++知道有哪些lua函数或变量可以用2、C++绑定到lua,就是lua能调用到C++的东西,当然也必须让lua知道有哪些C++东东可以给lua调用,所谓的“暴露”这里说的绑定就是第2种情况,在lua中能调用到Cocos2dx的函数。Cocos2dx通过工程里面的tools/to
2016-07-12 17:13:41
1327
原创 cocos2dx中精灵点击事件处理的两种方式——Sprite和ImageView
1. ImageView 的方式:封装的Widget组件ImageVIew实现了类似按钮的监听事件,所以处理起来很方便直接ImageView* _pPokerImageView;_pPokerImageView = ImageView::create(tmpStr); _pPokerImageView->setAnchorPoint(Vec2(0, 0)); _pPokerImage
2016-04-13 09:57:21
16976
2
原创 cocos2dx C++ 绑定到 Lua时两个问题
A.运行genbindings.py出现PYTHON_BIN not defined, use current python.解决方案:cocos2dx C++ 绑定到 Lua时,运行genbindings.py出现PYTHON_BIN not defined, use current python.请参照cocos2dx3.0rc导出自定义类到lua的方法详细步骤一文中安装第一要点:
2016-02-19 11:45:28
1916
原创 基于距离的数学计算方法
1. 欧氏距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: (2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: (3)两个n维向量a(x11,x12,…,x1n)与 b(
2015-12-26 23:52:52
1032
转载 cocos2dx中lua注册事件函数详解
coocs2dx 版本 3.1.1registerScriptTouchHandler 注册触屏事件registerScriptTapHandler 注册点击事件registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件registerScriptKeypadHandler 注册键盘事件registerScriptAccele
2015-12-09 20:20:47
1659
转载 Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下:cocos2d-x下Lua调用C++这事之所以看起来这么复杂、网上所有的文档都没讲清楚,是因为存在5个层面的知识点:1、在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质2、在cocos2d-x项目里,把纯C函数注册进Lua
2015-12-09 16:46:17
767
原创 Lua Mac&Windows开发环境组建及部分语法例子
Mac:1.安装Lua编译器下载Lua, http://www.lua.org/;解压后,cd进入该文件夹src目录下,修改Makefile里macosx后一行为 macosx: $(MAKE) all MYCFLAGS="-DLUA_USE_LINUX -arch i386" MYLIBS="-arch i386 -lreadline" 保存退出。在当前文件夹执行
2015-12-08 10:41:05
807
原创 C++11之Lambda表达式使用
概念:lambda表达式又可以称作“匿名函数”,顾名思义,其是个函数。先看如下代码其中表达式的运用,初次遇见肯定一头雾水:#includeusing namespace std;int main(){ int a = 1; int b = 2; auto func = [=, &b](int c)->int {return b += a +
2015-12-01 11:37:55
662
转载 数据结构——双向链表实现,基本操作的C++版
对于循环双向链表判断一个链表是否为空的条件为:head->next==head (头指针)判断*p为最后一个节点的条件为:p->next=head[cpp] view plaincopy#include using namespace std; /*双链表结构*/ typedef struct nod
2015-11-28 22:05:09
3810
转载 Socket 通信原理机制
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?
2015-11-25 21:55:33
7771
转载 COCOS2DX-游戏开发之 坐标系
原地址:http://blog.youkuaiyun.com/teng_ontheway/article/details/18360925cocos2dx-坐标系支持以下几种坐标系:1.屏幕坐标系 原点在左上角,X轴向右,Y轴向下。2.GL坐标系 原点在左下角,X轴向右,Y轴向上。3.世界坐标系 指相对于整个屏幕的坐标系,(0,0)就是屏幕的左下角,(320,480)就是屏幕的
2015-11-16 10:20:12
627
原创 C++11 基础之字符数组,字符串,字符指针通过sizeof、strlen求值
C++11 基础之字符数组,字符串,字符指针通过sizeof、strlen求值,自行思考结果值意义:运行结果如下:
2015-11-10 15:20:42
651
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人