?? credits.cpp
字號:
/**
* File : Credits.cpp
* Author : Kevin Lynx
* Date : 2007/8.5
*/
#include "stdafx.h"
#include "credits.h"
#include "../ResourceMgr.h"
#include "../Sprite.h"
#include "../App.h"
#include "../AnimManager.h"
///////////////////////////////////////////////////////////////////////////////////////
//
// FadeOutText class
//
///////////////////////////////////////////////////////////////////////////////////////
FadeOutText::FadeOutText( stringw &text, IGUIFont *font,
SColor color, position2d<s32> &pos, f32 speed ) :
mText( text ), mPos( pos ), mColor( color )
{
mFont = font;
mSpeed = speed;
mColor.setAlpha( 0 );
mAlpha = 0.0f;
}
FadeOutText::~FadeOutText()
{
}
void FadeOutText::reset()
{
mAlpha = 0.0f;
mColor.setAlpha( 0 );
}
bool FadeOutText::update( float dt )
{
if( mAlpha < 250.0f )
{
mAlpha += mSpeed * dt;
if( mAlpha >= 250.0f )
{
return true;
}
}
mColor.setAlpha( u32( mAlpha ) );
return false;
}
void FadeOutText::render()
{
dimension2d<s32> size = mFont->getDimension( mText.c_str() );
rect<s32> pos( mPos.X - size.Width / 2, mPos.Y - size.Height / 2,
size.Width / 2 + mPos.X, size.Height / 2 + mPos.Y );
mFont->draw( mText.c_str(), pos, mColor, true, true );
}
///////////////////////////////////////////////////////////////////////////////////////
//
// Credits class
//
///////////////////////////////////////////////////////////////////////////////////////
Credits::Credits( IrrlichtDevice *device )
{
mDevice = device;
}
Credits::~Credits()
{
delete mTitle;
delete mLine1;
delete mLine2;
delete mLine3;
delete mLine4;
delete mLine5;
delete mLine6;
delete mLine7;
}
bool Credits::init()
{
ResourceMgr *resMgr = ResourceMgr::GetSingletonPtr();
mTitle = new FadeOutText( stringw( "Credits" ), resMgr->mBigFont, SColor( 255, 255, 255, 0 ),
position2d<s32>( 400, 100 ), FADE_SPEED );
mLine1 = new FadeOutText( stringw( "PacShooter is remade by Kevin Lynx." ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 200 ), FADE_SPEED );
mLine2 = new FadeOutText( stringw( "As these games remade before, this one also made all by me." ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 230 ), FADE_SPEED );
mLine3 = new FadeOutText( stringw( "Of cource, it's just a programming practice too." ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 260 ), FADE_SPEED );
mLine4 = new FadeOutText( stringw( "And now, Just enjoy it!" ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 290 ), FADE_SPEED );
mLine5 = new FadeOutText( stringw( "Developer : Kevin Lynx" ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 340 ), FADE_SPEED );
mLine6 = new FadeOutText( stringw( "Email : zmhn320@163.com" ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 400 ), FADE_SPEED );
mLine7 = new FadeOutText( stringw( "2007.7.29 - 2007.8.4" ),
resMgr->mNormalFont, SColor( 255, 128, 128, 0 ), position2d<s32>( 400, 430 ), FADE_SPEED );
return true;
}
void Credits::enter()
{
mTitle->reset();
mLine1->reset();
mLine2->reset();
mLine3->reset();
mLine4->reset();
mLine5->reset();
mLine6->reset();
mLine7->reset();
mState = SHOW_TITLE;
}
void Credits::leave()
{
}
void Credits::update( float dt )
{
if( mState == SHOW_TITLE )
{
if( mTitle->update( dt ) )
{
mState = SHOW_LINE1;
}
}
else if( mState == SHOW_LINE1 )
{
if( mLine1->update( dt ) )
{
mState = SHOW_LINE2;
}
}
else if( mState == SHOW_LINE2 )
{
if( mLine2->update( dt ) )
{
mState = SHOW_LINE3;
}
}
else if( mState == SHOW_LINE3 )
{
if( mLine3->update( dt ) )
{
mState = SHOW_LINE4;
}
}
else if( mState == SHOW_LINE4 )
{
if( mLine4->update( dt ) )
{
mState = SHOW_LINE5;
}
}
else if( mState == SHOW_LINE5 )
{
if( mLine5->update( dt ) )
{
mState = SHOW_LINE6;
}
}
else if( mState == SHOW_LINE6 )
{
if( mLine6->update( dt ) )
{
mState = SHOW_LINE7;
}
}
else if( mState == SHOW_LINE7 )
{
if( mLine7->update( dt ) )
{
mState = SHOW_LINE7;
}
}
}
void Credits::render()
{
ResourceMgr *resMgr = ResourceMgr::GetSingletonPtr();
mDevice->getVideoDriver()->draw2DImage(
resMgr->mGUIBlankBack, rect<s32>( 0, 0, 800, 600 ), rect<s32>(0,0,800,600),
0, 0, true );
mTitle->render();
mLine1->render();
mLine2->render();
mLine3->render();
mLine4->render();
mLine5->render();
mLine6->render();
mLine7->render();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -