关于如何使用PhysicsEditor创建多边形形状请参考http://www.2cto.com/kf/201408/327977.html,在此就不多说了,关键是在读取的时候感觉作者那样有点麻烦,在此做了一些改动,希望能帮到需要的朋友,如有不对请留言。谢谢。
直接上代码。
physical.h
#ifndef __PHYSICAL_
#define __PHYSICAL_
#include "cocos2d.h"
using namespace cocos2d;
#define NUM_OF_ENEMY 2
class Physical :public Layer{
protected:
virtual bool init();
PhysicsWorld* m_world;
void setPhysicalWord(PhysicsWorld * word){m_world = word;};
char* vertexesFlies[NUM_OF_ENEMY];
public:
CREATE_FUNC(Physical);
static Scene * createScene();
Physical();
std::vector<std::vector<Vec2>> getPhysicsShapeByName(const char * name);
std::map<std::string, std::vector<std::vector<Vec2>>> vertexesMap;
std::vector<std::vector<Vec2>> getPhysicsShapeVertexesFromFile(const std::string plistFile);
void loadShapes();
void initPhysicsBody(int index,Sprite * sp);
void onEnter();
};
#endif
Physical.cpp
#include "Physical.h"
int ball1Mask = 1 << 0;//球1
int ball2Mask = 1 << 1;//球2
int wallMask = 1 << 2;//地面
Physical::Physical(){
vertexesFlies[0] = "paoku1.plist";