Exemplo n.º 1
0
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();
    }

}
Exemplo n.º 2
0
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);
}