亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bullet.cpp

?? 吃豆子游戲源碼
?? CPP
字號:
/**
 *	File	:	Bullet.cpp
 *  Author	:	Kevin Lynx
 *	Date	:	2007/8/1
 */
#include "stdafx.h"
#include "Bullet.h"
#include "World.h"
#include "ResourceMgr.h"
#include "Player.h"
#include "Effect.h"
#include "SoundManager.h"

////////////////////////////////////////////////////////////////////////////////////////////
//
//	Bullet class
//
////////////////////////////////////////////////////////////////////////////////////////////
Bullet::Bullet( vector3df dir ) :
	Sprite( Sprite::ST_BULLET, DEFAULT_BULLET_SPEED, dir )
{
	mDamage = BulletManager::BD_DAMAGE ;
}

Bullet::~Bullet()
{
}

bool	Bullet::collision( const aabbox3df &box )
{
	return Sprite::getWorldAABB().intersectsWithBox( box );
}

void	Bullet::update( float dt )
{
	Sprite::move( dt );
}

bool	Bullet::isFireStone()
{
	return mCollResult > 0 && mCollResult < World::STONE_COUNT ;
}

const vector3df Bullet::getExpPosition()
{
	const vector3df pos = getPosition();
	return vector3df( pos.X, pos.Y + 40, pos.Z );
}

////////////////////////////////////////////////////////////////////////////////////////////
//
//	BulletManager class
//
////////////////////////////////////////////////////////////////////////////////////////////
BulletManager::BulletManager( IrrlichtDevice *device )
{
	mDevice = device;
}

BulletManager::~BulletManager()
{
	release();
}

bool	BulletManager::init()
{
	reset();
	return true;
}

void	BulletManager::release()
{
	for( tBullets::iterator it = mPlayerBullets.begin();
		 it != mPlayerBullets.end();
		 ++ it )
	{
		delete *it;
	}
	for( tBullets::iterator it = mMonsterBullets.begin();
		 it != mMonsterBullets.end();
		 ++ it )
	{
		delete *it;
	}

	mPlayerBullets.clear();
	mMonsterBullets.clear();
}

void	BulletManager::reset()
{
	release();
	mCurPlayerBullet = mPlayerBullets.begin();
}

void	BulletManager::update( float dt )
{
	for( tBullets::iterator it = mPlayerBullets.begin();
		 it != mPlayerBullets.end();
		 ++ it )
	{
		(*it)->update( dt );

		if( (*it)->isFireStone() ||
			World::GetSingletonPtr()->isOutOfWorld( (*it)->getXZRect() ) )
		{
			//fire on a stone, it will destroy the stone, and 
			//destroy the bullet
			//make an effect first
				
			SoundManager::GetSingletonPtr()->playSound( SoundManager::SND_EXPLODE,
				(*it)->getExpPosition() ); 

			EffectManager::GetSingletonPtr()->createExp( ResourceMgr::EXP_STONE, 
				(*it)->getExpPosition() );

			delete *it;
			it = mPlayerBullets.erase( it );
		}
	}

	for( tBullets::iterator it = mMonsterBullets.begin();
		 it != mMonsterBullets.end();
		 ++ it )
	{
		(*it)->update( dt );

		if( (*it)->isFireStone() ||
			World::GetSingletonPtr()->isOutOfWorld( (*it)->getXZRect() ))
		{
			//fire on a stone, it will destroy the stone, and 
			//destroy the bullet
			//make an effect first
			SoundManager::GetSingletonPtr()->playSound( SoundManager::SND_EXPLODE, 
				(*it)->getExpPosition() ); 

			EffectManager::GetSingletonPtr()->createExp( ResourceMgr::EXP_STONE, 
				(*it)->getExpPosition() );

			delete *it;
			it = mMonsterBullets.erase( it );
		}
	}

}

bool	BulletManager::checkPlayer( Player *player )
{
	aabbox3df box = player->getWorldAABB();

	for( tBullets::iterator it = mMonsterBullets.begin();
		 it != mMonsterBullets.end();
		 ++ it )
	{
		if( (*it)->collision( box ) )
		{
			/// the player was shoot
			delete *it;
			it = mMonsterBullets.erase( it );

			return true;
		}
	}	

	return false;
}

