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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }