1
PhysicsJoint的使用

T09Join.h

#ifndef__T09Joint_H__

#define__T09Joint_H__

#include"T32.h"

classT09Joint:
publicLayer

{

public:

CREATE_FUNC(T09Joint);

voidonEnter();

PhysicsWorld*getPhysicsWorld()

{

return((Scene*)getParent())->getPhysicsWorld();

}

Sprite*_A;

Sprite*_B;

Sprite*_C;

};

#endif

T09Join.cpp

#include"T09Join.h"

voidT09Joint::onEnter()

{

Layer::onEnter();

PhysicsBody*bodyA;

PhysicsBody*bodyB;

{

PhysicsBody*body=
PhysicsBody::createCircle(20);

bodyA=
body;

Sprite*sprite=
Sprite::create();

_A=
sprite;

sprite->setContentSize(Size(40,40));

sprite->setPhysicsBody(body);

sprite->setPosition(winSize.width/
2 - 50, winSize.height/
2 + 100);

addChild(sprite);

}

{

//PhysicsBody*body
= PhysicsBody::createEdgeBox(Size(40, 40));

PhysicsBody*body=
PhysicsBody::createBox(Size(40,40));

bodyB=
body;

Sprite*sprite=
Sprite::create();

sprite->setContentSize(Size(40,40));

_B=
sprite;

sprite->setPhysicsBody(body);

sprite->setPosition(winSize.width/
2 + 50, winSize.height/
2 + 100);

addChild(sprite);

}

{

PhysicsBody*body=
PhysicsBody::createEdgeBox(winSize,PhysicsMaterial(1.0f,1.0f,
0.0f));

Sprite*sprite=
Sprite::create();

addChild(sprite);

sprite->setPhysicsBody(body);

sprite->setPosition(winSize.width/
2, winSize.height/
2);

}

//
PhysicsJoint*joint = PhysicsJointDistance::construct(bodyA, bodyB, Vec2(0, 0),Vec2(0, 0));

//
PhysicsJoint*joint = PhysicsJointSpring::construct(bodyA, bodyB, Vec2(0, 0),Vec2(0, 0), 500.0f, 500.0f);

//
PhysicsJoint*joint = PhysicsJointPin::construct(bodyA, bodyB,Vec2(winSize.width / 2, winSize.height / 2));

PhysicsJoint*joint=
PhysicsJointMotor::construct(bodyA,bodyB,1.0);

{

autoev=
EventListenerTouchOneByOne::create();

ev->onTouchBegan=
[&](Touch*touch,Event*){

Pointpt=
touch->getLocation();

if(_A->getBoundingBox().containsPoint(pt));

{

_C=
_A;

returntrue;

}

if(_B->getBoundingBox().containsPoint(pt))

{

_C=
_B;

returntrue;

}

returnfalse;

};

ev->onTouchEnded=
[&](Touch*pTouch,Event*){

Vec2pt=
pTouch->getLocation()-
pTouch->getStartLocation();

_C->getPhysicsBody()->setVelocity(Vec2(pt));

};

}

}

最新文章

  1. WCF 下载“http://localhost:XXX”时出错。无法连接到远程服务器。由于目标计算机积极拒绝,无法连接。
  2. C# 创建一个日志文件
  3. mybatis0205 一对多查询 复杂
  4. 提取所有mtk机型的线刷包
  5. iOS CAReplicatorLayer 实现脉冲动画效果
  6. 【NOIP模拟】board(线段树维护二进制,树序号化为二进制)
  7. Duilib第一步(I)-简介与环境搭建
  8. Zeromq自连接错误
  9. Linux下一些简单常用命令的总结
  10. Hadoop_CDH安装
  11. Microsoft Windows CVE-2017-8464 LNK 远程代码执行漏洞(复现)
  12. python之组合与重用性
  13. Linux 访问权限
  14. selenium_unittest基本框架
  15. memcached程序端口监控脚本
  16. 【BZOJ1800】[AHOI2009]飞行棋(暴力)
  17. mod(%)之规律(除数与被除数的正负分析)
  18. Window Server 2008 R2系统备份
  19. 【题解】Luogu P3740 [HAOI2014]贴海报
  20. Win10 使用命令修复系统坏死点

热门文章

  1. Virtual Box下虚拟机复制后ip地址重复
  2. 线段树——codevs 1690 开关灯
  3. [Luogu 1919]【模板】A*B Problem升级版(FFT快速傅里叶)
  4. [NOIp 2014]解方程
  5. 洛谷mNOIP模拟赛Day2-将军令
  6. HDU2256(矩阵)
  7. bzoj3309DZY Loves Math
  8. django rest-framework 4.REST的认证和权限
  9. 使用json-Server与postman快速模拟服务环境搭建
  10. 视频人脸检测——OpenCV版(三)