游戏开发笔记

1.SimulatorWin.cpp文件里的#define SIMULATOR_WITH_CONSOLE_AND_MENU 1
开 - 1
关 - 0

2.获取当前spine的所有动作名
SkeletonAnimation中添加

std::string SkeletonAnimation::getAnimationName()
{	
	std::string str = "";
	std::string xing = "#";
	for (int i = 0; i < _skeleton->data->animationsCount; ++i)
	{
		if (_skeleton->data->animations[i] && _skeleton->data->animations[i]->name)
		{
			if (i + 1 < _skeleton->data->animationsCount)
			{
				str += _skeleton->data->animations[i]->name;
				str += xing;
			}
			else
			{
				str += _skeleton->data->animations[i]->name;
			}
			
		}
	}
	return str;
}

lua_cocos2dx_spine_auto.cpp中添加

int lua_cocos2dx_spine_SkeletonAnimation_getAnimationName(lua_State* tolua_S)
{
    int argc = 0;
    spine::SkeletonAnimation* cobj = nullptr;
    bool ok  = true;

#if COCOS2D_DEBUG >= 1
    tolua_Error tolua_err;
#endif


#if COCOS2D_DEBUG >= 1
    if (!tolua_isusertype(tolua_S,1,"sp.SkeletonAnimation",0,&tolua_err)) goto tolua_lerror;
#endif

    cobj = (spine::SkeletonAnimation*)tolua_tousertype(tolua_S,1,0);

#if COCOS2D_DEBUG >= 1
    if (!cobj) 
    {
        tolua_error(tolua_S,"invalid 'cobj' in function 'lua_cocos2dx_spine_SkeletonAnimation_getAnimationName'", nullptr);
        return 0;
    }
#endif

    argc = lua_gettop(tolua_S)-1;
    if (argc == 0) 
    {
        if(!ok)
        {
            tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_spine_SkeletonAnimation_getAnimationName'", nullptr);
            return 0;
        }
        std::string ret = cobj->getAnimationName();
        tolua_pushstring(tolua_S,ret.c_str()); //(const char*)
        #pragma warning NO CONVERSION FROM NATIVE FOR std::string;
        return 1;
    }
    luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "sp.SkeletonAnimation:getAnimationName",argc, 1);
    return 0;

#if COCOS2D_DEBUG >= 1
    tolua_lerror:
    tolua_error(tolua_S,"#ferror in function 'lua_cocos2dx_spine_SkeletonAnimation_getAnimationName'.",&tolua_err);
#endif

    return 0;
}

在lua_register_cocos2dx_spine_SkeletonAnimation方法中添加
tolua_function(tolua_S,“getAnimationName”,lua_cocos2dx_spine_SkeletonAnimation_getAnimationName);

返回值用string.split(str, “#”)解析

3.资源加解密
https://www.cnblogs.com/cnxkey/articles/8579557.html

4.cocos2dx 3.x 主循环每一帧做的事情
一帧之内所做的事情(FPS):
1、事件检查和处理:在每一帧开始,C2d检查事件,有则处理分发事件。
2、动画更新:ActionManager会对每一个元素注册的所有动画执行响应计算,并更新其对应的属性值;
3、默认处理物理模拟碰撞;
4、程序自定义更新;
5、UI树的遍历;UI树的遍历主要是给每一个元素计算坐标变换矩阵,以及根据指定的逻辑深度排序,生成正确的绘制顺序。每个节点别遍历之后,讲发送绘制命令至绘制栈;
6、渲染系统根据员孙的globalZorder进行绘制,绘制完毕,交换前后缓冲区,将当前帧的内容回到屏幕上;
7、poolManger释放当前所有的autorelease对象;所以我们只关心对象的创建和使用,不需要关心其释放;
每一个步骤都会计入Ref对象类型的Ref对象,所以销毁的内容就比较清楚了

5.Ref的子类有:
事件、Event, EventDispatcher, EventListener,
动画、Action, ActionManager, Animation, Animation3D, AnimationCache, AnimationCurve< componentSize >, AnimationFrame,;
物理、Physics3DConstraint, Physics3DObject, Physics3DShape, Physics3DWorld,PhysicsShape,
渲染、RenderState, RenderState::StateBlock
文件、联网等;

安装 pip
先下载 pip 下载地址是:https://pypi.python.org/pypi/pip#downloads
选择 :pip-9.0.1.tar.gz 文件进行下载(版本随意)

下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:

python setup.py install

同样,在安装pip后需先配置环境变量, pip 指令才能生效
找到 python 安装路径下 的 scripts 目录下,复制改路径,例如我的:
C:\Users\pandap\AppData\Local\Programs\Python\Python36-32\Scripts

纹理加载进内存以后占用内存计算公式是:
纹理内存(字节) = 宽 * 高 * 像素字节
像素字节 = 像素通道数(R/G/B/A) * 通道大小
也就是说:运行时大小 = 长x宽x每个像素占的大小

举例:rgba8888 表示的是通道rgba每个通道都占用8bit那么也就是一个像素占用了4bytes
故,图片大小若为1024x1024,则大小=1024x1024x4/1024/1024 = 4M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值