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

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

?? tbullet.cpp

?? 一個另類的坦克大戰源程序
?? CPP
字號:
// TBullet.cpp: implementation of the TBullet class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TBullet.h"
#include "TExplode.h"
#include "Tworld.h"

ESound TBullet::m_sound[4];
EPG TBullet::m_epg[4];

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

TBullet::TBullet(int x,int y,DIRECTION dir,BULLET_TYPE nType,int nShield,int nFireRange)
:TSprite(x,y,nShield,0,CLASS_TBULLET),m_nType(nType)
{
	SetDelayTimer(50);
	m_dir = dir;
	m_nFireRange = nFireRange;


	//////////////////////////////////////////
	//計算音效的音量及均衡
	
	int valume,pan;		//音量和均衡
	int w,h;

	//聲源與玩家的距離
	w = x - g_world.Player(0)->GetX();
	h = y - g_world.Player(0)->GetY();

	//計算音效的音量及均衡
	valume = MAX(ABS(w),ABS(h)) * (-10000/800);
	pan = w * (10000/400);

	/////////////////////////////////////////////////
	//跟據類型設置速度

	switch(nType)
	{
	case LIGHT:
		//玩家的子彈,總會聽到聲音的
		m_nSpeed = 15;
		//if(valume>-10000)	//小于最小音量,沒必要播放
		m_sound[2].Play(-1000,pan);
		break;
	case FIRE:
		m_nSpeed = 10;
		if(valume>-10000)
			m_sound[1].Play(valume,pan);
		break;
	case DMISSILE:
		m_nSpeed = 0;		//導彈開始速度為0,然后利用加速度加速
		if(valume>-10000)
			m_sound[0].Play(valume,pan);
		break;
	case SMISSILE:
		m_nSpeed = 0;
		if(valume>-10000)
			m_sound[0].Play(valume,pan);
		break;
	}
}

TBullet::~TBullet()
{

}


void TBullet::Move()
{
	if(!IsMyTime())
		return ;

	TLinkNode * pNode;
	switch(m_nType)
	{
	case FIRE:		//火彈,由火坦克發射的炮彈

		//計算出當前動畫幀
		m_nCurrentFrame = m_dir*3+(m_nCurrentFrame+1)%3;

		//超出射程范圍,發出死亡信息
		if(m_nFireRange<0)
		{
			Dead();
		}

		//擊中玩家了嗎?(即使死了也不讓你好過)
		if(g_world.Player(0)->HitBy(this))
		{
			//擊中目標,任務完成
			Dead();	
		}

		//已經死亡,來個爆炸效果
		if(IsDead())
			g_world.ExplodeLink().Add(NEW TExplode(m_nX,m_nY,EXPLODE_FIRE));

		break;
	case DMISSILE:	//雙導彈,敵軍的導彈
		
		m_nSpeed +=1;	//以加速為1的速度運動

		m_nCurrentFrame = m_dir;	//計算當前動畫的幀

		//超出射程范圍,發出死亡信息
		if(m_nFireRange<0)
			Dead();

		//擊中玩家?
		if(g_world.Player(0)->HitBy(this))
			Dead();

		//死了
		if(IsDead())
		{
			/////////////////////////////////////////////////////
			//雙導彈當然是兩個爆炸效果
			if(m_dir==DIR_RIGHT||m_dir==DIR_LEFT)
			{
				g_world.ExplodeLink().Add(NEW TExplode(m_nX,m_nY+6,EXPLODE_MISSILE));
				g_world.ExplodeLink().Add(NEW TExplode(m_nX,m_nY-6,EXPLODE_MISSILE));
			}else
			{
				g_world.ExplodeLink().Add(NEW TExplode(m_nX+6,m_nY,EXPLODE_MISSILE));
				g_world.ExplodeLink().Add(NEW TExplode(m_nX-6,m_nY,EXPLODE_MISSILE));
			}
		}
		break;
	case SMISSILE:	//單導彈,不用注釋了吧
		m_nSpeed ++;
		m_nCurrentFrame = m_dir;

		if(m_nFireRange<0)
			Dead();
		if(g_world.Player(0)->HitBy(this))
			Dead();

		if(IsDead())
			g_world.ExplodeLink().Add(NEW TExplode(m_nX,m_nY,EXPLODE_MISSILE));
		break;

	case LIGHT:	//我們的武器:)

		m_nCurrentFrame = 0;

		////////////////////////////////////////////////////
		//計算是否打中在鏈表中的敵軍坦克
		
		//取得鏈表中的第一輛坦克
		pNode=g_world.EnemyTankLink().m_pHeader;

		while(pNode)	//還不到鏈尾
		{
			//打中了嗎?
			if(pNode->m_pObject->HitBy(this))
				//Ok,Mission completed
				Dead();
			//取得下一輛坦克
			pNode = pNode->m_pNext;
		}

		////////////////////////////////////////////////////
		//計算是否打中障礙物
		pNode = g_world.ObstacleLink().m_pHeader ;
		while(pNode)
		{
			if(pNode->m_pObject->HitBy(this))
				Dead();
			pNode = pNode->m_pNext;
		}

		if(m_nFireRange<0)
		{
			//太遠了,沒辦法
			Dead();
		}

		//???,為什么沒有爆炸效果?

		break;
	default:
		TRACE(0,"Invalid bullet id");
		break;
	}

	//是不是死了?
	if(!IsDead())
	{
		//沒死,那么繼續移動

		//速度太快了!
		if(m_nSpeed>24)
			m_nSpeed = 24;

		//向前,向前,向前...
		m_nX+=g_nDirXY[m_dir][0]*m_nSpeed;
		m_nY+=g_nDirXY[m_dir][1]*m_nSpeed;

		//改變射程
		m_nFireRange -= m_nSpeed;
	}
}


