刚体的上衣——b2BodyDef.userData
来源:互联网 发布:centos怎么安装samba 编辑:程序博客网 时间:2024/04/25 15:16
在前面的教程中,我们学会了如何创建矩形刚体、圆形刚体和静止不动的刚体。但是学了那么久,看到的总是些小框框,没有任何的图形,我相信,这个肯定满足不了你。
那么今天我们就来学习一下如何给刚体穿上"皇帝的上衣"。
在创建"刚体需求"时(如果你对"刚体需求"不是了解,请参考"掉落的苹果——b2Body"),可以通过userData属性给刚体准备一套'衣服",这套"衣服"通常是AS3中的DisplayObject对象,但可以是任何对象类型。
//1.创建刚体需求b2BodyDef
var bodyRequest:b2BodyDef = new b2BodyDef();
bodyRequest.position.Set(posX / 30, posY / 30);//记得米和像素的转换关系
//Ladeng6666是Flash元件库中的一个图片
bodyRequest.userData = new Ladeng6666();
//设定上衣的尺寸
bodyRequest.userData.width = 60;
bodyRequest.userData.height = 60;
//将上衣添加到舞台上
addChild(bodyRequest.userData);
但是在"认识Box2D世界"时,我们知道,Box2D只是一个物理引擎,它与AS3没有直接的联动关系。就是像MVC一样,view需要根据model的数据实时更新显示。同样刚体的"衣服"也要跟着刚体走。这一点实现起来很简单,只要获取b2Body的position和angle,然后再把'衣服"放到相同的位置和角度就可以了。
for (var body:b2Body = world.m_bodyList; body; body=body.GetNext()) {
if (body.m_userData != null) {
body.m_userData.x = body.GetPosition().x * 30;
body.m_userData.y = body.GetPosition().y * 30;
body.m_userData.rotation = body.GetAngle() * 180 / Math.PI;
}
}
我继续使用了"掉落的苹果——b2Body刚体"里的示例,效果如下:
代码跟"掉落的苹果——b2Body"中没有很大的改动,只要复制上面的代码,覆盖刚体需求部分代码就可以了。
那么今天我们就来学习一下如何给刚体穿上"皇帝的上衣"。
在创建"刚体需求"时(如果你对"刚体需求"不是了解,请参考"掉落的苹果——b2Body"),可以通过userData属性给刚体准备一套'衣服",这套"衣服"通常是AS3中的DisplayObject对象,但可以是任何对象类型。
//1.创建刚体需求b2BodyDef
var bodyRequest:b2BodyDef = new b2BodyDef();
bodyRequest.position.Set(posX / 30, posY / 30);//记得米和像素的转换关系
//Ladeng6666是Flash元件库中的一个图片
bodyRequest.userData = new Ladeng6666();
//设定上衣的尺寸
bodyRequest.userData.width = 60;
bodyRequest.userData.height = 60;
//将上衣添加到舞台上
addChild(bodyRequest.userData);
但是在"认识Box2D世界"时,我们知道,Box2D只是一个物理引擎,它与AS3没有直接的联动关系。就是像MVC一样,view需要根据model的数据实时更新显示。同样刚体的"衣服"也要跟着刚体走。这一点实现起来很简单,只要获取b2Body的position和angle,然后再把'衣服"放到相同的位置和角度就可以了。
for (var body:b2Body = world.m_bodyList; body; body=body.GetNext()) {
if (body.m_userData != null) {
body.m_userData.x = body.GetPosition().x * 30;
body.m_userData.y = body.GetPosition().y * 30;
body.m_userData.rotation = body.GetAngle() * 180 / Math.PI;
}
}
我继续使用了"掉落的苹果——b2Body刚体"里的示例,效果如下:
代码跟"掉落的苹果——b2Body"中没有很大的改动,只要复制上面的代码,覆盖刚体需求部分代码就可以了。
- 刚体的上衣——b2BodyDef.userData
- 掉落的苹果——b2Body刚体
- 让刚体听我的——鼠标拖动Box2D刚体
- lua——userdata使用
- IE浏览器下的存储方式——UserData
- 让刚体听我的——ApplyForce、ApplyImpulse、SetLinearVelocity
- unity——Rigidbody类 (刚体)
- 物理引擎——刚体Rigidbody(一)
- 物理引擎——刚体Rigidbody(二)
- UnityAPI:velocity属性——刚体速度
- Cocos2dx之Box2D——刚体
- 刚体运动研究方法——欧拉角四元数
- Unity——物理引擎之刚体
- Unity3D学习记录——刚体移动
- Unity3D学习记录——刚体跳跃
- Unity4.3.4_2D—刚体移动
- Lua的userdata用法
- userData
- 正则表达式30分钟入门教程
- 数据的归一化处理
- linuxcpio 备份命令
- linuxgrep命令
- mount/unmount命令
- 刚体的上衣——b2BodyDef.userData
- libevent 测试代码
- Linuxsed命令实例详解
- linux-sfdisk用法
- java连接Access数据库
- 一个小小的java多线程
- 技术人员如何创业《一》—— 产品及想法
- 计算机科学中最重要的32个算法
- Box2D简单封装