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

📄 cplayer.cpp

📁 fruitwar and engine
💻 CPP
字号:
#include "stdafx.h"

CPlayer::CPlayer( void )
:m_dwPlayerNum( 3 )
,m_dwHaveFruitNum( 0 )
,m_dwFruitID( -1 )
{
	//获取接口
	m_pResMgr	= (IResManage*)FOXRENDERSYSTEM::GetInstance( CLD_IRESMANAGE );
	//创建资源
	m_pPlayer	= m_pResMgr->CreateSprite( "player.spr","SprRes/SprRes.pack" );
	m_pFruit	= m_pResMgr->CreateSprite( "fruit.spr","SprRes/SprRes.pack" );
}

CPlayer::~CPlayer( void )
{
	//释放资源
	SafeRelease( m_pPlayer );
	SafeRelease( m_pFruit );
	//释放接口
	SafeRelease( m_pResMgr );
}

void CPlayer::AddFruit( void )
{
	FruitState*		pState = NULL;
	for( int y=12;y>=0;y-- )
	{
		pState = m_pMgr->GetState( m_dwPlayerNum,y );
		//状态为常态
		if( pState->m_dwState == FRUIT_STATE_OLD || pState->m_dwState == FRUIT_STATE_NEW )
		{
			//寻找第一个
			if( m_dwFruitID == -1 )
			{
				m_dwFruitID			= pState->m_dwFruitID;	
				m_dwHaveFruitNum	= 1;
				//修改水果状态
				pState->m_dwState = FRUIT_STATE_DOWN;
				pState->m_dwDestY = 380 - 10 * m_dwHaveFruitNum;
				pState->m_dwAlpha = 255;
			}
			else
			{
				//寻找于第一个相同的
				if( m_dwFruitID == pState->m_dwFruitID )
				{
					m_dwHaveFruitNum ++;
					pState->m_dwState = FRUIT_STATE_DOWN;
					pState->m_dwDestY = 380 - 10 * m_dwHaveFruitNum;
				}
				else
				{
					return;
				}
			}
		}
	}
}

void CPlayer::ReleaseFruit( void )
{
	FruitState*		pState = NULL;
	for( int y=0;y<13;y++ )
	{
		pState = m_pMgr->GetState( m_dwPlayerNum,y );
		//状态为空
		if( pState->m_dwState == FRUIT_STATE_NULL || pState->m_dwState == FRUIT_STATE_END )
		{
			DWORD total = y + m_dwHaveFruitNum;
			if( total>13 ){
				total = 13;
			}
			//给管理器添加水果
			for( ;y<total;y++ )
			{
				pState = m_pMgr->GetState( m_dwPlayerNum,y );
				pState->m_dwState	= FRUIT_STATE_UP;
				pState->m_dwAlpha	= 255;
				pState->m_dwX		= 45 + m_dwPlayerNum*36;
				pState->m_dwY		= 380 - 10 * ( y - total + m_dwHaveFruitNum );
				pState->m_dwDestY	= 80 + y*24;
				pState->m_dwFruitID = m_dwFruitID;
			}
			//清空
			m_dwFruitID			= -1;
			m_dwHaveFruitNum	= 0;
			return;
		}
	}
}

void CPlayer::Left( void )
{
	m_dwPlayerNum--;
}

void CPlayer::Right( void )
{
	m_dwPlayerNum++;
}

void CPlayer::Draw( void )
{
	//渲染人物
	if( m_dwHaveFruitNum > 0 )
	{
		m_pPlayer->SetCurrentNum( 1 );
	}
	else
	{
		m_pPlayer->SetCurrentNum( 0 );
	}
	m_pPlayer->SetPostion( 45 + m_dwPlayerNum*36,400 );
	m_pPlayer->Draw( true );
	//渲染水果
	for( int i=0;i<m_dwHaveFruitNum;i++ )
	{
		m_pFruit->SetCurrentNum( m_dwFruitID );
		m_pFruit->SetPostion( 45 + m_dwPlayerNum*36,380 - 10 * i );
		m_pFruit->Draw( true );
	}
}

void CPlayer::Init( CFruitMgr* a_pMgr )
{
	m_dwPlayerNum		= 3;
	m_dwHaveFruitNum	= 0;
	m_dwFruitID			= -1;
	//管理器指针
	m_pMgr				= a_pMgr;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -