Cocos2d-JS 实现将TiledMap中的每个 tile 变成物理精灵的方法

 How to generate a physics body from a tiledmap 

 

  鄙人在网上找了许久都未找到方法,说句实在话,Cocos2d官方给出的与物理引擎相关的内容真的不是很多,而且好水!目前市场上的关于Cocos2d-JS的书籍本身就不多,况且甚至没有提及如何将瓦片地图转为物理精灵的方法。

 

  在查询了很多Cocos2d-X 的资料后才发现,Cocos2d 的 Node 节点 都存有一个  setPhysicsBody( physicsBody ) 的方法,而我们可以通过 getTileAt( tileCoord ) 获取每个 Tile 的精灵。

  显然精灵肯定是继承或者间接继承自 Node 节点的,所以,只要在获取 每个 Tile 的精灵后,使用 setPhysicsBody 方法,即可将 每个 Tile 物理精灵化,将 每个 Tile 带进物理世界,这样就可以利用Chipmunk 或者 Box2d 愉快的进行碰撞检测了。

 

1 var setPhysicsBody( var body )


注解
如果body非空,这个方法将会设置锚点为Vec2::ANCHOR_MIDDLE, 并且当有物理body存在的情况下你不可以改变这个锚点。


参数
body 附加给节点的物理body

 但是,好像JS没有实现这个方法,真是悲剧

你可能感兴趣的:(Cocos2d-JS 实现将TiledMap中的每个 tile 变成物理精灵的方法)