c++ - cocos2d-x]在box2d中,没有正确地用顶点制作多边形
问题描述
{
b2BodyDef bodyDef;
bodyDef.type = b2_staticBody;
bodyDef.position.Set(location.x / PTM_RATIO, location.y / PTM_RATIO);
bodyDef.userData = pSprite;
//bodyDef.userData = nullptr;
b2Body* body = _world->CreateBody(&bodyDef);
body->SetLinearVelocity(b2Vec2(1, 0));
b2PolygonShape poly;
b2Vec2 vertices[7];
vertices[0].Set(0, 0);
vertices[1].Set(1, 0);
vertices[2].Set(1, 1);
vertices[3].Set(0.75f, 1);
vertices[4].Set(0.5f, 1.5f);
vertices[5].Set(0.25f, 1);
vertices[6].Set(0, 1);
poly.Set(vertices, 7);
b2FixtureDef fixtureDef;
fixtureDef.shape = &poly;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.5f;
fixtureDef.restitution = 0.0f;
body->CreateFixture(&fixtureDef);
}
我用顶点值制作box2d的身体。
(它使用的是 b2ChainShape,所以内部是空的)
为什么会出现这些差异?
我不能解决这个问题吗?
解决方案
推荐阅读
- python - 在多处理连接后打印全局变量
- python - numpy.format 似乎只是四舍五入到一个整数
- heroku - Heroku 上的 Lua MVC 框架
- python - 正则表达式 python 中的文本字符串并拆分为数组
- c# - C#.NET 和解析来自服务器的 XML 响应
- scala - 带过滤器的 HBASE SPARK 查询不加载所有 hbase
- java - 当泛型类型具有继承结构时,如何在 Mapstruct 中映射集合?
- android - Android 网络服务发现获取主机名 (mDNS/Zeroconf)
- avfoundation - CVMetalTextureCacheCreate & 三重缓冲
- hive - Nifi PutHive3Streaming - 写入分区表