VSCode 添加代码模板

节选自:VSCode 添加代码模板


Snippets内容使用JSON格式进行定义。
一个JavaScript例子

{
    "For_Loop": {
        "prefix": "for",
        "body": [
          "for (const ${2:element} of ${1:array}) {",
          "\t$0",
          "}"
        ],
        "description": "For Loop"
    }
}
  • For_Loop: 当前snippet名字。
  • prefix: 前缀,代码块使用快捷方式;键入前缀,按tab键,代码块就会被使用。
  • body: 代码块内容;换行使用\r\n。
  • description: 键入前缀,vscode 感知到前缀,显示的说明内容。
  • $1,$2,$0: 指定代码模块生成后,编辑光标出现位置; 使用Tab键进行切换(编辑光标按$1,$2,$3…$0的顺序跳转),$0是光标最后可切换位置。

# Snippet语法

## Tabstops

$1,$2指定代码块生成后,光标出现的位置;不同位置的相同$1位置同时出现光标。

## Placeholders

给光标出现位置加上默认值;例如,${1:another ${2:placeholder}};$1处位置默认值是another。

## Choice

光标位置设置多个值可供选择; 例如,${1|one,two,three|};$1位置处可以选择one,two,three中一个词填充在此处。

## Variables

  • 常用变量
    • TM_SELECTED_TEXT 当前选中内容或空字符串
    • TM_CURRENT_LINE 当前行内容
    • TM_CURRENT_WORD 光标处字符或空字符串
    • TM_LINE_INDEX 从0开始的行号
    • TM_LINE_NUMBER 从1开始的行号
    • TM_FILENAME 当前被编辑文档名
    • TM_FILENAME_BASE 当前被编辑文档名,没有后缀
    • TM_DIRECTORY 当前被编辑文档目录
    • TM_FILEPATH 当前被编辑文档全路径
    • CLIPBOARD 当前剪切板内容
  • 日期和时间相关变量
    • CURRENT_YEAR 当前年
    • CURRENT_YEAR_SHORT 当前年后两位
    • CURRENT_MONTH 月份,两位数字表示,例如02
    • CURRENT_MONTH_NAME 月份全称,例如 ‘July’
    • CURRENT_MONTH_NAME_SHORT 月份简写 ,例如’Jul
    • CURRENT_DATE 某天
    • CURRENT_DAY_NAME 星期几, 例如’Monday’)
    • CURRENT_DAY_NAME_SHORT 星期几的简写, ‘Mon’
    • CURRENT_HOUR 小时,24小时制
    • CURRENT_MINUTE 分钟
    • CURRENT_SECOND 秒数

变量格式化

${TM_FILENAME/(.*)\\..+$/$1/}
  |           |         |  |
  |           |         |  |-> no options
  |           |         |
  |           |         |-> references the contents of the first
  |           |             capture group
  |           |
  |           |-> regex to capture everything before
  |               the final `.suffix`
  |
  |-> resolves to the filename

【转】CocosCreator之控制游戏速率实现倍速与慢动作

节选自:CocosCreator之控制游戏速率实现倍速与慢动作


// 游戏速率变量
cc.director._kSpeed = 1;

var _originCalculateDeltaTime = cc.Director.prototype.calculateDeltaTime;
cc.director.calculateDeltaTime = function (now) {
    _originCalculateDeltaTime.call(this, now);
    this._deltaTime *= this._kSpeed;
}

// 将方法挂到 cc 对象上
cc.kSpeed = function (speed) {
    cc.director._kSpeed = speed;
}

CocosCreator 微信分享屏幕截图(IOS+安卓)完整解决方案!

微信分享图片,对缩略图的大小是有要求的,笔者被这个坑的很惨。笔者开发的游戏分辨率为1280*720,安卓缩略图大小为128*72,IOS缩略图大小为256*144.

笔者直接贴代码了,详细的注释代码里面都有的。

JS部分
继续阅读CocosCreator 微信分享屏幕截图(IOS+安卓)完整解决方案!

CocosCreator 打包安卓项目出现【dlopen failed: cannot locate symbol “rand” referenced by “libcocos2djs.so”】原因分析与解决方案!

首先,笔者使用的是最新的CocosCreator 1.5.1版本。开发环境是mac。

安装配置原生开发环境使用的是官网提供的教程

Cocos官网提供的安卓SDK包含三个版本的api,分别是10,20,22.

出现标题中的问题的原因是编译项目时选择了22的api。

解决方案很简单,编译项目时选择10的api就好了。

还有一个最简单的方法,CocosCreator 1.5.1版本已经提供了预编译库文件,选择模板的时候,选择binary就可以直接使用已经编译好的库文件了,这样速度会提高很多。

不过切换api的时候,别忘了把以前编译的东西删除掉。如果不知道删除啥,直接把当前项目下的build文件夹删除掉就可以了,这个是默认的发布路径。如果已经进行了安卓平台的开发的话,可以删除安卓项目目录下的obj文件夹。

PS:笔者特意测试了下,使用20版本的api也是可以编译成功的。不过这里的话,还是推荐使用10版本的api来进行编译。编译模板推荐使用binary,也就是使用预编译库文件,毕竟修改源码什么的,应该很少才对吧。如果想修改安卓api版本的话,可以先使用10版本的api编译出来,然后在安卓项目里面切换api版本,这样也不会有问题。

最后附上笔者打包发布的设置截图。

继续阅读CocosCreator 打包安卓项目出现【dlopen failed: cannot locate symbol “rand” referenced by “libcocos2djs.so”】原因分析与解决方案!

【转】Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题

转载自:Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题

2014-05-26

导语:Cocos2dx在安卓上移植的时候,加入第三方库,却发现新加的so库被删掉了

继续阅读【转】Cocos2d-X学习——Android移植,使用第三方库.so被删掉问题

使用cocos2d-x发布apk时遇到的问题以及解决方案

问题描述:

make.exe: *** No rule to make target `XXXX.cpp', needed by `XXXX.o'. Stop.

问题原因分析:

首先,在Eclipse的安卓项目builders中默认有一个CDT Builder。而我们配置builders的时候会新建一个builder,新建的builder使用了ndk-build.cmd进行编译。

这两个builder的用途是一样的,编译c++。但是这两个编译器是不兼容的,使用其中一个编译后再使用另外一个编译的话会出现问题。

由于CDT Builder会自动编译,在我们配置新Builder的时候就已经编译了。然后我们配置结束后使用新的Builder编译时就会出现上面的这个问题。

问题解决方案:

关闭CDT Builder

删除proj.android文件夹下的obj文件夹

cocos2d-x事件类发布

在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。

在下通宵了一个晚上,写出了该事件类。

谨记,该事件只能用于cocos2d-x中。

事件发送者需要继承EventDispatcher类

事件接收者需要继承EventHandle类,还需要实现handleEvent方法

事件发送者和事件接收者要在构造函数和析构函数中调用一下方法

事件发送者和事件接收者必须是CCObject的子类

下载地址:cocos2d-x事件类