Esempio n. 1
0
void CEneH0203BigBody::SeqCrash()
{
	//-----------------------------------------------------
	//破壊された
	//-----------------------------------------------------
	m_bDamage = gxFalse;

	if( m_Add.y < 800 ) m_Add.y += 2;

	m_Pos.x += m_Add.x;
	m_Pos.y += m_Add.y;

	Sint32 sLine = pGame->GetMarineLine();

	if( sLine && m_Pos.y > sLine )
	{
		MakeSplash( m_Pos.x , m_Pos.y );
		viiMus::PlaySound( enSoundSplashM );

		SetActionSeq( enActionSeqEnd );
	}

}
Esempio n. 2
0
bool MyApp::ProcessCommandLine(MyFrame* frame)
{
	bool success = TRUE;

    wxLogTextCtrl textLog(frame->m_logCtrl);
	wxLog* oldTarget = wxLog::SetActiveTarget(& textLog);
	Log(m_cmdLine);
    int retValue = m_parser.Parse();
    if (retValue == -1)
    {
        // Help message
        m_parser.Usage();
		success = FALSE;
    }
    else if (retValue > 0)
    {
        // Syntax error
        Log(wxT("Sorry, syntax error."));
		success = FALSE;
    }
    else
    {
        if (m_parser.Found(wxT("h")))
        {
            m_parser.Usage();
			success = FALSE;
        }
        else
        {
			m_batchMode = m_parser.Found(wxT("b"));

			// command line OK. Find option values.
			if (!m_parser.Found(wxT("i"), & m_inputFilename))
			{
				Log(wxT("You must supply an input filename."));
				m_batchMode = FALSE;
				success = FALSE;
			}
			if (!m_parser.Found(wxT("o"), & m_outputFilename))
			{
				Log(wxT("You must supply an output filename."));
				m_batchMode = FALSE;
				success = FALSE;
			}
			if (!m_parser.Found(wxT("t"), & m_text))
			{
				Log(wxT("You must supply some text to add."));
				success = FALSE;
				m_batchMode = FALSE;
			}
			m_parser.Found(wxT("f"), & m_fontFaceName);
			m_parser.Found(wxT("p"), & m_fontPointSize);
			long x = 0, y = 0;
			m_parser.Found(wxT("x"), & x);
			m_parser.Found(wxT("y"), & y);
			m_textPosition = wxPoint(x, y);

			wxString colourStr;
			if (m_parser.Found(wxT("fcol"), & colourStr))
			{
				m_textForegroundColour = wxHexStringToColour(colourStr);
			}
			if (m_parser.Found(wxT("bcol"), & colourStr))
			{
				m_textBackgroundColour = wxHexStringToColour(colourStr);
			}
			m_parser.Found(wxT("m"), & m_scaleFactor);
			
			// Find switches
			m_verbose = m_parser.Found(wxT("v"));
			m_centre = m_parser.Found(wxT("c"));
			m_rightJustify = m_parser.Found(wxT("r"));
			m_antialias = m_parser.Found(wxT("a"));
			if (m_parser.Found(wxT("bo")))
				m_fontWeight = wxBOLD;
			if (m_parser.Found(wxT("it")))
				m_fontStyle = wxITALIC;
        }
    }
	if (success)
	{
		success = MakeSplash();
	}

	wxLog::GetActiveTarget()->Flush();
	wxLog::SetActiveTarget(oldTarget);

	return success;
}
Esempio n. 3
0
void CEneH0203BigBody::SeqMain()
{
	//-----------------------------------------------------
	//メイン
	//-----------------------------------------------------
	OBJ_POS_T StPos;
	StPos.x = m_Pos.x;
	StPos.y = m_Pos.y;

	if( m_bDestroy )
	{
//		viiMus::PlaySound( enSoundCrashA );
		EffectMakeBigBomb(m_Pos.x , m_Pos.y);
		viiEff::SetBombDeluxe( m_Pos.x , m_Pos.y , 3 , 5 );
		m_Add.x = (1+viiSub::Rand()%3)*30;
		m_Add.y = -viiSub::Rand()%200;

		if( m_ID == enSnakeHead )
		{
			new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+15*1 , 600 );
			new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+45*1 , 800 );
			new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+135*1 ,600 );
			new CEffectDmgprt( m_Pos.x, m_Pos.y , 180+165 , 600 );
			ScorePlus( enScore );
		}
		SetActionSeq( enActionSeqCrash );
		
		if( m_ID%4==0)
		{
			new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -90 , 100 );
			new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -88 , 120 );
			new CEffectDmgprt( m_Pos.x, m_Pos.y -3200, -92 , 80 );
		}
	}

	if( IsScrollOut( enScrollOutWidth , enScrollOutHeight ) )
	{

	}

	//-----------------------------------------------------
	//思考パターン
	//-----------------------------------------------------
	LogicAI();

	//-----------------------------------------------------
	//くらい判定登録
	//-----------------------------------------------------
	Sint32 ax,ay;

	if( m_ID == enSnakeHead )
	{
		m_bDamage = m_HitKurai.is_damage();
		m_HitKurai.ax1 = enKuraiLeft*3;
		m_HitKurai.ax2 = enKuraiRight*3;
		m_HitKurai.ay1 = enKuraiTop*3;
		m_HitKurai.ay2 = enKuraiBottom*3;

		ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24;
		ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24;

		StPos.x = ax;
		StPos.y = ay;

		if( !m_bCrashHead && m_HitKurai.is_dead() )
		{
			viiEff::SetBombDeluxe( ax , ay , 5 , 5+viiSub::Rand()%2 );
			m_bCrashHead = gxTrue;
			m_bDamage    = gxFalse;
		}
	}
	else if( m_ID == enSnakeBody )
	{
		m_bDamage = m_HitKurai.is_damage();
		m_HitKurai.ax1 = enKuraiLeft*3;
		m_HitKurai.ax2 = enKuraiRight*3;
		m_HitKurai.ay1 = enKuraiTop*3;
		m_HitKurai.ay2 = enKuraiBottom*3;

		ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24;
		ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24;

		StPos.x = ax;
		StPos.y = ay;

		if( m_HitKurai.is_dead() )
		{
			m_bDead = gxTrue;
		}

	}
	else
	{
		ax = m_Pos.x+viiMath::Cos100( m_sRotation )*24;
		ay = m_Pos.y+viiMath::Sin100( m_sRotation )*24;

		m_HitKurai.set_hp(1);
		m_HitKurai.set_ap(1);
		m_bDamage = m_bFlash;
		m_bFlash = gxFalse;
	}

	Sint32 sLine = pGame->GetMarineLine();
	if( sLine && m_Pos.y>sLine-3800 && m_Pos.y<sLine )
	{
		if( m_Old.y < sLine-3800 )//viiSub::GameCounter()%16 == 0 )
		{
			new CEffWater( ax , sLine , enTypeSplashLarge , 0);
			MakeSplash( ax+(-8+viiSub::Rand()%16)*100 , sLine , PRIO_EFFECT );
		}
	}
	else if( m_Old.y > sLine-3800 && m_Pos.y<sLine-3800)//viiSub::GameCounter()%16 == 0 )
	{
		new CEffWater( ax , sLine , enTypeSplashLarge , 0);
		MakeSplash( ax+(-8+viiSub::Rand()%16)*100 , sLine , PRIO_EFFECT );
	}

 

	//-----------------------------------
	//くらい判定登録
	//-----------------------------------
	m_HitKurai.SetHantei(ID_ENEMY_DEF,&StPos );

	//-----------------------------------
	//あたり判定登録
	//-----------------------------------
	m_HitAtari.set_hp(1);
	m_HitAtari.set_ap(1);
	m_HitAtari.SetAtackType( ATK_TYPE_CANNON );
	m_HitAtari.SetHantei(ID_ENEMY_ATK,&m_Pos );

	m_bAtack = gxFalse;

}