c++ - 为多个 body 使用 Sprite

标签 c++ cocos2d-x box2d

在我的游戏中,我有一个方 block Sprite 。我用这个 Sprite 制作了一个 block 体,这样我的角色就​​无法穿过它。

cocos2d::CCSprite* block = cocos2d::CCSprite::create("Block.png");
block->setPosition(ccp(5,20));
this->addChild(block);

b2BodyDef blockbodydef;
blockbodydef.type = b2_kinematicBody;
blockbodydef.position.Set(5/PTM_RATIO,20/PTM_RATIO);
blockbodydef.userData = block;
b2Body *blockbody = world->CreateBody(&blockbodydef);
b2PolygonShape blockPoly;
blockPoly.SetAsBox(37.5/PTM_RATIO , 37.5 / PTM_RATIO);
b2FixtureDef blockshapedef;
blockshapedef.shape = &blockPoly;
blockshapedef.density = 2.0f;
blockshapedef.friction = 0.2f;
blockshapedef.restitution = 0.8f;
blockbody->CreateFixture(&blockshapedef);

但是,我想要多个这样的 block 。有没有一种方法可以改变 bodydef 和 sprite 的位置而不会使原始 sprite 消失,或者我是否必须为每个 block 创建不同的 sprite?

最佳答案

您必须为另一个 block 创建另一个 Sprite 。纹理缓存在 cocos2dx 中,因此它只会从文件中加载一次。

关于c++ - 为多个 body 使用 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994883/

相关文章:

java - 我将如何创建 Horizo​​ntally centered “Gravity” ? - libGDX -

c++ - URLDownloadToFile 和身份验证

c++ - 使用指针从 std::list 中删除元素?

c++ - 如何检查 cocos2d-x v3.1 中的特定冲突? C++

c++ - 相对布局不适用于 cocos2d-x 3.1?

java - 圆-圆碰撞预测(后续)

C++矩阵计算

C++ Windows CreateChildProcess - 隐藏/不显示子进程的控制台窗口

c++ - cocos2d-x 3.17.2 utils::captureScreen在iPad mini 5上的iOS 13.1.3上断言失败

android - 何时在 Libgdx 中使用 ShapeRenderer、Mesh + SpriteBatch、Box2D 和 Scene2D?