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. Python基础Day01

    Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  2. codeforces 842D Vitya and Strange Lesson

    题目大意: 定义mex数为数组中第一个没有出现的非负整数.有m个操作,每个操作有一个x,将数组中所有的元素都异或x,然后询问当前的mex Input First line contains two i ...

  3. 计蒜客NOIP模拟赛(2) D1T2 表演艺术

    凡和邻家男孩玩完了纸牌,兴致很高,于是准备了一场表演艺术对抗赛. 他特意请来了很多表演艺术家,分成绿黑两队,进行名为 PK,实则捞金的表演. 凡为了捞金,开设了一个赌局,在比赛开始之前招揽人们来押注谁 ...

  4. [SDOI2005]反素数

    题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...

  5. ●BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3926题解&&代码: 后缀自动机,Trie树 如果以每个叶子为根,所有的子串一 ...

  6. 「LibreOJ NOIP Round #1」旅游路线

    Description T 城是一个旅游城市,具有 nnn 个景点和 mmm 条道路,所有景点编号为 1,2,...,n1,2,...,n1,2,...,n.每条道路连接这 nnn 个景区中的某两个景 ...

  7. BZOJ1187 [HNOI2007]神奇游乐园(插头dp)

    麻麻我会写插头dp了! 推荐陈丹琦论文:https://wenku.baidu.com/view/3e90d32b453610661ed9f4bd.html 破题调一年 #include <cs ...

  8. 5-15 QQ帐户的申请与登陆 (25分) HASH

    实现QQ新帐户申请和老帐户登陆的简化版功能.最大挑战是:据说现在的QQ号码已经有10位数了. 输入格式: 输入首先给出一个正整数NN(\le 10^5≤10​5​​),随后给出NN行指令.每行指令的格 ...

  9. Awesome-Text-Classification:文本分类资源合集

    Awesome-Text-Classification https://github.com/fendouai/Awesome-Text-Classification Projects fastTex ...

  10. MySQL数据库将多条记录的单个字段合并成一条记录

    原SQL AND acc.id = accRole.acc_id) AND accRole.role_id = T_PM_ROLE.id ORDER BY acc.id 结果,有一个人有两个角色,如果 ...