void PhysicsBody::onRemove() { CCASSERT(_owner != nullptr, "_owner can't be nullptr"); removeFromPhysicsWorld(); _owner->_physicsBody = nullptr; }
void PhysicsBody::onExit() { removeFromPhysicsWorld(); }
void PhysicsBody::onRemove() { removeFromPhysicsWorld(); }
void PhysicsBody::removeFromWorld() { removeFromPhysicsWorld(); }
void LevelTwo::createFlames(float dt) { for (int i = 0; i < 9; i++) { auto spritecache = SpriteFrameCache::getInstance(); spritecache->addSpriteFramesWithFile("GameScreen/fireList.plist"); cocos2d::SpriteFrame* spriteFrame = spritecache->getSpriteFrameByName("fire1.png"); cocos2d::Vector<cocos2d::Sprite *> m_aiSprites; cocos2d::Vector<cocos2d::SpriteFrame*> m_animFrames; for (int j = 1; j < 27; j++) { // Get a SpriteFrame using a name from the spritesheet .plist file. m_animFrames.pushBack(spritecache->getSpriteFrameByName("fire" + std::to_string(j) + ".png")); } // Create the animation out of the frames. Animation* animation = Animation::createWithSpriteFrames(m_animFrames, 0.065); Animate* animate = Animate::create(animation); // Create a sprite using any one of the SpriteFrames // This is so we get a sprite of the correct dimensions. auto sprite = Sprite::createWithSpriteFrame(m_animFrames.at(0)); // Run and repeat the animation. sprite->setScale(2.0f); sprite->runAction(animate); auto fireBody = PhysicsBody::createBox(sprite->getContentSize(), PhysicsMaterial(0, 0, 0)); if (i == 0) { sprite->setPosition(Vec2(600, 420)); sprite->setTag(21); //fireBody->setCollisionBitmask(0x000101); //sprite->setPhysicsBody(fireBody); } else if (i == 1) { sprite->setPosition(Vec2(770, 420)); sprite->setTag(22); //fireBody->setCollisionBitmask(0x000201); //sprite->setPhysicsBody(fireBody); } else if (i == 2) { sprite->setPosition(Vec2(940, 420)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 3) { sprite->setPosition(Vec2(600, -20)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 4) { sprite->setPosition(Vec2(940, -20)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 5) { sprite->setPosition(Vec2(100, 260)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 6) { sprite->setPosition(Vec2(130, 130)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 7) { sprite->setPosition(Vec2(100, -20)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } else if (i == 8) { sprite->setPosition(Vec2(200, -20)); sprite->setTag(23); //fireBody->setCollisionBitmask(0x000301); //sprite->setPhysicsBody(fireBody); } this->addChild(sprite, 10); m_aiSprites.pushBack(sprite); if (dt == 5) { sprite->removeFromPhysicsWorld(); } for (int i = 0; i < m_aiSprites.size(); i++) { if (player->boundingBox().intersectsRect(sprite->boundingBox())) { playerOneDead = true; } if (player2->boundingBox().intersectsRect(sprite->boundingBox())) { playerTwoDead = true; } } //m_aiSprites.clear(); } }