11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 2655|回复: 2
上一主题 下一主题

[2D 物理引擎] 【9RIA—ladeng6666】—【Box2D系列教程 11】给圆角刚体穿上上衣

[复制链接] TA的其它主题
发表于 2018-2-5 16:37:41 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
转载:9RIA游戏开发者社区(天地会)
作者:ladeng6666(拉登大叔)
作者博客:http://www.ladeng6666.com/blog/


【Box2D系列教程-导航帖】—拉登大叔出品(总贴



在创建圆角刚体里,我们学会了如何用组合法创建一个自定义圆角刚体,同时我还给自己留了个作业——给圆角刚体穿上上衣。今天我们就来完成这个作业。

其实,这并不是一个新的话题,在刚体的上衣——b2BodyDef.userData里我们就学习了自定义"上衣"的方法,很简单,将一个DisplayObject或子类对象赋值给b2bodyDef需求.

[Actionscript3] 纯文本查看 复制代码
//1.创建刚体需求b2BodyDef
var bodyRequest:b2BodyDef = new b2BodyDef();
bodyRequest.position.Set(posX / 30, posY / 30);//记得米和像素的转换关系
//通过bodyRequest需求是userData属性设置"上衣"
bodyRequest.userData = createRoundFace(width, height, radius);

然后在loop函数里已经刚体的坐标、角度实时更新"上衣"的坐标、角度。
[Actionscript3] 纯文本查看 复制代码
private function loop(e:Event):void
{
    world.Step(1 / 30, 10);
    //遍历所有的刚体,如果刚体的m_userData属性不为空
    for ( var bodyIndex:b2Body=world.GetBodyList(); bodyIndex; bodyIndex = bodyIndex.GetNext()) {
        if (bodyIndex.m_userData != null) {
            //更新对应"上衣"的坐标、角度
            bodyIndex.m_userData.x = bodyIndex.GetPosition().x * 30;
            bodyIndex.m_userData.y = bodyIndex.GetPosition().y * 30;
            bodyIndex.m_userData.rotation = bodyIndex.GetAngle() * 180 / Math.PI;
         }
    }
}

效果如下:



下载:
OK 2012-07-04 创建圆角刚体外衣.rar (256.3 KB, 下载次数: 2)
发表于 2020-4-16 09:17:45 | 显示全部楼层
新手来学习学习了
回复

使用道具 举报

发表于 2020-5-7 23:27:25 | 显示全部楼层
新手来学习学习,感谢大佬指导
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表