`
文章列表
在编译遗留代码的时候突然冒出来这么一个错误 is not a direct base of,着实吓了一跳,这么遇到这么奇怪的错误呢。其实仔细一看,也不是太出乎意料,我将代码缩减了一下,基本思路如下: class A { public: A(int) {} A(const char*) : A(1) {} }; int main(int ac, char **av) { A a("hello"); } 如果对 C++ 熟悉的人一眼就看出来了错在哪里,在 constructor 中不能调用其他的 constructor。 ...
就在昨天,unity3d发布了4.2版本,最近的更新速度真是够快啊。主要加入了对Windows Phone和Windows Store的支持。另外还加入了BlackBerry10的支持。也就是说,你只要有个unity工程,只需要导出到不同的平台,基本上都可以搞定。真的是造福开发者啊。 cocos2d-x现在也就只能ios和android可以方便的编译,其他的native平台,比如mac,linux,windows,也可以,但遇到键盘等操作的时候可能就会有些问题。 在这个4.2的版本中,还加入了期待已久的quad支持,这样就不用plane来做一个sprite了,也可以不用脚本来生成了。 其他 ...
我们在使用 cocos2dx 进行跨平台开发的时候,一种情景是我们在 mac 上利用 xcode 的开发环境进行开发。当我们把代码放到 android ndk 上,想编译成 android 应用的时候,有时候会出现编译错误,这主要是我们在 mac 上的时候,在 C++ 代码里使用了过多的 C++11 功能,比如像 auto 之类。 xcode 默认是使用 clang 的编译器,而 NDK 上现在还是默认 gcc 的编译器。 我们从 Android NDK 的 revision 8e 的发布声明上可以看到: 引用Added Clang 3.2 compiler. GCC 4.6 is sti ...
偶尔需要用到,记录一下: Debian 6 默认不安装 sudo, 所以需要安装这个有用的工具 apt-get install sudo 接下来需要设立 sudo 的权限,我们不建议手动修改 /etc/sudoers 这个文件,而是使用 visudo 来修改。可以再中间添加一行 user-name ALL=(ALL) NOPASSWD:ALL apt-get install zsh 我比较喜欢用 zsh,加上 oh-my-zsh 的脚本非常的不错。 切换 shell 的环境可以使用 chsh -s /bin/bash 来搞定
现在有这样的一个需求,需要将资源文件中的-hd.png转化成对应的.png文件。因为在新的 cocos2dx 中,已经不再使用后缀的形式的来搜索对应的高清资源文件,而是需要我们把对应的高清文件放到一个专门的目录下面,之后我们可以通过设置资源的搜索路径来搞定。 这里,我写了一个简单的脚本,希望可以帮到大家,默认做的事情就是夺取当前目录下的所有以 png 结尾的文件,然后将 -hd.png 的文件自动重命名为 .png,如果发现有些文件没有对应的高清文件,那么就自动跳过,但是不用担心,我会把漏掉的那些文件显示在终端上,方便我们核对和进行后处理。 代码如下,我也放了一份在 github gist ...
自己在前面的几篇中讲到用svn来回退历史是比较麻烦的。其中提到用git是比较方便的。 git的话,只需要用下 git revert <commit-name> 就可以了。 同样的需求,有人会问,我怎么把当前自己的修改去掉呢? 同样的,介于git的复杂程序,要分下面几种情况来分析: 如果你的修改已经在commit历史里面了,那么一种方式就是直接使用revert命令,但是某些人有洁癖,因为revert的命令会产生一个新的commit,这个commit的动作时将所指定的commit取消掉,因此,某些人可能更希望直接修改某个历史上的commit,或者去除掉它。现在我们假设你的前面第 ...
今天在自己的 VPS 上编译点小东西,但是竟然不断的出现 gcc: internal error 的事情,起初还以为自己安装的系统有问题,但后来转念一想,应该是自己的 VPS 的内存太小了,只有 512 M,而且已经用掉一部分了,并且连 swap 分区也没有挂,那么当遇到需要分配内存的时候,就直接失败了,或者直接被 OOM kill 掉了。 我一升级到 1024M,马上就没有这个问题了。不错!学习了。
昨天还遗留了一点没有做完的,就是点击加入tower和tower产生子弹。 从RaycastHit可以拿到被碰到的object,可以通过hit.transform.gameObject来获取。 InvokeRepeating()可以不间断的来调用某个函数,在这里作为简单的子弹实现已经够了。 遇到的一些问题,因为tower的box collider被打开了,因此子弹和塔有碰撞,发射的不是很好,有弹出的现象。这个可以通过disable塔的box collider来解决。 刚开始的几个子弹的轨迹明显不对,这个可以通过调节InvokeRepeating的开始参数来解决,也就是说,不要它马上进行sp ...
svn 里面历史回滚比较麻烦,不像 git 那么方便。 如果本地的修改,还没有 commit 到代码仓库里面,那么我们可以直接使用 svn revert 来搞定。 如果这个修改已经进入 svn 的历史,那么相对麻烦些,基本的思路是这样的,我们利用 merge 这个命令。 svn merge -r 100:99 注意这里的版本大小关系是反过来的。 由于 svn 的设置文件不是明文的,所以不像 git 那么可以直接通过修改文件来搞定,修改 svn 仓库的地址需要我们调用 svn switch --relocate <old-url> <new-url> 来实 ...
这次是看了PushyPixels的第8讲塔防1部分,作者在其中给我们演示了如何建立一个简答的塔防类型游戏,但其中有几点: 地面使用的Plane物体。 怪物的走路点的判断,他使用了rigidbody,但实际上可以直接判断是否接近陆点,用Vector3.Distance()来算。 两个物体能够产生trigger事件,需要不是trigger的那一方有rigidbody组件挂在上面,按照官方的文档说法: "Note that trigger events are only sent if one of the colliders also has a rigidbody attached. ...
cocos2dx 在 ios 上默认不打开多点触摸设置,需要我们手动设置一下,不过设置也非常的方便,只需要在你工程的 AppController.mm 里面在申请 __glView 之后,加入下面的一行:[__glView setMultipleTouchEnabled:YES];即可。
本来想整合 umeng 的 SDK 来对自己的应用进行分析,但是在整合的过程中遇到了一些问题,现记录如下: 首先,默认的 umeng SDK 是基于 objective-c 的,这就导致不能直接在 cocos2d-x 中使用。在 cpp 文件中不能调用 objective-c,一定要转 ...
Global site tag (gtag.js) - Google Analytics