1
我是新上cocos2dx
,並且這可能是一個愚蠢的錯誤,cocos2dx當我設置setPhysicsBody雪碧,雪碧了
我做了動畫,我的精靈和它的工作。然後我添加PhysicsBody
到我的精靈碰撞。之後,當我開始遊戲時,Sprite不在屏幕上,我沒有得到任何錯誤。我檢查了兩次重力。我的代碼是在這裏
CCSpriteFrameCache* frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();
frameCache->addSpriteFramesWithFile("RedFurryFall.plist");
CCSpriteBatchNode* spriteSheet = CCSpriteBatchNode::create("RedFurryFall.png");
this->addChild(spriteSheet);
Vector<SpriteFrame*> RedFurryFallFrames(4);
for (int i = 1; i < 5; i++) {
CCString * fileName = CCString::createWithFormat("RedFurryFall%d.png", i);
CCSpriteFrame* frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(fileName->getCString());
RedFurryFallFrames.pushBack(frame);
}
CCAnimation* runAnim = CCAnimation::createWithSpriteFrames(RedFurryFallFrames, 0.15);
CCSprite* redFurry = CCSprite::createWithSpriteFrameName("RedFurryFall1.png");
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
redFurry->setPosition(ccp(winSize.width*0.5, winSize.height*0.85));
redFurry->setScale(0.50);
auto physicsBody = PhysicsBody::createCircle(redFurry->getContentSize().width/2, PhysicsMaterial(0.1, 1, 0));
physicsBody->setDynamic(false);
physicsBody->setGravityEnable(false);
redFurry->setPhysicsBody(physicsBody);
CCAction*action = CCRepeatForever::create(CCAnimate::create(runAnim));
redFurry->runAction(action);
spriteSheet->addChild(redFurry);
當我刪除此redFurry->setPhysicsBody(physicsBody);
我可以看到我的屏幕上的精靈。我無法弄清楚那有什麼問題。感謝您的關注。
您可以爲物理實體和精靈啓用調試幀。但是大多數情況下,精靈的物理和位置出了問題。所以我建議設置一個斷點,並看看你需要的精靈的位置。 – teivaz
下面的答案是否適合您? –