<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Macuilxochitl]]></title><description><![CDATA[if (notes || ideas)]]></description><link>https://blog.youkuaiyun.com/EVILsupermp5</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; EVILsupermp5]]></copyright><item><title><![CDATA[【cocos2d-x 3.0】瞬间明白std::bind与CC_CALLBACK_N]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/25791577</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/25791577</guid><author>EVILsupermp5</author><pubDate>Wed, 14 May 2014 14:49:53 +0800</pubDate><description><![CDATA[auto newCallback = bind(fun,_1,_2,1.5);
int x = newCallback(10,'h');  //这句相当于:int x = callback(10,'h',1.5);]]></description><category></category></item><item><title><![CDATA[C++拷贝构造函数详解]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/22270715</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/22270715</guid><author>EVILsupermp5</author><pubDate>Thu, 27 Mar 2014 10:23:10 +0800</pubDate><description><![CDATA[一. 什么是拷贝构造函数


首先对于普通类型的对象来说，它们之间的复制是很简单的，例如：





[c-sharp] view
 plaincopy






int a = 100;  
int b = a;   


而类对象与普通对象不同，类对象内部结构一般较为复杂，存在各种成员变量。
下面看一个类对象拷贝的简单例子。





]]></description><category></category></item><item><title><![CDATA[【Lua】自定义OOP类的声明和定义]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/22154965</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/22154965</guid><author>EVILsupermp5</author><pubDate>Wed, 26 Mar 2014 10:34:25 +0800</pubDate><description><![CDATA[最近在cocos2d-x引擎附带的代码中发现了这样一段extern.lua
--Create an class.
function class(classname, super)
    local superType = type(super)
    local cls
 
    if superType ~= "function" and superType ~= "table" the]]></description><category></category></item><item><title><![CDATA[【cocos2d-x】让XCode运行时自动更新资源【IOS】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21937189</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21937189</guid><author>EVILsupermp5</author><pubDate>Mon, 24 Mar 2014 10:35:33 +0800</pubDate><description><![CDATA[用过XCode的人都知道，XCode有一个臭名昭著的bug——除非你修改了源代码造成了重新编译，否则游戏包中的资源经常无法刷新。不管怎么运行资源都是旧的。



关于这个问题，业内有几位同行已经详细探讨过了。有几种解决方法，其中一种方法是，在运行时强制把资源删除，这样XCode会重新导入新的资源。要做到这一点就是写一个脚本，让这个脚本在XCode运行时自动执行。


“我是妖怪”兄曾]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】装配FMOD外部音频引擎【Android】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21877641</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21877641</guid><author>EVILsupermp5</author><pubDate>Sun, 23 Mar 2014 17:55:09 +0800</pubDate><description><![CDATA[Cocos2d-x目前最新版本（3.0 rc0）自带的音频引擎仍然还是CocosDenshion，仅提供一些基本功能
对于音效音乐方面要求较高的游戏而言难以满足要求（比如音乐游戏）
所以我们可以使用强大的FMOD引擎来解决需求！它几乎支持所有游戏平台，无论Windows/Linux/Mac/ios/android/Xbox/PlayStation通通支持！
废话不多说，下面up主举例说明如何]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】瞬间学会在Android平台读取SD卡数据包]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21841489</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21841489</guid><author>EVILsupermp5</author><pubDate>Sun, 23 Mar 2014 01:10:43 +0800</pubDate><description><![CDATA[auto searchPaths = FileUtils::getInstance()->getSearchPaths();
	searchPaths.push_back("/mnt/sdcard/Android/Data/com.package.appname/");
	FileUtils::getInstance()->setSearchPaths(searchPaths);


只要这]]></description><category></category></item><item><title><![CDATA[【Android】NDK学习之Android.mk]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21840489</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/21840489</guid><author>EVILsupermp5</author><pubDate>Sun, 23 Mar 2014 00:44:01 +0800</pubDate><description><![CDATA[（传送门）
http://blog.sina.com.cn/s/blog_602f8770010148ce.html]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】关于多点触控的监听]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/20448753</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/20448753</guid><author>EVILsupermp5</author><pubDate>Tue, 04 Mar 2014 11:41:46 +0800</pubDate><description><![CDATA[在cocos2d-x 3.0中，我们通常使用EventListenerTouchAllAtOnce这种方式来监听多点触控
例如

	auto dispatcher = Director::getInstance()->getEventDispatcher();
	auto listener = EventListenerTouchAllAtOnce::create();
	listener-]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】新增一个自己的跨平台方法【Win/Android】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/20222839</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/20222839</guid><author>EVILsupermp5</author><pubDate>Sat, 01 Mar 2014 17:44:44 +0800</pubDate><description><![CDATA[【前言】

尽管cocos2d-x引擎已然非常强大，但它毕竟不是多啦A梦的口袋一样什么功能都有~
比如UP主最近在做一个Windows、Android双平台的小程序，其中需要实现一个MP3播放器的功能
但是目前cocos2d-x自带的SimpleAudioEngine音频引擎确实有点太Simple了，除了打开播放暂停这几个最最基本的方法之外，别的功能啥都没有
（当然，想实现别的功能的话，]]></description><category></category></item><item><title><![CDATA[一个简单的例子说明dynamic_cast的作用]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19615311</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19615311</guid><author>EVILsupermp5</author><pubDate>Fri, 21 Feb 2014 12:56:53 +0800</pubDate><description><![CDATA[#include 
#include 

using namespace std;

// 我是父类
class Tfather
{
public:
	virtual void f() { cout << "father's f()" << endl; }
};

// 我是子类
class Tson : public Tfather
{
public:
	void f() { cout << "]]></description><category></category></item><item><title><![CDATA[VS开发中的静态编译]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19482681</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19482681</guid><author>EVILsupermp5</author><pubDate>Wed, 19 Feb 2014 12:47:24 +0800</pubDate><description><![CDATA[针对现象
1、 运行程序提示“由于应用程序配置不正确，应用程序未能启动。重新安装应用程序可能会纠正这个问题”
2、 程序启动即发生异常，或者没反应。（具体现象跟系统设置有关）
3、 客户端发布必须连带msvcr80.dll，mfc80.dll等dll和manifest文件才能正常运行

问题定位
出现上述现象之后可以确定是缺少程序运行所需的环境，可以通过安装相应的vcredist_x8]]></description><category></category></item><item><title><![CDATA[LIB和DLL的区别与使用]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19482119</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19482119</guid><author>EVILsupermp5</author><pubDate>Wed, 19 Feb 2014 12:16:35 +0800</pubDate><description><![CDATA[共有两种库：
一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息（入口），代码由运行时加载在进程空间中的DLL提供，称为动态链接库dynamic link library。
一种是LIB包含函数代码本身，在编译时直接将代码加入程序当中，称为静态链接库static link library。
共有两种链接方式：
动态链接使用动态链接库，允许可执行模块（.dll文件或.exe文件）仅]]></description><category></category></item><item><title><![CDATA[【cocos2d-x】C++中调用JAVA的方法]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19288643</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19288643</guid><author>EVILsupermp5</author><pubDate>Sun, 16 Feb 2014 16:28:08 +0800</pubDate><description><![CDATA[CPP文件中（以HelloWorld为例）：
1、 首先导入h文件：
#include "../platform/android/jni/JniHelper.h"

2、 在需要调用JAVA方法的地方，加入如下代码：
#if (CC_TARGET_PLATFORM== CC_PLATFORM_ANDROID) //判断当前是否为Android平台

JniMethodInfo minfo]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】将项目移植到Android【codingnow.cn】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19282997</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19282997</guid><author>EVILsupermp5</author><pubDate>Sun, 16 Feb 2014 11:21:32 +0800</pubDate><description><![CDATA[cocos2d-x 3.0版本移植起来更简单了，不需要安装cygwin，也不需要编写java代码。



1. 首先编辑proj.android\jni\Android.mk，内容如下：






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20



LOCAL_PATH :]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】入门样例《SimpleGame》源码解读【3】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19198311</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19198311</guid><author>EVILsupermp5</author><pubDate>Fri, 14 Feb 2014 15:22:59 +0800</pubDate><description><![CDATA[下面我们来看中弹判定定时器，以及触摸发射子弹的部分
我觉得先看一下发射子弹比较符合理解的逻辑：）


在之前的代码中，我们设定了触摸listener的回调函数，也就是触摸屏幕之后要执行的方法是：
// cpp with cocos2d-x
void HelloWorld::onTouchesEnded(const std::vector& touches, Event* event)
{]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】入门样例《SimpleGame》源码解读【2】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19195521</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19195521</guid><author>EVILsupermp5</author><pubDate>Fri, 14 Feb 2014 12:58:29 +0800</pubDate><description><![CDATA[上一篇我们以这个游戏为出发点，分析了引擎的启动入口和基本运作机制，回顾最后的一个重点语句
auto scene = HelloWorld::scene();从这里开始，后面的工作真正交给了我们，不用太关心引擎底层的问题了！
让我们进入HelloWorldScene类吧，先来看一下上面调用的这个方法
Scene* HelloWorld::scene()
{
	Scene * scene = N]]></description><category></category></item><item><title><![CDATA[【cocos2d-x 3.0】入门样例《SimpleGame》源码解读【1】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19172931</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19172931</guid><author>EVILsupermp5</author><pubDate>Fri, 14 Feb 2014 11:39:58 +0800</pubDate><description><![CDATA[【序言】
UP主若干年前独立制作过几部小游戏，如：
《躲子弹之BadApple版》-- www.acfun.tv/v/ac63137
《金坷垃马里奥兄弟》 -- www.bilibili.tv/video/av2556
等等……


但遗憾的是都没有用到什么正儿八经的游戏引擎，全部都是用C++Builder从底层开始自己设计自己实现的
虽说学到了很多东西（比如消息循环啊，绘图API]]></description><category></category></item><item><title><![CDATA[C++可变参数写法]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19168275</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19168275</guid><author>EVILsupermp5</author><pubDate>Thu, 13 Feb 2014 17:35:08 +0800</pubDate><description><![CDATA[#include 
#include 

void variableArgu(int argc, ...)
{
	// 声明一个指针, 用于持有可变参数
	va_list pArg;

	// 将 pArg 初始化为指向第一个参数
	va_start(pArg, argc);

	// 输出参数
	for(int i = 0; i != argc; ++i)
	{
		// 获取 pArg 所指向]]></description><category></category></item><item><title><![CDATA[cocos2d-x3.0 + vs2012环境配置【codingnow.cn】]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19158751</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19158751</guid><author>EVILsupermp5</author><pubDate>Thu, 13 Feb 2014 13:37:26 +0800</pubDate><description><![CDATA[cocosd-x 3.0版本传说做了很多优化，性能有了很大提升，支持c++ 11，目录结构和类名也改了，取消了各种类的CC前缀，比如CCSprite变成了Sprite，支持CocoStudio UI编辑器等。总之，比以前的版本效率要好，也更好用了。很久没有玩cocos2d-x了，现在重新来温习一下配置3.0版本，现在最新的版本是cocos2d-x-3.0alpha1。
1. 下载安装vs2012]]></description><category></category></item><item><title><![CDATA[由POJ-1383简析《树的最长链》两次DFS/BFS算法的证明]]></title><link>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19157579</link><guid>https://blog.youkuaiyun.com/EVILsupermp5/article/details/19157579</guid><author>EVILsupermp5</author><pubDate>Thu, 13 Feb 2014 12:36:25 +0800</pubDate><description><![CDATA[无意中看到一道水题，也就是POJ 1383
题目中给出了一个无环的迷宫，求出其中最长的一条路
我们知道无环图本质上可以认为就是树，所以此题完全可以使用树的最长链算法
 
即：随便从某个节点C开始DFS或BFS找到最远的一个点A，再从点A开始DFS或BFS找到最远的一点B，那么路径A->B必然是树上的最长路径。

这个算法很多人都知道并且当做结论使用，但很少看到有人给出正确性证明
所以]]></description><category></category></item></channel></rss>