Пример #1
0
bool ReinforceSoldier2::init()
{
	if(!BaseSoldier::init()){
		return false;
	}
	baseSprite = Sprite::createWithSpriteFrameName("reinforce_B0_0001.png");
	addChild(baseSprite);
	createAndSetHpBar();
	lastState = SoldierStateNone;

	return true;
}
bool EnemyTest::init()
{
	if (!Sprite::init())
	{
		return false;
	}
	instance = GameManager::getInstance();

	sprite = Sprite::create("monster/monster1/right1.png"); //怪物本身的图片,初始化显示
	addChild(sprite);
	
	iceSprite = Sprite::create("ice.png"); //冰块图片
	iceSprite->setPosition(sprite->getPosition());
	addChild(iceSprite, 2);
	iceSprite->setVisible(false);

	setType(1);//这是第一种敌人
	setIsVisible(true);
	setRunSpeed(3);
	setHpPercentage(100);
	setMoney(2);//只值2元钱
	animationRight = createAnimation("monster/monster1/right", 4, 0.1f,95,84);
	AnimationCache::getInstance()->addAnimation(animationRight, "monster1_right");  //这个cache里存有各种做好的动画,重要,以便后来取出用动画
	animationLeft = createAnimation("monster/monster1/left", 4, 0.1f,95,84);
	AnimationCache::getInstance()->addAnimation(animationLeft, "monster1_left");
	

	createAndSetHpBar();

	schedule(schedule_selector(EnemyTest::changeDirection), 0.4f);
	schedule(schedule_selector(EnemyTest::deFroze), 0.2f); //每隔0.2秒执行一次检测是否减速函数

	////设置schduler来减缓敌人速度
	//CCScheduler *defaultScheduler = CCDirector::sharedDirector()->getScheduler();
	//// Create a new scheduler, and link it to the main scheduler
	//sched1 = new CCScheduler();
	//defaultScheduler->scheduleUpdateForTarget(sched1, 0, false);
	//// Create a new ActionManager, and link it to the new scheudler
	//actionManager1 = new CCActionManager();
	//sched1->scheduleUpdateForTarget(actionManager1, 0, false);
	//// Replace the default ActionManager with the new one.
	//this->setActionManager(actionManager1);

	return true;
}
bool EnemyDisableTower::init() /*override*/
{
	if (!Sprite::init())
	{
		return false;
	}
	instance = GameManager::getInstance();

	sprite = Sprite::create("monster/monster_disable_tower/right1.png"); //怪物本身的图片,初始化显
	addChild(sprite);

	iceSprite = Sprite::create("ice.png"); //冰块图片
	iceSprite->setPosition(sprite->getPosition());
	addChild(iceSprite, 2);
	iceSprite->setVisible(false);

	disableRing = Sprite::create("disableRing.png");
	disableRing->setScale(2);
	addChild(disableRing, 10);
	auto fo = FadeOut::create(1);
	disableRing->runAction(RepeatForever::create(Sequence::create(fo, fo->reverse(), NULL)));

	setType(3);//这是第3种敌人
	setIsVisible(true);//不是隐形单位
	setRunSpeed(4);
	setHpPercentage(100);
	setMoney(8);//只值4元钱
	animationRight = createAnimation("monster/monster_disable_tower/right", 4, 0.1f, 100, 100);
	AnimationCache::getInstance()->addAnimation(animationRight, "monster_disable_right");  //这个cache里存有各种做好的动画,重要,以便后来取出用动画
	animationLeft = createAnimation("monster/monster_disable_tower/left", 4, 0.1f, 100, 100);
	AnimationCache::getInstance()->addAnimation(animationLeft, "monster_disable_left");


	createAndSetHpBar();

	schedule(schedule_selector(EnemyDisableTower::changeDirection), 0.4f);
	schedule(schedule_selector(EnemyDisableTower::deFroze), 0.2f); //每隔0.2秒执行一次检测是否减速函数
	//schedule(schedule_selector(EnemyDisableTower::disableNearbyTower), 0.2f);//每隔0.2秒沉默敌人一次,有问题:不能在敌人这判断,要在炮塔那判断才行,否则会图片会闪烁


	return true;
}
Пример #4
0
bool Quetzal::init()
{
	if (!BaseMonster::init())
	{
		return false;
	}
	setMonsterType(QUETZAL);
	setName("Quetzal_");
	baseSprite = Sprite::createWithSpriteFrameName("SaurianQuetzal_0001.png");
	addChild(baseSprite);
	createAndSetHpBar();
	blood = Sprite::createWithSpriteFrameName("fx_blood_splat_green_0001.png");
	blood->setPosition(Point(baseSprite->getContentSize().width/2,baseSprite->getContentSize().height/2));
	baseSprite->addChild(blood);
	blood->setVisible(false);
	lastState = stateNone;
	scheduleUpdate();
	setListener();
	return true;
}
Пример #5
0
bool Pirate::init()
{
	if (!Sprite::init())
	{
		return false;
	}
	setRunSpeed(50);
	setVaule(20);
	sprite = Sprite::createWithSpriteFrameName("enemyRight2_1.png");
	this->addChild(sprite);
	animationRight = createAnimation("enemyRight2", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationRight, "runright2");
	animationLeft = createAnimation("enemyLeft2", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationLeft, "runleft2");
	animationExplode = createAnimation("explode2", 6, 0.15f);
	AnimationCache::getInstance()->addAnimation(animationExplode, "explode2");

	createAndSetHpBar();
	return true;
}
Пример #6
0
bool Wolf::init()
{
	if (!BaseMonster::init())
	{
		return false;
	}
	setMonsterType(WOLF);
	setName("Wolf_");
	baseSprite = Sprite::createWithSpriteFrameName("desertWolf_0001.png");
	addChild(baseSprite);
	createAndSetHpBar();
	blood = Sprite::createWithSpriteFrameName("fx_blood_splat_red_0001.png");
	blood->setPosition(Point(baseSprite->getContentSize().width/2,baseSprite->getContentSize().height/2));
	baseSprite->addChild(blood);
	blood->setVisible(false);
	lastState = stateNone;
	scheduleUpdate();
	setListener();
	return true;
}
Пример #7
0
bool Thief::init()
{
	if (!Sprite::init())
	{
		return false;
	}
	//初始化怪物的移动速度,左右方向的动画
    setRunSpeed(25);
    setVaule(10);
    sprite = Sprite::createWithSpriteFrameName("enemyRight1_1.png");
    this->addChild(sprite);
    animationRight = createAnimation("enemyRight1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationRight, "runright1");
    animationLeft = createAnimation("enemyLeft1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationLeft, "runleft1");
    animationExplode= createAnimation("explode1", 6, 0.15f);
	AnimationCache::getInstance()->addAnimation(animationExplode, "explode1");
    
    createAndSetHpBar();
	return true;
}
Пример #8
0
bool Boss_Efreeti::init()
{
	if (!BaseMonster::init())
	{
		return false;
	}
	setMonsterType(BOSS_EFREETI);
	setName("Boss_Efreeti_");
	baseSprite = Sprite::createWithSpriteFrameName("Boss_Efreeti_0001.png");
	addChild(baseSprite);
	cloud = Sprite::createWithSpriteFrameName("Boss_Efreeti_Cloud_0001.png");
	cloud->setPosition(Point(baseSprite->getContentSize().width/2,baseSprite->getContentSize().height/2));
	baseSprite->addChild(cloud,-1);
	cloud->runAction(RepeatForever::create(Animate::create(AnimationCache::getInstance()->getAnimation(getName()+"cloud"))));
	createAndSetHpBar();
	lastState = stateNone;
	scheduleUpdate();
	schedule(schedule_selector(Boss_Efreeti::skill), 20.0f,2,5.0f);
	setListener();
	return true;
}
Пример #9
0
bool Thief::init()
{
	if (!Sprite3D::init())
	{
		return false;
	}
    setRunSpeed(25);
    setVaule(10);
	sprite = Sprite3D::create("orc.c3b");
    this->addChild(sprite);
	sprite->setScale(2.0);
	sprite->setAnchorPoint(Vec2(0,0));
	
	auto animation = Animation3D::create("orc.c3b");
    if (animation)
    {
        auto animate = Animate3D::create(animation);
        bool inverse = (std::rand() % 3 == 0);

        int rand2 = std::rand();
        float speed = 1.0f;
        if(rand2 % 3 == 1)
        {
            speed = animate->getSpeed() + CCRANDOM_0_1();
        }
        else if(rand2 % 3 == 2)
        {
            speed = animate->getSpeed() - 0.5 * CCRANDOM_0_1();
        }
        animate->setSpeed(inverse ? -speed : speed);

        sprite->runAction(RepeatForever::create(animate));
    }
	
    
    createAndSetHpBar();
	schedule(schedule_selector(EnemyBase::changeDirection), 0);
	return true;
}
Пример #10
0
bool Thief::init()
{
	if (!Sprite::init())
	{
		return false;
	}
    setRunSpeed(9);
    setMaxHp(10);
    setCurrHp(10);
    sprite = Sprite::createWithSpriteFrameName("enemyRight1_1.png");
    this->addChild(sprite);
    animationRight = createAnimation("enemyRight1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationRight, "runright");
    animationLeft = createAnimation("enemyLeft1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationLeft, "runleft");
    animationExplode= createAnimation("explode", 6, 0.15f);
	AnimationCache::getInstance()->addAnimation(animationExplode, "explode");
    
    createAndSetHpBar();
	schedule(schedule_selector(EnemyBase::changeDirection), 0.4f);
	return true;
}
Пример #11
0
bool Thief::init()
{
	if (!Sprite::init())
	{
		return false;
	}
	//初始化小偷的移动速度,左右方向的动画
    setRunSpeed(25);
    setVaule(10);
    sprite = Sprite::createWithSpriteFrameName("enemyRight1_1.png");
    this->addChild(sprite);
    animationRight = createAnimation("enemyRight1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationRight, "runright1");
    animationLeft = createAnimation("enemyLeft1", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationLeft, "runleft1");
    animationExplode= createAnimation("explode1", 6, 0.15f);
	AnimationCache::getInstance()->addAnimation(animationExplode, "explode1");
    
    createAndSetHpBar();
	//调用定时器schedule刷新自定义的changeDirection函数
	//schedule(schedule_selector(EnemyBase::changeDirection), 0.4f);
	return true;
}
Пример #12
0
bool Pirate::init()
{
	if (!Sprite3D::init())
	{
		return false;
	}
    setRunSpeed(50);
    setVaule(20);
    sprite = Sprite3D::create("orc.c3b");
	sprite->setAnchorPoint(Vec2(0,0));
	sprite->setScale(2.0);
    this->addChild(sprite);
    animationRight = createAnimation("enemyRight2", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationRight, "runright2");
    animationLeft = createAnimation("enemyLeft2", 4, 0.1f);
	AnimationCache::getInstance()->addAnimation(animationLeft, "runleft2");
    animationExplode= createAnimation("explode2", 6, 0.15f);
	AnimationCache::getInstance()->addAnimation(animationExplode, "explode2");
    
    createAndSetHpBar();
	schedule(schedule_selector(Pirate::changeDirection), 0);
	return true;
}