Beispiel #1
0
void Effect::begin()
{
    if(!effectIsInitialized)
    {
        if(getParentSceneObject() != NULL)
        {
            effectIsInitialized = true;
            initEffect();
        }
        else
        {
            SWARNING << "Effect::begin() :The effect is not associated with a Scene Object yet.";
        }
    }

    if(isPausedFlag)
    {
        SWARNING << "Effect::begin() :The effect is paused. Use unpause() instead of begin()";
    }
    else if(effectIsInitialized)
    {
        inheritedBegin();
        produceEffectBegan();
        isPlayingFlag = true;
    }
    else
    {
        SWARNING << "Effect::begin() : The effect is not initialized yet.";
    }
}
void CHeroEvolveEffectLayer::showEffect( CHero *pBaseHero, CHero *pHero, CCPoint posAim, CLayout* pSkillPanel, HeroEvolveEffectuUnlockType iType )
{
	this->setVisible(true);

	m_pBaseHero = pBaseHero;
	m_pAimHero = pHero;

	m_posAim = posAim;

	if(pSkillPanel != nullptr)
	{
		if(m_pSkillPanel == nullptr || m_pSkillPanel->getParent()==nullptr)
		{
			if( m_pSkillPanel != nullptr )
			{
				m_pSkillBg->removeChildByTag(255, true);
			}
			m_pSkillPanel = pSkillPanel;
			m_pSkillPanel->setPosition(ccp(m_pSkillBg->getContentSize().width/2, m_pSkillBg->getContentSize().height/2));
			m_pSkillBg->addChild(m_pSkillPanel, 10);
		}
		else
		{
			m_pSkillPanel = pSkillPanel;
		}
	}
	else
	{
		m_pSkillPanel = pSkillPanel;
	}


	m_pSkillBg->setVisible(false);

	
	m_eUnLockType = iType;

	//更新显示数据
	updateData();

	//骨骼1播放-播完-飞到目标位置
	//骨骼2播放1-属性增加动画-需要切入程序界面
	//骨骼2播放2-技能/格子/天赋开启-需要切入程序动画

	//图集选择
	removeAllPlistFile();
	loadPlistFileWithRank(m_pAimHero->quality);

	initEffect();

	//隐藏解锁骨骼动画
	m_pEffectForChange->setVisible(false);

	//基础动画1.1-等待飞入事件传入
	m_pEffectBase->setVisible(true);
	m_pEffectBase->setScale(1.0f);
	m_pEffectBase->setPosition(VCENTER);
	m_pEffectBase->getAnimation()->playWithIndex(0, 0.01f);
}
Beispiel #3
0
void VisualMatrix::init()
{
	initSprite();
	initEffect();
	initMatrix();
	initStats();
	initState();
}
void Init()
{
	initD3D();
	initParticles();
	initVertexData();
	initRectangleVertexes();
	initEffect();
}
void SpriteMonsterArcher::playEffect(SkillInfo info)
{		
	initEffect(info.effectId);
	
	CCNode * effectNode = getFreeEffectNode();
	if (!effectNode)
	{
		return;
	}

	float distance = ccpDistance(info.startPosition, info.endPosition);
	float speed = info.speed * 16;
	CCPoint directVec = ccpSub(info.endPosition, info.startPosition);

	float degree;
	degree = atan(directVec.x / directVec.y) * 180 / 3.14;
	if (directVec.y < 0)
	{
		degree += 180;
	}

	CCPoint startCell = LevelManager::sShareInstance()->pointPixelToCell(info.startPosition);
	CCPoint endCell = LevelManager::sShareInstance()->pointPixelToCell(info.endPosition);
	//CCLOG("arrow start pos: %f, %f, end pos: %f, %f", startCell.x, startCell.y, endCell.x, endCell.y);

	effectNode->setPosition(info.startPosition);	
	effectNode->setRotation(degree);	
	
	CCArray *arrayOfActions = CCArray::create();

	CCDelayTime * delayEffect = CCDelayTime::create(info.delayTime / 1000);
	CCCallFunc *showFunc = CCCallFuncND::create(this, 
										callfuncND_selector(SpriteMonster::ccCallShowEffect),
										(void *)effectNode);
	CCMoveTo * moveEffect = CCMoveTo::create(distance / speed, info.endPosition);	
	CCCallFunc *hideFunc = CCCallFuncND::create(this, 
										callfuncND_selector(SpriteMonster::ccCallHideEffect),
										(void *)effectNode);

	arrayOfActions->addObject(delayEffect);
	arrayOfActions->addObject(showFunc);
	arrayOfActions->addObject(moveEffect);
	arrayOfActions->addObject(hideFunc);
	CCFiniteTimeAction *sequence = CCSequence::create(arrayOfActions);

	effectNode->stopAllActions();
	effectNode->runAction(sequence);

	return;	
}
Beispiel #6
0
Graphics::Graphics()
{
	mBufferFactory = new BufferFactory();

	initBuffers();
	initEffect();
	initFonts();

	mWhiteTexture = loadTexture("data/imgs/white.bmp");

	// TESTING.. 
	D3DVERTEXELEMENT9 elems[MAX_FVF_DECL_SIZE];
	UINT numElems = 0;
	VertexPNT::Decl->GetDeclaration(elems, &numElems);
	D3DXCreateMesh(2, 4, D3DXMESH_MANAGED, elems, gd3dDevice, &mRayMesh);
	
	onResetDevice();
}
Beispiel #7
0
void TestScene::LoadContent()
{
    debugDraw = new GameDebugDraw(GameGlobal::GetCurrentSpriteHandler());
    drawBezier = new GameDebugDraw(GameGlobal::GetCurrentSpriteHandler());
    drawBezier->setLineSize(1.6f);
    debugDraw->setLineSize(3);

    speed = 1.0;
    t = 0;
    frameDelay = 0;
    numSprite = 10;
    xDistance = yDistance = 0;
    timer = 0;
    posMove = 0;
    dotDistance = 0;
    dotDistanceCounter = 0;
    isPause = false;
    isDebugDraw = false;
    isUseMouse = false;
    isDrawBezier = false;

    dot = new Sprite("dot.png");
    dot2 = new Sprite("dot2.png");

    //khoi tao cac control point - bezier bac 2
    points.push_back(D3DXVECTOR2(100, 100));
    points.push_back(D3DXVECTOR2(400, 300));
    points.push_back(D3DXVECTOR2(200, 600));

    updateFullPoints();

    for (size_t i = 0; i < numSprite; i++)
    {
        sprites.push_back(new Sprite("test.png"));
    }

    previousPoint = CalculateSinglePoint(0, points);

    initEffect();
}
RenderInterfaceDx11::RenderInterfaceDx11(HWND p_hWnd, int _techNr, int _passNr, 
										int p_width, int p_height)
{
	m_hWnd = p_hWnd;
	m_width = p_width;
	m_height = p_height;
	techNr = _techNr;
	passNr = _passNr;

	initDevice();
	initEffect();

	D3D11_RASTERIZER_DESC rasterizerDesc;
	rasterizerDesc.FillMode = D3D11_FILL_SOLID;
	rasterizerDesc.CullMode = D3D11_CULL_BACK;
	rasterizerDesc.FrontCounterClockwise = TRUE;	// Changed it from CounterClockwise false to true, since it otherwise will be culled
	rasterizerDesc.DepthClipEnable = TRUE;
	rasterizerDesc.AntialiasedLineEnable = FALSE;
	rasterizerDesc.MultisampleEnable = FALSE;
	rasterizerDesc.DepthBias = 0;
	rasterizerDesc.DepthBiasClamp = 0.0f;
	rasterizerDesc.SlopeScaledDepthBias = 0.0f;

	rasterizerDesc.ScissorEnable = false;
	HR(m_device->CreateRasterizerState(&rasterizerDesc, &rs_scissorsOff));

	rasterizerDesc.ScissorEnable = true;
	HR(m_device->CreateRasterizerState(&rasterizerDesc, &rs_scissorsOn));

	m_context->RSSetState(rs_scissorsOff);

	defineInputElementDesc();
	defineBlendState();
	initPipeline();
	initFxVars();
	initDefaultTex();
}
Beispiel #9
0
bool GameScene::init()
{
    if (!Layer::init())return false;
    
    
    initPlist();
    initEffect();
    
    //set game status
    Config::getInstance()->setGameSatus(ING);
    Config::getInstance()->setScore(0);//rest score
    
    //loding effect
    auto _SimpleAudioEngine = SimpleAudioEngine::getInstance();
    _SimpleAudioEngine->preloadEffect(air_shoot_effect1);
    _SimpleAudioEngine->preloadEffect(ship_explode_effect0);
    
    //init game map
    //init enemy type
    switch (levelNum)
    {
        case GAMEMAP1://0
            if (Config::getInstance()->getmusicState())
            {
                auto simpleAudio = SimpleAudioEngine::getInstance();
                simpleAudio->preloadBackgroundMusic(battle_bg_stage0);
                simpleAudio->setBackgroundMusicVolume(1.0f);
                simpleAudio->playBackgroundMusic(battle_bg_stage0, true);
            }
            addMap("Map1.png");
            levelScore = BOOS_LEVEL1;
            break;
        case GAMEMAP2://1
            if (Config::getInstance()->getmusicState())
            {
                auto simpleAudio = SimpleAudioEngine::getInstance();
                simpleAudio->preloadBackgroundMusic(battle_bg_stage1);
                simpleAudio->setBackgroundMusicVolume(1.0f);
                simpleAudio->playBackgroundMusic(battle_bg_stage1, true);
            }
            addMap("Map2.png");
            levelScore = BOOS_LEVEL2;
            //add particle
            Kit::addParticle(snow_plist, this, VisibleRect::top());
            break;
        case GAMEMAP3://2
            if (Config::getInstance()->getmusicState())
            {
                auto simpleAudio = SimpleAudioEngine::getInstance();
                simpleAudio->preloadBackgroundMusic(battle_bg_stage2);
                simpleAudio->setBackgroundMusicVolume(1.0f);
                simpleAudio->playBackgroundMusic(battle_bg_stage2, true);
            }
            addMap("Map3.png");
            levelScore = BOOS_LEVEL3;
            break;
            
        case GAMEMAP4://3
            if (Config::getInstance()->getmusicState())
            {
                auto simpleAudio = SimpleAudioEngine::getInstance();
                simpleAudio->preloadBackgroundMusic(battle_bg_stage2);
                simpleAudio->setBackgroundMusicVolume(1.0f);
                simpleAudio->playBackgroundMusic(battle_bg_stage2, true);
            }
            addMap("Map4.png");
            levelScore = BOOS_LEVEL4;
            //add fire paticle
            Kit::addParticle(battle_fire_bg_particle_plist, this, VisibleRect::top());
            break;
        default:
            log("there's no game map to do !");
            return false;
            break;
    }
    
    //add logo one top-left
    auto	logoShip = Sprite::createWithSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(SHIP_FILE_NAME));
    float offset = logoShip->getContentSize().width / 2;
    logoShip->setScale(0.8f);
    auto winsize = Director::getInstance()->getWinSize();
    logoShip->setPosition(Vec2(offset, winsize.height - offset));
    this->addChild(logoShip, SHIP_Z_ORDER);
    
    
    
    //set life value  beside of logoShip
    Config::getInstance()->setShipLife(SHIP_LIFES);
    __String life("X");
    life.appendWithFormat("%02d", Config::getInstance()->getShipLife());
    lifeValue = Label::createWithSystemFont(life.getCString(), "Arial", 12);
    lifeValue->setPosition(Vec2(offset * 3, winsize.height - offset));
    lifeValue->setColor(Color3B::RED);
    this->addChild(lifeValue, SHIP_Z_ORDER);
    
    
    //add score
    __String tempscore("得分:");
    tempscore.appendWithFormat("%07d", Config::getInstance()->getScore());
    score = Label::createWithSystemFont(tempscore.getCString(), "Arial", 12);
    score->setPosition(Vec2(winsize.width - 45, winsize.height - offset));
    score->setColor(Color3B::RED);
    this->addChild(score, SHIP_Z_ORDER);
    
    
    
    
    ship = Ship::creatShip(this, 0, SHIP_LIFE_VALUE);
    auto initPosition = VisibleRect::center();
    ship->setPosition(Vec2(initPosition.x, initPosition.y - 120.0f));
    this->addChild(ship, SHIP_Z_ORDER);
    
    
    //add bone btn
    auto bone_btn_sprite = Sprite::create(btn_bone_res);
    bone_btn_sprite->setScale(0.8f);
    auto bone_btn = MenuItemSprite::create(bone_btn_sprite, nullptr, [&](Ref* _bone_btn){
        
        //处理炸弹效果
        log("bone released ......");
        
        //can shake
        auto j = JumpBy::create(0.5f, Vec2::ZERO, 5, 5);
        this->runAction(j);
        
        auto config = Config::getInstance();
        //remove enemy and bullet
        for (auto bullet : *config->enemy_bullet_list)
        {
            bullet->boneDestory();
        }
        
        for (auto enemy : *config->enemy_list)
        {
            //effect it
            log("effect it ......");
            enemy->boneDestory(this);
        }
        config->enemy_bullet_list->clear();
        config->enemy_list->clear();
        
    });
    auto menue = Menu::create(bone_btn, NULL);
    menue->setPosition(Vec2(35, 200));
    this->addChild(menue, BTN_BACK_Z_ORDER);
    menue->runAction(Kit::creatEaseSineInOut(100.0f));
    
    
    
    
    //add back btn
    auto btn_sprite = Sprite::createWithTexture(Director::getInstance()->getTextureCache()->addImage(btn_back_res));
    btn_sprite->setColor(Color3B(0, 245, 255));
    auto btn_back = MenuItemSprite::create(btn_sprite, nullptr, [&](Ref* item){
        auto menuSprite = (MenuItemSprite*)item;
        auto scale = ScaleBy::create(0.2f, 1.1);
        auto jumpToGameLevel = CallFunc::create([](){
            
            auto config=Config::getInstance();
            
            if (config->getmusicState()) SimpleAudioEngine::getInstance()->stopBackgroundMusic();// 停止当前背景音乐
            
            if (config->getmusicState())
            {
                SimpleAudioEngine::getInstance()->playBackgroundMusic(main_bg_stage1, true);
            }
          
            
            Director::getInstance()->replaceScene(TransitionFade::create(1.2f, GameLevelLayer::creatScene()));
        });
        
        //call back
        std::function<void()> releaseResources = [&](){
            this->releaseR();
        };
        menuSprite->runAction(Sequence::create(CallFunc::create(releaseResources), scale, scale->reverse(), jumpToGameLevel, NULL));
    });
    
    
    
    
    menue = Menu::create(btn_back, NULL);
    auto btn_back_position = VisibleRect::rightBottom();
    offset = btn_sprite->getContentSize().width / 2;
    menue->setPosition(Vec2(btn_back_position.x - 50, btn_back_position.y + 25));
    this->addChild(menue, BTN_BACK_Z_ORDER);
    menue->runAction(Kit::creatEaseSineInOut(100.0f));
    
    
    
    
    
    
    //添加敌机
    this->schedule(schedule_selector(GameScene::addEnemy), 2.0f, kRepeatForever, 1.2f);
    
    this->scheduleUpdate();
    
    //初始化地图移动
    this->scheduleOnce(schedule_selector(GameScene::initMoveMap), 1.2f);
    
    
    
    
    return true;
}
Beispiel #10
0
void Layer::setEffect(byte id) {
  effect       = id;
  initEffect();
}
Beispiel #11
0
void HomeScreen::init()
{
	initSprite();
	initEffect();
}
Beispiel #12
0
void Background::init()
{
	initSprite();
	initEffect();
}