cocos2d-x节点(CCPhysicsShape.h)API

来源:互联网 发布:win7不能启用网络发现 编辑:程序博客网 时间:2024/05/18 03:38

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-x节点(CCPhysicsShape.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

///cocos2d-x-3.0alpha0/cocos2dx/physics//模拟现实世界的形状,圆形,链形,段状,对变形.....#include "CCPhysicsSetting.h"#ifdef CC_USE_PHYSICS#ifndef __CCPHYSICS_SHAPE_H__#define __CCPHYSICS_SHAPE_H__#include "cocoa/CCObject.h"#include "cocoa/CCGeometry.h"NS_CC_BEGINclass PhysicsShapeInfo;class PhysicsBody;class PhysicsBodyInfo;/**  * @brief body 的形状. 你不应该直接创建 PhysicsWorld 对象; 相反,你可以从一个 Scene 对象里面得到它. */class PhysicsShape : public Object{public:    enum class Type    {        UNKNOWN,        CIRCLE,        BOX,        POLYGEN,        EDGESEGMENT,        EDGEBOX,        EDGEPOLYGEN,        EDGECHAIN,    };    public:    inline PhysicsBody* getBody(){ return _body; }    inline Type getType() { return _type; }    protected:    bool init(PhysicsBody* body, Type type);        /**     * @brief PhysicsShape 是 PhysicsBody's 的朋友类 class, 但是所有的子类不是.所以这种方法用于子类从 PhysicsBody 获取 bodyInfo..     */    PhysicsBodyInfo* bodyInfo() const;        void addToBody();    protected:    PhysicsShape();    virtual ~PhysicsShape() = 0;    protected:    PhysicsBody* _body;    PhysicsShapeInfo* _info;    Type _type;        friend class PhysicsWorld;    friend class PhysicsBody;};/** A circle shape */           //一个圆形状class PhysicsShapeCircle : public PhysicsShape{protected:    static PhysicsShapeCircle* create(PhysicsBody* body, float radius, Point offset = Point(0, 0));    bool init(PhysicsBody* body, float radius, Point offset = Point(0, 0));    protected:    PhysicsShapeCircle();    virtual ~PhysicsShapeCircle();        friend class PhysicsBody;};/** A box shape */      //一个盒子形状class PhysicsShapeBox : public PhysicsShape{protected:    static PhysicsShapeBox* create(PhysicsBody* body, Size size, Point offset = Point(0, 0));    bool init(PhysicsBody* body, Size size, Point offset = Point(0, 0));    protected:    PhysicsShapeBox();    virtual ~PhysicsShapeBox();        friend class PhysicsBody;};/** A polygon shape */      //多边形的形状class PhysicsShapePolygon : public PhysicsShape{protected:    static PhysicsShapePolygon* create(PhysicsBody* body, Point* points, int count, Point offset = Point(0, 0));    bool init(PhysicsBody* body, Point* points, int count, Point offset = Point(0, 0));    protected:    PhysicsShapePolygon();    virtual ~PhysicsShapePolygon();        friend class PhysicsBody;};/** A segment shape */      //一个段的形状class PhysicsShapeEdgeSegment : public PhysicsShape{protected:    static PhysicsShapeEdgeSegment* create(PhysicsBody* body, Point a, Point b, float border = 1);    bool init(PhysicsBody* body, Point a, Point b, float border = 1);    protected:    PhysicsShapeEdgeSegment();    virtual ~PhysicsShapeEdgeSegment();        friend class PhysicsBody;};/** An edge box shape */        //一个边缘是框形状class PhysicsShapeEdgeBox : public PhysicsShape{public:    static PhysicsShapeEdgeBox* create(PhysicsBody* body, Size size, float border = 0, Point offset = Point(0, 0));    protected:    bool init(PhysicsBody* body, Size size, float border = 1, Point offset = Point(0, 0));    protected:    PhysicsShapeEdgeBox();    virtual ~PhysicsShapeEdgeBox();        friend class PhysicsBody;};/** An edge polygon shape */        //一个边缘是多边形形状class PhysicsShapeEdgePolygon : public PhysicsShape{public:    static PhysicsShapeEdgePolygon* create(PhysicsBody* body, Point* points, int count, float border = 1);    protected:    bool init(PhysicsBody* body, Point* points, int count, float border = 1);    protected:    PhysicsShapeEdgePolygon();    virtual ~PhysicsShapeEdgePolygon();        friend class PhysicsBody;};/** a chain shape */        //链形class PhysicsShapeEdgeChain : public PhysicsShape{public:    static PhysicsShapeEdgeChain* create(PhysicsBody* body, Point* points, int count, float border = 1);    protected:    bool init(PhysicsBody* body, Point* points, int count, float border = 1);    protected:    PhysicsShapeEdgeChain();    virtual ~PhysicsShapeEdgeChain();        friend class PhysicsBody;};NS_CC_END#endif // __CCPHYSICS_FIXTURE_H__#endif // CC_USE_PHYSICS