【Box2D】如何做地形破坏(多边形破坏)及如何构建“凹”的多边形

前言:这里首先要感谢站点emanueleferonato提供了大量有价值的文章,感谢b2Separator作者 Antoan Angelov,Clipper的作者 Angus Johnson,感谢开源。

这里我所说的多边形破坏,指的是将一个现有的多边形挖去一部分,比如挖一个洞之类的。要做到这点,首先第一个问题是,如何去构建一个“凹”的多边形,因为Box2D本身是不支持凹多边形的。然后我们才能再去做“挖”这个动作。

经过两天的奋斗,终于是把这个事情给搞定了,放张效果图先(四边形被打出一个圆形的孔洞)。

polygon_break

继续阅读

cocos2d-x中搭配Box2D使用PhysicsEditor

最近开始使用cocos2dx里的物理引擎,多边形是必不可少的,如果是自己手写顶点的话就太……了。所幸的是已经有人做了一款支持导入的软件,它就是PhysicisEditor(下载地址)(除了Box2D外,也支持chipmunk等多款引擎),而且Example中自带cocos2dx的解析CPP(已经过时,不过我已经修改了下,使其支持最新的cocos2dx 3.0 alpha1,打算跟作者沟通下,让其更新出去),这款软件虽然不是免费的,但是可以通过向作者发申请来获得授权(鄙人就是这么得到的,呵呵)。

申请license网址:http://www.codeandweb.com/request-free-license 

好了,废话不多说,简介下这款软件,界面如下图: 继续阅读

【cocos2d-x】控制台直接输入Lua指令

用脚本进行开发,如果不能实时去输入指令,就丧失了脚本的一大特色,所以对cocos2d-x程序稍微修改下,使其可以直接从控制台读入lua指令,方便调试。

改进版见这里

这里我们采用最简单的方法,直接修改main.cpp。

1 首先在行首加入lua的引用,如下

#include "main.h"
#include "AppDelegate.h"
#include "cocos2d.h"
#include "CCLuaEngine.h"

2 在main函数前面插入以下代码

继续阅读