<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[karaa的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/karaa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; karaa]]></copyright><item><title><![CDATA[navmeshagent被碰撞阻挡]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/116451065</link><guid>https://blog.youkuaiyun.com/karaa/article/details/116451065</guid><author>karaa</author><pubDate>Thu, 06 May 2021 12:13:10 +0800</pubDate><description><![CDATA[navmeshagent导航范围需要大于等于碰撞范围，否则会由于碰撞被阻挡


]]></description><category></category></item><item><title><![CDATA[opengl各种库]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/106884466</link><guid>https://blog.youkuaiyun.com/karaa/article/details/106884466</guid><author>karaa</author><pubDate>Sun, 21 Jun 2020 13:38:40 +0800</pubDate><description><![CDATA[一些资料
https://blog.youkuaiyun.com/wang15061955806/article/details/50274171
https://www.cnblogs.com/chencarl/p/10722839.html
opengl学习网站
https://learnopengl-cn.github.io
http://www.opengl-tutorial.org/
http://ogldev.atspace.co.uk
底层库


gl库
GL核心库，包含115中函数，以gl开头


gl]]></description><category></category></item><item><title><![CDATA[海外SDK接入2 Firebase + googleLogin]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/104715509</link><guid>https://blog.youkuaiyun.com/karaa/article/details/104715509</guid><author>karaa</author><pubDate>Sat, 07 Mar 2020 15:49:36 +0800</pubDate><description><![CDATA[准备工作
官方文档：https://firebase.google.cn/docs/android/setup
cocos2dx demo:https://github.com/FirebaseExtended/cocos2dx-cpp-sample

前期准备
有相关人员在后台配置好数据

由后台下载 google-services.json，放到project/app/路径下
andorid接...]]></description><category></category></item><item><title><![CDATA[海外SDK接入1 onestore]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/104713257</link><guid>https://blog.youkuaiyun.com/karaa/article/details/104713257</guid><author>karaa</author><pubDate>Sat, 07 Mar 2020 14:42:55 +0800</pubDate><description><![CDATA[OneStore
准备工作!
1，官方文档：https://dev.onestore.co.kr/devpoc/reference/view/Tools
2，https://github.com/ONE-store/inapp-sdk-chi/wiki/Tools-Developer-Guide
3 demo:https://github.com/ONE-store/iap_v5/tree/one...]]></description><category></category></item><item><title><![CDATA[一道变形的链表反转题，使用lua实现]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/103204084</link><guid>https://blog.youkuaiyun.com/karaa/article/details/103204084</guid><author>karaa</author><pubDate>Fri, 22 Nov 2019 17:08:19 +0800</pubDate><description><![CDATA[给定一个单链表的头节点 head,实现一个调整单链表的函数，使得每K个节点之间为一组进行逆序，并且从链表的尾部开始组起，头部剩余节点数量不够一组的不需要逆序。（不能使用队列或者栈作为辅助）

例如：链表:1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;6-&gt;7-&gt;8-&gt;null, K = 3。那么 6-&gt;7-&gt;8，3-&gt;4-&gt;5，1-&gt;2...]]></description><category></category></item><item><title><![CDATA[egret适配方案，FIXED_WIDTH]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/102211493</link><guid>https://blog.youkuaiyun.com/karaa/article/details/102211493</guid><author>karaa</author><pubDate>Sun, 06 Oct 2019 10:27:43 +0800</pubDate><description><![CDATA[准备工作
1，确定设计分辨率 640 * 1024（egret模拟器提供的宽高比在1.5-1.77之间，这里取1.6方便测试，实际开发建议640 *  1136 或者720 * 1280）
2，准备一张与设计分辨率尺寸一致的图片用做背景（用于测试，直接采用创建项目时提供的默认背景，使用代码调整高度为640 * 1024）
1，创建egret项目
egretLauncher创建eui或者游戏项目，看...]]></description><category></category></item><item><title><![CDATA[cocos2dx openssl+aes+base64 加密解密]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/99899463</link><guid>https://blog.youkuaiyun.com/karaa/article/details/99899463</guid><author>karaa</author><pubDate>Wed, 21 Aug 2019 00:36:49 +0800</pubDate><description><![CDATA[1，BIO加密解密

BIO库由于链式特性，可以很方便的实现加密+base64 操作


void OpensslTool::initEvp()
{    
    this-&gt;evp_key = (unsigned char*)"1234567890123456";
    this-&gt;evp_iv = (unsigned char*)"0000000000000000";
}
...]]></description><category></category></item><item><title><![CDATA[cocos2dx  openssl base64编码解码]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/99777262</link><guid>https://blog.youkuaiyun.com/karaa/article/details/99777262</guid><author>karaa</author><pubDate>Mon, 19 Aug 2019 23:41:49 +0800</pubDate><description><![CDATA[1 cocos2dx自带base64


#include &lt;base/base64.h&gt;
std::string OpensslTool::baseBase64Decode(const char *in)
{
    int inLen = strlen(in);
    unsigned char *out   ;
    int outLen = cocos2d::base64D...]]></description><category></category></item><item><title><![CDATA[设计一个公平的洗牌算法]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/99284382</link><guid>https://blog.youkuaiyun.com/karaa/article/details/99284382</guid><author>karaa</author><pubDate>Mon, 12 Aug 2019 08:49:53 +0800</pubDate><description><![CDATA[洗牌的基本逻辑，是一个已知数组重排序的问题，所以简单的做法是遍历K次，每次交换两张牌，但是这个算法公平吗？

如何确定一个算法公平，假设有N张牌，那么就有N!中排序方法，而我们应该从这n!次中随机1个，这样才能保证公平性



但是这个算法复杂度太高了！！！

那么怎么简单呢？

换一种思维，每个位置都能等概率的存放每个元素

第一次，随机N个元素，放到第一位，即 第一位的元素有1/N的概率

...]]></description><category></category></item><item><title><![CDATA[cocoslua 使用addCustomHandler传递函数作为参数 到C++]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/99069245</link><guid>https://blog.youkuaiyun.com/karaa/article/details/99069245</guid><author>karaa</author><pubDate>Sat, 10 Aug 2019 13:26:18 +0800</pubDate><description><![CDATA[在C++中写的方法，如果需要传递函数，当绑定到lua时，genbinding.py生成的绑定类会直接return 0,是的lua无法设置回调函数，但是widget子类，如button,sprite确能设置点击事件，触摸事件，所以我看了下cocos2dx自己的绑定方式，发现用的是ScriptHandlerMgr::getInstance()-&gt;addCustomHandler方法实现，如此，我...]]></description><category></category></item><item><title><![CDATA[cocoslua  genbinding c++绑定lua 练习]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/99065505</link><guid>https://blog.youkuaiyun.com/karaa/article/details/99065505</guid><author>karaa</author><pubDate>Sat, 10 Aug 2019 12:59:26 +0800</pubDate><description><![CDATA[首先，写一份C++



#ifndef SDKManager_h
#define SDKManager_h

#include"cocos2d.h"

typedef std::function&lt;void(int ,std::string)&gt; sdkCallFunc;
class SDKManager    {
    SDKManager(){};
    ~SDKManager(...]]></description><category></category></item><item><title><![CDATA[lua 代码优化]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/95443659</link><guid>https://blog.youkuaiyun.com/karaa/article/details/95443659</guid><author>karaa</author><pubDate>Thu, 11 Jul 2019 09:08:33 +0800</pubDate><description><![CDATA[lua判断空表
function isEmpty( tab,isArray )
	--判断lua空表，如果确定是数组类型，可以直接用#tab == 0
	if tab == nil then 
		return nil 
	end
	if isArray then
		return #tab == 0
	end
	return next(tab) == nil ;

end

代码优化
1，大量字...]]></description><category></category></item><item><title><![CDATA[mysql8 phpmyadmin密码登录失败]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/93904665</link><guid>https://blog.youkuaiyun.com/karaa/article/details/93904665</guid><author>karaa</author><pubDate>Thu, 27 Jun 2019 19:50:39 +0800</pubDate><description><![CDATA[mysql8 phpmyadmin密码登录失败
https://blog.youkuaiyun.com/yi247630676/article/details/80352655
https://blog.youkuaiyun.com/hello_world_qwp/article/details/79551789
https://www.cnblogs.com/jjg0519/p/9034713.html
云服务器上，配...]]></description><category></category></item><item><title><![CDATA[linux 下Mysql查错]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/93762194</link><guid>https://blog.youkuaiyun.com/karaa/article/details/93762194</guid><author>karaa</author><pubDate>Wed, 26 Jun 2019 18:25:23 +0800</pubDate><description><![CDATA[1,systemctl start mysqld启动报错

2,按提示：systemctl status mysqld.service

3,查看日志：cat /var/log/mysqld.log 发现有error:

2019-06-26T10:12:30.404834Z 0 [ERROR] [MY-000067] [Server] unknown variable 'default-char...]]></description><category></category></item><item><title><![CDATA[Win10下配置cocos2dx + andorid环境]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/93735398</link><guid>https://blog.youkuaiyun.com/karaa/article/details/93735398</guid><author>karaa</author><pubDate>Wed, 26 Jun 2019 14:13:46 +0800</pubDate><description><![CDATA[Win10下配置cocos2dx + andorid环境Cocos准备工作Android环境搭建其他
Cocos准备工作
1,python环境
1）首先下载最新Python2.7.X版本，网上很多，就不发了。（不确定python3是否可以）	
2）环境配置
控制面板-&gt;系统和安全-&gt;系统-&gt;高级系统设置
（可以通过win10快捷搜索 ，输入 环境变量 进入）
高级选项卡-&gt;...]]></description><category></category></item><item><title><![CDATA[ssh免密，省去-i]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/90679960</link><guid>https://blog.youkuaiyun.com/karaa/article/details/90679960</guid><author>karaa</author><pubDate>Wed, 29 May 2019 22:36:59 +0800</pubDate><description><![CDATA[ssh-keygen生成秘钥对(使用自定义名字)
$ ssh-keygen -t rsa -f ~/.ssh/id_ras_my
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification ...]]></description><category></category></item><item><title><![CDATA[面试题：回旋数]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/90214809</link><guid>https://blog.youkuaiyun.com/karaa/article/details/90214809</guid><author>karaa</author><pubDate>Tue, 14 May 2019 20:51:28 +0800</pubDate><description><![CDATA[算法面试题：
形如一下：
横向右为x正坐标
竖向下为y正坐标
（0，0）= 1
（1，0）=2
（1，1）=3
（0，1）=4
（-1，1）=5
…
计算坐标（-7，5）对应值

var Point = function (x,y) {
    this.x = x;
    this.y = y;
}
function getValue(x,y) {
    // 求绝对值
    var ce...]]></description><category></category></item><item><title><![CDATA[面试题：有两个有序数组，判断是否有元素同时存在于两个数组中，最优解]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/90214607</link><guid>https://blog.youkuaiyun.com/karaa/article/details/90214607</guid><author>karaa</author><pubDate>Tue, 14 May 2019 20:41:15 +0800</pubDate><description><![CDATA[有两个int型数组，已排序，判断是否有元素同时存在于a和b中
var arr1 = [1,2,4,5]

var arr2 = [3,4,6,7,8]

function checkOwnSameItem(arr1,arr2) {

    var len1 = arr1.length;
    var len2 = arr2.length;

    var indexA = indexB = ...]]></description><category></category></item><item><title><![CDATA[PHP变量作用域，全局变量和局部变量，global和GLOBALS]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/90116801</link><guid>https://blog.youkuaiyun.com/karaa/article/details/90116801</guid><author>karaa</author><pubDate>Sat, 11 May 2019 23:33:22 +0800</pubDate><description><![CDATA[在PHP中变量主要有：内置超级全局变量，一般的变量，常量，全局变量，静态变量等.
超级全局变量
PHP 中的许多预定义变量都是“超全局的”，这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
$GLOBALS    所有全局变量数组
$_SERVER    服务器环境变量数组
$_GET    通过GET方法传递给该脚本的变量数...]]></description><category></category></item><item><title><![CDATA[javascript学习笔记（1）Array.prototype.slice用法]]></title><link>https://blog.youkuaiyun.com/karaa/article/details/89280610</link><guid>https://blog.youkuaiyun.com/karaa/article/details/89280610</guid><author>karaa</author><pubDate>Sat, 13 Apr 2019 12:22:56 +0800</pubDate><description><![CDATA[Array.prototype.slice用法
等同于[].slice.call()
1,从数组中抽取出新的数组
http://www.w3school.com.cn/js/jsref_slice_array.asp 。
2,用于类数组对象，抽取出新数组
以length属性为基础
   	从Function中取出arguments数组：
    var arg2 = Array.prototype...]]></description><category></category></item></channel></rss>