//////////////////////////////////////////////
//畫子彈
void TBullet::Draw()
{
	POINT p;
	p.x = m_nX;
	p.y = m_nY;
	g_world.LPToDP(p);	//把世界邏輯坐標轉換到設備坐標
	WGE_Surface.Blt(m_epg[m_nType],
		m_nCurrentFrame,
		p.x,p.y );
}

///////////////////////////////////////////////
//取得碰撞矩形
void TBullet::GetRect(RECT& rc)
{
	rc.left = m_nX - m_epg[m_nType].GetFrame(m_nCurrentFrame)->m_nKeyX;
	rc.top = m_nY - m_epg[m_nType].GetFrame(m_nCurrentFrame)->m_nKeyY;
	rc.bottom = rc.top + m_epg[m_nType].GetFrame(m_nCurrentFrame)->m_dwHeight ;
	rc.right = rc.left + m_epg[m_nType].GetFrame(m_nCurrentFrame)->m_dwWidth ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一二三四高清不卡| 91精品国产91久久久久久最新毛片| 久久尤物电影视频在线观看| 国产精品综合久久| 成人av网站大全| 久久99精品国产91久久来源| 国产欧美日韩激情| 欧美日韩精品一区二区三区四区| 蜜臀精品久久久久久蜜臀 | 久久亚洲私人国产精品va媚药| 五月天中文字幕一区二区| 精品91自产拍在线观看一区| 国产在线播精品第三| 五月天亚洲婷婷| 久久久久综合网| 在线国产亚洲欧美| 蜜桃视频免费观看一区| 青草国产精品久久久久久| 久久亚洲精品国产精品紫薇| 国产成人午夜高潮毛片| 免费观看久久久4p| 精品日产卡一卡二卡麻豆| 欧美精品丝袜中出| 欧美精品在线视频| 欧美妇女性影城| 欧美日免费三级在线| 国产不卡在线视频| 亚洲高清一区二区三区| 久久国内精品自在自线400部| 亚洲一区免费视频| 91久久精品一区二区三| 国产精品456| 成人av资源下载| 欧美性猛交xxxx黑人交| 91精品国产高清一区二区三区蜜臀| 日韩免费观看高清完整版| 久久精品亚洲精品国产欧美 | 成人综合日日夜夜| 色欧美日韩亚洲| 日韩欧美一级二级三级久久久 | 久久精品国产秦先生| 国产99久久精品| 欧美日韩精品免费观看视频| 亚洲精品一线二线三线无人区| 国产精品乱码久久久久久| 性久久久久久久| 福利一区二区在线观看| 欧美在线观看18| 久久久国产一区二区三区四区小说| 亚洲欧美日韩国产中文在线| 免费久久精品视频| 91在线观看美女| 日韩三级高清在线| 亚洲人成精品久久久久| 久久精品999| 欧美主播一区二区三区美女| 26uuu另类欧美亚洲曰本| 一区二区三区四区在线播放| 狠狠色伊人亚洲综合成人| 色欧美乱欧美15图片| 精品国产一区二区三区不卡 | 亚洲va国产天堂va久久en| 国产乱妇无码大片在线观看| 在线精品视频免费观看| 国产亚洲综合在线| 午夜免费欧美电影| 91欧美一区二区| 久久―日本道色综合久久| 天堂成人免费av电影一区| 99久久精品国产一区二区三区| 日韩精品一区国产麻豆| 亚洲国产综合在线| 99精品视频在线观看免费| 精品免费国产二区三区| 婷婷久久综合九色综合绿巨人| www.亚洲人| 国产欧美精品一区二区色综合| 日韩av中文在线观看| 在线亚洲一区观看| 国产精品久久久久久久裸模 | 欧美另类z0zxhd电影| 亚洲天堂久久久久久久| 国产成人鲁色资源国产91色综 | 国产精品欧美经典| 国产精品一区在线观看乱码 | 亚洲午夜在线观看视频在线| 成人午夜在线播放| 国产日韩精品一区| 国产一区二区三区在线观看免费视频| 欧美日韩在线免费视频| 一区二区高清视频在线观看| 91在线精品秘密一区二区| 中文字幕av一区二区三区高| 国产精品一区二区在线观看不卡 | 精品久久国产老人久久综合| 日本午夜精品视频在线观看| 欧美日韩国产在线观看| 亚洲高清免费在线| 欧美色视频一区| 午夜精品久久久久影视| 精品视频1区2区3区| 亚洲福利国产精品| 欧美精品九九99久久| 亚洲va韩国va欧美va精品| 欧美日本高清视频在线观看| 亚洲成人精品影院| 欧美精品丝袜中出| 蜜桃av噜噜一区| 日韩欧美第一区| 国产主播一区二区| 欧美国产日本韩| 99精品桃花视频在线观看| 亚洲人成在线播放网站岛国| 91久久精品网| 日韩精品乱码av一区二区| 欧美一激情一区二区三区| 捆绑变态av一区二区三区| 欧美精品一区男女天堂| 国产精品一区二区久久精品爱涩| 久久久精品天堂| 91视频在线观看| 亚洲成人免费视频| 日韩欧美国产麻豆| 国产成人精品网址| 亚洲男同性恋视频| 91精品免费在线观看| 久久精品国产久精国产爱| 国产午夜一区二区三区| a在线欧美一区| 亚洲午夜久久久久久久久电影院| 欧美日韩午夜在线| 极品美女销魂一区二区三区| 国产亚洲欧美中文| 91丨porny丨首页| 日日骚欧美日韩| 久久久久久免费网| 一本大道久久a久久综合婷婷| 亚洲成人激情社区| 久久精品一区二区三区av| 9i在线看片成人免费| 性久久久久久久| 国产亚洲欧美中文| 欧美日韩一区国产| 国产精品综合久久| 亚洲国产中文字幕| 久久伊人蜜桃av一区二区| 91在线视频播放地址| 免费在线看成人av| 日韩理论片一区二区| 91精选在线观看| www.欧美精品一二区| 人人狠狠综合久久亚洲| 国产精品嫩草影院av蜜臀| 欧美日韩成人综合在线一区二区| 国内精品免费在线观看| 亚洲一二三四久久| 国产日韩精品一区二区三区| 欧美日韩在线电影| av高清久久久| 久久国产免费看| 一区二区三区欧美视频| 久久精品一区二区三区av| 欧美日韩国产区一| 成人久久18免费网站麻豆| 男人的天堂亚洲一区| 亚洲欧美激情在线| 久久这里只有精品首页| 91精彩视频在线观看| 国产成人综合自拍| 日韩精品免费视频人成| 亚洲精品乱码久久久久久| 久久久久久久综合色一本| 91精品国产欧美日韩| 97国产一区二区| 国产精品自拍网站| 美女在线视频一区| 亚洲国产aⅴ成人精品无吗| 国产精品第一页第二页第三页| 欧美成人高清电影在线| 欧美日韩和欧美的一区二区| 一本大道久久a久久综合婷婷| 国产精品一品视频| 久久99国产精品久久| 日一区二区三区| 亚洲午夜电影网| 亚洲欧洲av色图| 欧美经典三级视频一区二区三区| 日韩一级大片在线| 欧美日韩极品在线观看一区| 91麻豆视频网站| 波多野结衣在线aⅴ中文字幕不卡| 久久99精品久久久久| 麻豆成人久久精品二区三区红| 亚洲一卡二卡三卡四卡五卡| 亚洲日本在线天堂| 国产精品久久看| 中文字幕欧美日本乱码一线二线| 久久久亚洲高清| 2020国产成人综合网| 日韩一二三区不卡|