void Entity::hurtMe( int iHurtValue ) { if(m_isDead) { return; } CCLOG("hurtMe iHurtValue=%d, HP=%d", iHurtValue, getiHP()); /* 最小伤害值为1 */ if(iHurtValue <= getiDefense()) { iHurtValue = 1; } int iCurHP = getiHP(); /* 当前HP */ int iAfterHP = iCurHP - iHurtValue; /* 被攻击后的HP */ onHurt(iHurtValue); if(iAfterHP > 0) { setiHP(iAfterHP); } else { CCLOG("onDead"); m_isDead = true; /* 死亡 */ onDead(); } }
void PlayerManager::useZombie(Vec2 pt, Vector<Monster* >* monsterList, Boss* boss, int level) { auto zombie = Player::create(Sprite::create(m_FileName, m_Rect)); auto winSize = Director::getInstance()->getWinSize(); zombie->setAnchorPoint(Vec2(0.5f, 0.5f)); Vec2 playerPt = getPlayer()->getPosition(); zombie->setPosition(playerPt); int r = rand() % level; if (r == 1) { zombie->getSprite()->setColor(Color3B(0, 255, 255)); //0,255,255 255,215,0 218,165,32 } else if (r == 2) { zombie->getSprite()->setColor(Color3B(75, 0, 130)); zombie->setScale(2.0f); } else if (r == 3) { zombie->getSprite()->setColor(Color3B(255, 215, 0)); } else if (r == 4) { zombie->getSprite()->setColor(Color3B(218, 165, 32)); } else if (r == 5) { zombie->getSprite()->setColor(Color3B(255, 0, 0)); } zombie->setmoveType(r); zombie->setiHP(100); this->addChild(zombie); m_zombieVector.pushBack(zombie); }