Bullet	*BulletManager::createBullet( const vector3df &pos, vector3df dir )
{
	Bullet *newBullet = new Bullet( dir );
	newBullet->init( mDevice->getSceneManager(), ResourceMgr::GetSingletonPtr()->mBulletMesh, 0 );
	newBullet->setPosition( pos );

	return newBullet;
}

void	BulletManager::createPlayerBullet( const vector3df &pos, vector3df dir )
{
	mPlayerBullets.push_back( createBullet( pos, dir ) );
}

void	BulletManager::createMonsterBullet( const vector3df &pos, vector3df dir )
{
	mMonsterBullets.push_back( createBullet( pos, dir ) );
}

void	BulletManager::beginCheckPlayerBullet()
{
	mCurPlayerBullet = mPlayerBullets.begin();
}

Bullet *BulletManager::getCurrentPlayerBullet()
{
	if( mCurPlayerBullet == mPlayerBullets.end() )
	{
		mCurPlayerBullet = mPlayerBullets.begin();
		return NULL;
	}
	else
	{
		Bullet *bullet = *mCurPlayerBullet;
		return bullet;
	}
}

void	BulletManager::delCurrentPlayerBullet()
{
	if( mCurPlayerBullet != mPlayerBullets.end() )
	{
		delete *mCurPlayerBullet;
		mCurPlayerBullet = mPlayerBullets.erase( mCurPlayerBullet );
	}
}

void	BulletManager::advanceCurrentPlayerBullet()
{
	if( mCurPlayerBullet != mPlayerBullets.end() )
	{
		mCurPlayerBullet ++;
	}
}

