cocos2d-x检测碰撞,并显示标记

本文详细介绍了如何在cocos2d-x游戏中使用BOX-2d库进行碰撞检测,并展示了如何在发生碰撞时有效地显示标记,帮助开发者优化游戏交互体验。
摘要由CSDN通过智能技术生成
h文件
</pre><pre name="code" class="html"><pre name="code" class="cpp">#ifndef _BOX2D_TEST_H_
#define _BOX2D_TEST_H_

#include "cocos2d.h"
#include "Box2D/Box2D.h"

using namespace cocos2d;
class ContactListener;
class PhysicSprite :public CCSprite
{
public:
	PhysicSprite();
	void setPhysicsBody(b2Body* body);
	virtual bool isDirty();
	virtual CCAffineTransform nodeToParentTransform(void);
private:
	b2Body* m_pBody;
};

class Box2DTestLayer :public CCLayer
{
	CCTexture2D* m_pSpriteTexture;
	b2World* world;
	b2ContactListener* contactListener;

public:
	Box2DTestLayer();
	~Box2DTestLayer();
	void init_physics();
	void createResetButton();
	void reset(CCObject* pSender);
	void addNewSpriteAtPosition(CCPoint p);
	void update(float dt);
	virtual void ccTouchesEnded(CCSet* touches, CCEvent* event);


};

class Box2DTestScene:public CCScene
{
public:
     void runThisTest();
};


class ContactListener : public b2ContactListener
{
private:
	//两个物体开始接触时会响应
	virtual void BeginContact(b2Contact* contact);
	//分离时响应
	virtual void EndContact(b2Contact* contact);
public:
	void callback1(CCNode* pSender);
};

#endif


 
cpp文件:
</pre><pre name="code" class="html">#include "Box2dTest.h"
#include "cocos-ext.h"
#include "VisibleRect.h"

USING_NS_CC_EXT;

#define PTM_RATIO 32

enum
{
	kTagparent = 1,     //碰撞小球tag
	kTagSpriteContact=2,//标记碰撞点红色的tag
};


Box2DTestLayer::Box2DTestLayer()
:m_pSpriteTe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值