【cocos2dx】Sprite增加多边形(增加不规则碰撞)

本文介绍如何使用Cocos2d-x通过多边形区域生成精灵,并利用DrawNode进行绘制,实现自定义形状的碰撞检测区域。
 //获取图片多边形区域
PolygonInfo polygon = AutoPolygon::generatePolygon("DragonBoy_texture_1.png");
//polygon创建精灵
Sprite *sprite = Sprite::create(polygon);
sprite->setPosition(Vec2(200, 200));
addChild(sprite);

const auto& polygoninfo = sprite->getPolygonInfo();
const auto count = polygoninfo.triangles.indexCount/3;
const auto indices = polygoninfo.triangles.indices;
const auto verts = polygoninfo.triangles.verts;

DrawNode *draw = DrawNode::create();
sprite->addChild(draw);
for(ssize_t i = 0; i < count; i++)
{
    //draw 3 lines
    Vec3 from = verts[indices[i]].vertices;
    Vec3 to = verts[indices[i+1]].vertices;
    //此处绘制多边形也可以绘制不规则碰撞区域
    draw->drawLine(Vec2(from.x, from.y), Vec2(to.x,to.y), Color4F::RED);
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值