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));

};

}

}

PhysicsJoint的更多相关文章

  1. cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界

    Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的封装让开发人员能够更快更好的将物理引擎的机制加入�到自己的游戏中,简化的设计是从2. ...

  2. cocos2d-x 3.x 物理碰撞机制

    近期又弄了物理引擎.写一下吧,以下有在其它博客学习到的知识.加上自己的理解,总结下. cocos2d-x 3.X 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的 ...

  3. Cocos2d-x 2.x 升级为 3.x 常见变化纪录

    1.去CC 之前2.0的CC**,把CC都去掉,主要的元素都是保留的 2.0 CCSprite  CCCallFunc CCNode .. 3.0 Sprite CallFunc Node .. 2. ...

随机推荐

  1. Appium 在Win7环境下搭建

    (一) Java环境准备 安装java sdk 环境变量配置:JAVA_HOME=D:\Program Files\Java\jdk1.8.0_92 PATH设置:%JAVA_HOME%\bin 验证 ...

  2. LeetCode题目----求中位数---标签:Array

    题目难度---困难 题目要求: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 思路:第一眼 ...

  3. sdut 2878 圆圈

    [ 题目描述]现在有一个圆圈, 顺时针标号分别从 0 到 n-1, 每次等概率顺时针走一步或者逆时针走一步,即如果你在 i 号点,你有 1/2 概率走到((i-1)mod n)号点,1/2 概率走到( ...

  4. [洛谷]P3729 曼哈顿计划EX(最小割树/等价流树)

    题目大意:给出一张n个点m条边的无向图,每个点有点权,q次询问,每次给出k,要求选出若干个点点权之和不小于k,求一个最大的值x,使得选出的点中任意两点之间至少有x条互不相交的链.(n<=550, ...

  5. Codeforces Round #430 B. Gleb And Pizza

    Gleb ordered pizza home. When the courier delivered the pizza, he was very upset, because several pi ...

  6. bzoj1913[Apio2010]signaling 信号覆盖 计算几何

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1583  Solved: 646[Subm ...

  7. c语言第四次作业

    (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...

  8. C语言程序设计预报作业

    1. 阅读邹欣老师的博客--师生关系,针对文中的几种师生关系谈谈你的看法,你期望的师生关系是什么样的? 答:万物都是变化的,师生关系也一样.小学中学把老师看作春蚕,蜡烛的的比喻到了大学显然行不通了.大 ...

  9. c语言第四次作业e

    ---恢复内容开始--- (一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"Th ...

  10. IOS JavaScriptCore介绍

    本文主要转自:https://www.jianshu.com/p/cdaf9bc3d65d http://blog.csdn.net/u011993697/article/details/515772 ...