void PlaneProtect::initBody() { auto body = PhysicsBody::createCircle(getContentSize().width * 0.5); body->setGravityEnable(false); body->setMass(10000000); body->setCategoryBitmask(SELF_SCOPE_CATEGORYBITMASK); body->setCollisionBitmask(0); body->setContactTestBitmask(SELF_SCOPE_CONTACTTESTBITMASK); setPhysicsBody(body); setMaxBlood(Protect_Hp); m_ContactPro.hurts = -Ene_Plane_Hp_max - 10; setUnitId(UnitId::eFanghudun); }
bool CRole::init(const string& unitId, bool editorMode) { do { m_isEditMode = editorMode; BREAK_IF(!CSpriteObject::init()); m_faceToPrefix.resize(FACE_TO_MAX); m_faceToPrefix[FACE_TO_LEFT_DOWN] = ROLE_FACE_TO_LEFT_PREFIX; m_faceToPrefix[FACE_TO_RIGHT_DOWN] = ROLE_FACE_TO_RIGHT_PREFIX; m_faceToPrefix[FACE_TO_LEFT_UP] = ROLE_BACK_TO_LEFT_PREFIX; m_faceToPrefix[FACE_TO_RIGHT_UP] = ROLE_BACK_TO_RIGHT_PREFIX; changeState(ROLE_STATE_MOVE); setUnitId(unitId); const DTUnit::_Data* unitData = DTUNIT->getData(getUnitId()); CC_ASSERT(unitData); setGridWidth(unitData->gridWidth); setGridHeight(unitData->gridHeight); setSpeed(unitData->speed); setMaxHP(unitData->hp); setCurHP(getMaxHP()); setATK(unitData->atk); setAtkSpeed(unitData->rate); BREAK_IF_FAILED(CSpriteObject::setSpriteFromCcbi(unitData->resourceID.c_str())); if (!editorMode) { BREAK_IF_FAILED(createHPBar()); m_pHPBar->setPercentage(1.f); Size sz = getSpriteContentSize(); m_pHPBar->setPosition(0, sz.height); } return true; } while (false); return false; }
void ExplisonScreen::initPro() { setInvincible(true); m_ContactPro.hurts = -Ene_Plane_Hp_max- 10; setUnitId(UnitId::eScreenExplosion); }