⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 credits.cpp

📁 吃豆子游戏源码
💻 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 + -