int 	BulletManager::getPlayerBulletCount()
{
	return (int)mPlayerBullets.size();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色成年激情久久综合| 国产伦精品一区二区三区免费迷| 欧美成人综合网站| av电影在线不卡| 久久se精品一区精品二区| 亚洲欧美精品午睡沙发| 精品理论电影在线| 欧美裸体一区二区三区| 97精品久久久久中文字幕| 狠狠色丁香婷婷综合| 日本视频在线一区| 亚洲在线视频网站| 亚洲欧美日韩系列| 中文字幕精品一区二区三区精品| 日韩欧美中文字幕一区| 欧美日韩国产成人在线免费| 91无套直看片红桃| 成人黄色免费短视频| 国产一区二区三区黄视频| 欧美国产欧美综合| 欧美在线观看视频一区二区| 成av人片一区二区| 丁香激情综合国产| 国产精品正在播放| 国产一区二区三区观看| 黄页网站大全一区二区| 免费视频最近日韩| 奇米精品一区二区三区在线观看| 亚洲一区二区av电影| 亚洲综合在线第一页| 亚洲自拍偷拍网站| 亚洲成人你懂的| 日韩精品电影一区亚洲| 香蕉影视欧美成人| 亚洲成人激情综合网| 午夜视频一区二区| 日韩高清不卡一区二区三区| 偷拍一区二区三区四区| 日韩黄色一级片| 久久av资源网| 国产乱人伦偷精品视频不卡| 国产盗摄一区二区| 东方aⅴ免费观看久久av| 国产成人8x视频一区二区| 蜜桃视频一区二区三区| 欧美男同性恋视频网站| 欧美色综合天天久久综合精品| 日本韩国一区二区三区视频| 91九色02白丝porn| 欧美日韩亚洲综合一区| 欧美精品免费视频| 精品久久五月天| 欧美激情一区二区在线| 中文字幕一区在线观看视频| 1000精品久久久久久久久| 一区二区三区四区高清精品免费观看| 亚洲精品国产成人久久av盗摄| 亚洲主播在线观看| 欧美aⅴ一区二区三区视频| 国产一二精品视频| 97se亚洲国产综合自在线观| 91福利国产成人精品照片| 欧美精品亚洲一区二区在线播放| 在线综合视频播放| 国产偷国产偷亚洲高清人白洁| 中文字幕一区二区三区不卡| 亚洲成人免费电影| 国内不卡的二区三区中文字幕| 粉嫩13p一区二区三区| 91国产精品成人| 久久精品99国产精品| 久久久久久久av麻豆果冻| 国产精品欧美久久久久无广告| 国产精品网站在线| 亚洲va中文字幕| 国产福利一区二区三区在线视频| 在线视频国内一区二区| 精品国产露脸精彩对白| 亚洲色图在线看| 捆绑紧缚一区二区三区视频 | 亚洲欧美aⅴ...| 亚洲444eee在线观看| 国产精品99久久久| 91精品1区2区| 久久久午夜精品理论片中文字幕| 亚洲尤物视频在线| 国产麻豆一精品一av一免费 | 成人av网站免费| 69堂亚洲精品首页| 国产精品女同一区二区三区| 天天综合天天综合色| 丁香婷婷综合色啪| 日韩一区二区三区电影| 亚洲欧洲综合另类| 日韩女优毛片在线| 色系网站成人免费| 精品88久久久久88久久久| 亚洲人成伊人成综合网小说| 精品在线免费观看| 欧美视频在线不卡| 国产精品成人在线观看| 久久疯狂做爰流白浆xx| 欧美日韩色一区| 亚洲同性同志一二三专区| 国产精品香蕉一区二区三区| 欧美高清你懂得| 亚洲精品高清视频在线观看| 国产福利精品导航| 精品久久久久久久久久久久包黑料| 亚洲一区二区精品久久av| 成人免费视频视频| 精品国产乱码久久久久久浪潮 | 伊人一区二区三区| 成人激情开心网| 久久综合九色欧美综合狠狠 | 国产一区二区三区观看| 日韩欧美视频在线| 日本色综合中文字幕| 欧美日韩精品二区第二页| 亚洲精品视频免费看| 精品国产精品一区二区夜夜嗨| 欧美日韩国产影片| 最新日韩在线视频| 国产91综合网| 国产精品天天摸av网| 国产一区二区免费在线| 26uuu精品一区二区| 奇米精品一区二区三区在线观看 | 欧美日韩成人一区二区| 一区二区三区中文在线观看| 91丨九色porny丨蝌蚪| 中文字幕在线不卡视频| 99国产欧美久久久精品| 亚洲欧美在线高清| 91丨国产丨九色丨pron| 亚洲一区在线视频| 欧美精品国产精品| 视频在线观看91| 欧美一卡2卡3卡4卡| 日本强好片久久久久久aaa| 日韩视频不卡中文| 精东粉嫩av免费一区二区三区| 欧美成人免费网站| 国产精品自拍av| 国产精品女同互慰在线看| 99精品视频一区二区| 一区二区三区在线视频免费观看| 在线看日本不卡| 日本美女一区二区| 2023国产精品自拍| 成人午夜av电影| 亚洲欧美偷拍卡通变态| 欧美另类久久久品| 国产乱码字幕精品高清av | 久久久天堂av| 91在线精品秘密一区二区| 一区二区三区在线免费观看| 欧美精品精品一区| 国产精品影视在线观看| 亚洲欧洲日韩在线| 欧美日韩aaa| 国产高清精品在线| 亚洲激情五月婷婷| 日韩亚洲欧美综合| 国产成人自拍在线| 亚洲九九爱视频| 51午夜精品国产| 成人美女在线观看| 亚洲bt欧美bt精品| 久久久噜噜噜久久人人看 | 亚洲夂夂婷婷色拍ww47| 日韩欧美黄色影院| 99视频热这里只有精品免费| 丝袜美腿亚洲一区二区图片| 国产午夜精品一区二区三区视频 | 精品国产一区二区在线观看| 99久久精品国产观看| 奇米一区二区三区| 亚洲欧洲成人精品av97| 91精品国产综合久久久久久| 粉嫩高潮美女一区二区三区| 亚洲国产一区视频| 欧美国产日韩a欧美在线观看 | 国产午夜精品一区二区| 欧美性色黄大片| 国产成人精品免费| 日韩中文字幕一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 国产欧美日韩综合精品一区二区| 91国在线观看| 成人免费观看男女羞羞视频| 婷婷开心激情综合| 亚洲色欲色欲www| 久久久久久久久久久久电影| 欧美区一区二区三区| 99视频在线精品| 国产精品1区2区3区| 奇米影视7777精品一区二区| 一区二区三区蜜桃| 国产精品久久久久久久久图文区|