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

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

?? map.cpp

?? 3D俄羅斯方塊源碼.rar
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/********************************************************************
文件名: MAP.cpp
Copyright (c)2004  紅孩兒工作室
創建人  : 卞安
創建時間: 2004-5-18 12:33:30
版本: 1.0
類名: CMAP
說明:
	地圖數據類
********************************************************************/
#include "MAP.h"
#include "BASIC.h"
#define LEV1 0
#define LEV2 2000
#define LEV3 4000
#define LEV4 6000
#define LEV5 8000
#define LEV6 10000
#define LEV7 12000
#define LEV8 14000
#define LEV9 16000
#define LEV10 18000
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
bool Go1=false;//是否下落(一格一格)
bool Go2=false;
int g_row1=19;
int g_row2=19;
bool Isshow=true;//是否顯示
bool Isshow2=true;
bool Go3=false;//結束后用來顯示動畫
bool Go4=false;
int g_count=5;
int g_count2=5;
bool Go12=false;//碰撞后顯示動畫
bool Go22=false;
bool g_bToButtom=false;//是否可以下落至低部
bool g_bToButtom2=false;
bool g_bIsDown=false;//是否正在下落至低部
bool g_bIsDown2=false;
//---------------------------------------------------------------
/********************************************************************
函數名  : init
輸入參數: 
    _which:哪個主角
	hWnd:主窗口
	g_pD3DDevice:D3D設備
	g_pInfo:游戲信息結構

輸出參數: 
	TRUE	成功
	FALSE	失敗
功能描述:
	初始化主角類
全局變量: 無
調用模塊: 無
********************************************************************/
bool CMAP::init(int _type,int _level,int _row,bool _shownext,LPDIRECT3DDEVICE8 pD3DDevice,HWND _hWnd,C2DSOUND *_sound,C2DSOUND *_sound2)
{ 
	m_IsshowNext=_shownext;
	g_level=_level;
	m_type=_type;
	m_hWnd=_hWnd;
	m_pD3DDevice=pD3DDevice;
	m_sound=_sound;
	m_sound2=_sound2;
	RandMap(_row);
	if(FAILED(m_sound->Load("sou\\bottom.wav")))return false;
	if(FAILED(m_sound2->Load("sou\\xiao.wav")))return false;
	for(int i=0;i<9;i++)
	{
		m_tile[i]=new CCuboid(m_pD3DDevice);
		m_tile[i]->SetSize(10.0,10.0,10.0);
		char filename[50];
		wsprintf(filename,"tex\\wood%d.jpg",i);
		m_tile[i]->SetTexture(filename);
	}	
    SetTimer(m_hWnd,1,m_speed,TimerProc);
	SetTimer(m_hWnd,2,m_speed,TimerProc);
	m_level=AddLevel();
	return true;
	
}
/********************************************************************
函數名  : Render
輸入參數: 無
輸出參數: 無
功能描述:
         渲染
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::Render()
{
	for(int i=0;i<20;i++)
		for(int j=0;j<10;j++)
		{
			if(m_map[i][j]==1)
			{
				D3DXMATRIX matWorld;
				D3DXMatrixIdentity(&matWorld);
				if(m_type==2)
				{
					D3DXMatrixTranslation(&matWorld,130+j*10,-40+(-10)*i,-5.0);
				}
				else
				{
					D3DXMatrixTranslation(&matWorld,10+j*10,-40+(-10)*i,-5.0);
				}
				m_pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld);
				m_tile[8]->Render();
			}
		}
		//---------當前方塊渲染------------
		if(m_type==1)
		{
			
			if(m_finish==false)
			{
				if(Isshow)
				{
					for(int i2=0;i2<4;i2++)
						for(int j2=0;j2<4;j2++)
						{
							if(m_thistile->m_struct[i2][j2]==1)
							{
								D3DXMATRIX matWorld;
								D3DXMatrixIdentity(&matWorld);
								if(g_bIsDown)
								{
								D3DXMatrixTranslation(&matWorld,10+m_x*10+j2*10,-40+(-10)*m_fy+(-10)*i2,-5.0);
								}
								else
								{
								D3DXMatrixTranslation(&matWorld,10+m_x*10+j2*10,-40+(-10)*m_y+(-10)*i2,-5.0);
								}
								m_pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld);
								m_tile[m_thistile->Getstyle()-1]->Render();
							}
						}
				}
				if(Go1==true)
				{
					GoDown(m_thistile);
				}
				Go1=false;
				if(g_count==1)
				{
					if(Go3==true)
					{			
						if(m_cancon==false)
						{
							m_cancon=true;		
							Isshow=true;
							if(DoXiaoAni()==true)
							{
								Go3=false;
							}
						}
					}
				}
						if(g_bToButtom)//如果要下落至低部
						{
			              GoButtom(m_thistile);
						  g_bToButtom=false;
						}
			}
			else
			{
				GoFinish1();
			}
			
		}
		else
		{
			if(m_finish==false)
			{
				if(Isshow2)
				{
					for(int i2=0;i2<4;i2++)
						for(int j2=0;j2<4;j2++)
						{
							if(m_thistile->m_struct[i2][j2]==1)
							{
								D3DXMATRIX matWorld;
								D3DXMatrixIdentity(&matWorld);
								if(g_bIsDown2)
								{
								D3DXMatrixTranslation(&matWorld,130+m_x*10+j2*10,-40+(-10)*m_fy+(-10)*i2,-5.0);
								}
								else
								{
								D3DXMatrixTranslation(&matWorld,130+m_x*10+j2*10,-40+(-10)*m_y+(-10)*i2,-5.0);
								}
								m_pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld);
								m_tile[m_thistile->Getstyle()-1]->Render();
							}
						}
				}
				if(Go2==true)
				{
					GoDown(m_thistile);
				}
				Go2=false;
				if(g_count2==1)
				{
					
					if(Go4==true)	
					{
						
						if(m_cancon==false)
						{
							m_cancon=true;
							Isshow2=true;
							if(DoXiaoAni()==true)
							{
								Go4=false;		
							}
						}
					}
				}
					   if(g_bToButtom2)//如果要下落至低部
						{
			              GoButtom(m_thistile);
						  g_bToButtom2=false;
						}
			}
			else
			{
				GoFinish2();
			}
			
		}

		
		RenderNext();
}
/********************************************************************
函數名  : RenderNext
輸入參數: 無
輸出參數: 無
功能描述:
         渲染一個方塊
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::RenderNext()
{
	if(m_IsshowNext==true)
	{
		//---------下一個方塊渲染------------
		for(int i5=0;i5<4;i5++)
			for(int j6=0;j6<4;j6++)
			{
				if(m_lasttile->m_struct[i5][j6]==1)
				{
					D3DXMATRIX matWorld2,matWorld3;
					D3DXMatrixIdentity(&matWorld3);
					D3DXMatrixRotationY( &matWorld3, timeGetTime()/1000.f );
					D3DXMatrixIdentity(&matWorld2);
					if(m_type==2)
					{
						D3DXMatrixTranslation(&matWorld2,190+j6*10,10+(-10)*i5,-5.0);
					}
					else
					{
						D3DXMatrixTranslation(&matWorld2,70+j6*10,10+(-10)*i5,-5.0);
					}
					D3DXMatrixMultiply(&matWorld3,&matWorld3,&matWorld2);
					m_pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld3);
					m_tile[m_lasttile->Getstyle()-1]->Render();
				}
			}
	}
}
/********************************************************************
函數名  : RandMap
輸入參數: _row 行數
輸出參數: 無
功能描述:
         隨機生成地圖
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::RandMap(int _row)
{
	m_nowrow=_row;
	for(int i=0;i<_row;i++)
	{
		for(int j=0;j<10;j++)
		{
			srand(timeGetTime());
			::_sleep(20);
			if(rand()%4==1)
			{
				m_map[19-i][j]=1;
			}
		}
		if(m_map[19-i][0]==m_map[19-i][1])
		{
			m_map[19-i][rand()%9]=1;
			m_map[19-i][rand()%9+1]=0;
		}
	}
}
/********************************************************************
函數名  : AddToMap
輸入參數: _row 行數
輸出參數: 無
功能描述:
         使行數增加
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::AddToMap(int _row)
{
	for(int count=0;count<_row;count++)
	{
		for(int i=0;i<19;i++)
		{
			for(int j=0;j<10;j++)
			{
				m_map[i][j]=m_map[i+1][j];
			}
		}
	}
	for(int i2=0;i2<_row;i2++)
		for(int j2=0;j2<10;j2++)
		{
			m_map[19-i2][j2]=0;
		}
		//-------機率問題---------
		for(int i3=0;i3<_row;i3++)
		{
			for(int j3=0;j3<10;j3++)
			{
				srand(timeGetTime());
				::_sleep(20);
				if(rand()%4==1)
				{
					m_map[19-i3][j3]=1;
				}
			}
			if(m_map[19-i3][0]==m_map[19-i3][1])
			{
				m_map[19-i3][rand()%9]=1;
				m_map[19-i3][rand()%9+1]=0;
			}
		}
}
/********************************************************************
函數名  : IsAttack
輸入參數: _tile為方塊
輸出參數: 無
功能描述:
         判斷碰撞
全局變量: 無
調用模塊: 無
********************************************************************/
bool CMAP::IsAttack(CELSTILE *_tile)
{
    for(int i=0;i<4;i++)
		for(int j=0;j<4;j++)
		{
			if(_tile->m_struct[i][j]==1)
			{
				if(m_y+i==19)return true;
				if(m_map[m_y+i+1][m_x+j]==1)
					return true;
			}
		}
		return false;
}
/********************************************************************
函數名  : GoDown
輸入參數: _tile為方塊
輸出參數: 無
功能描述:
         下落
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::GoDown(CELSTILE *_tile)
{
	if(false==IsAttack(_tile))
	{
        m_y++;
	}
	else
	{
		DoAttack(_tile);	
	}
}
/********************************************************************
函數名  : GoButtom
輸入參數: _tile為方塊
輸出參數: 無
功能描述:
         下落至低部
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::GoButtom(CELSTILE *_tile)
{   
	static float addspeed=0.3;
	
	if(false==IsAttack(_tile))
	{
		addspeed+=0.02;
        m_fy+=addspeed;	
		m_y=(int)m_fy;
	}
	else
	{
		DoAttack(_tile);	
		if(m_type==1)
		{
		KillTimer(m_hWnd,11);
		g_bIsDown=false;
		addspeed=0.3;
		}
		else
		{
        KillTimer(m_hWnd,12);
		g_bIsDown2=false;
		addspeed=0.3;
		}
	}	
}

/********************************************************************
函數名  : StartGoButtom
輸入參數: _tile為方塊
輸出參數: 無
功能描述:
         開始下落至低部
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::StartGoButtom()
{
		if(m_type==1)
		{
	SetTimer(m_hWnd,11,1,TimerProc);
	g_bIsDown=true;
		}
		else
        {
	SetTimer(m_hWnd,12,1,TimerProc);
	g_bIsDown2=true;
		}
		m_fy=(float)m_y;
}
/********************************************************************
函數名  : 構造函數
輸入參數: 無
輸出參數: 無
功能描述:
         初始化
全局變量: 無
調用模塊: 無
********************************************************************/
CMAP::CMAP()
{
	m_x=3;
	m_y=0;
    m_score=0;//分數
    m_level=1;//級別
	m_speed=2000;//速度
	m_finish=false;//是否結束
	m_Isdown=false;//是否在下落
	m_cancon=true;
}
 /********************************************************************
函數名  : 析構函數
輸入參數: 
輸出參數: 
功能描述:
       刪除指針并釋放變量
全局變量: 無
調用模塊: 無
********************************************************************/
CMAP::~CMAP()
{
	for(int i=0;i<9;i++)
		SAFE_DELETE(m_tile[i]);
}
/********************************************************************
函數名  : CleanUp
輸入參數: 無
輸出參數: 無
功能描述:
        刪除指針并釋放變量
全局變量: 無
調用模塊: 無
********************************************************************/
void CMAP::CleanMap()
{
	for(int i=0;i<20;i++)
		for(int j=0;j<10;j++)
		{
			m_map[i][j]=0;
		}
}
/********************************************************************
函數名  : AddLevel
輸入參數: 無
輸出參數: 無
功能描述:
         等級判斷
全局變量: 無
調用模塊: 無
********************************************************************/
int CMAP::AddLevel()
{
	if(m_score>=LEV10)
	{
		return g_level+9;
	}
	if(m_score>=LEV9)
	{
		return g_level+8;
	}
	if(m_score>=LEV8)
	{
		return g_level+7;
	}
	if(m_score>=LEV7)
	{
		return g_level+6;
	}
	if(m_score>=LEV6)
	{
		return g_level+5;
	}
	if(m_score>=LEV5)
	{
		return g_level+4;
	}
	if(m_score>=LEV4)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美主播一区二区三区美女| 国产91精品露脸国语对白| 欧美激情一区二区三区四区| 51精品秘密在线观看| 99久久国产免费看| av日韩在线网站| www.日韩在线| 91麻豆文化传媒在线观看| 成+人+亚洲+综合天堂| proumb性欧美在线观看| 不卡电影一区二区三区| 成人午夜在线播放| 94色蜜桃网一区二区三区| 成人免费毛片app| 91视频在线看| 欧美日韩激情一区二区| 91精品国产乱| 精品免费国产一区二区三区四区| 日韩精品一区在线观看| 久久亚区不卡日本| 国产精品欧美综合在线| 亚洲天天做日日做天天谢日日欢| 亚洲视频在线一区| 亚洲动漫第一页| 美女视频免费一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲成人在线免费| 国产精品自拍网站| 国产成人8x视频一区二区| av中文字幕一区| 欧美日韩一本到| 2023国产精品视频| 亚洲理论在线观看| 人人爽香蕉精品| 丁香婷婷综合色啪| 欧美日韩高清一区二区| 欧美精品一区二区在线播放| 国产精品久久久久婷婷| 亚洲成av人片一区二区三区| 紧缚捆绑精品一区二区| 一本高清dvd不卡在线观看| 9191国产精品| 中文字幕综合网| 日韩和欧美的一区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美视频在线一区| 国产精品情趣视频| 久久成人av少妇免费| 一本色道久久综合亚洲91| 日韩欧美国产综合一区 | 国产精品白丝av| 在线观看一区不卡| 国产日韩亚洲欧美综合| 午夜精品久久久久久久久久 | 欧美xxxx在线观看| 一区二区三区四区不卡在线 | 久久久99久久| 五月天丁香久久| 91在线云播放| 国产三级欧美三级日产三级99| 亚洲国产综合在线| 99国产一区二区三精品乱码| 精品国产91亚洲一区二区三区婷婷 | www.性欧美| 久久夜色精品国产欧美乱极品| 亚洲一区二区成人在线观看| 国产精品1024久久| 欧美一级一区二区| 日韩精彩视频在线观看| 欧美综合天天夜夜久久| 亚洲欧美另类久久久精品| 风间由美性色一区二区三区| 精品国产制服丝袜高跟| 日本系列欧美系列| 91精品国产入口| 日韩在线a电影| 91精品国产欧美日韩| 五月综合激情日本mⅴ| 欧美三级乱人伦电影| 亚洲美女淫视频| 色婷婷久久综合| 亚洲精品videosex极品| 色综合久久综合| 亚洲一卡二卡三卡四卡 | 日本不卡的三区四区五区| 欧美中文字幕一二三区视频| 一区二区三区在线高清| 日本乱码高清不卡字幕| 亚洲图片欧美一区| 欧美日韩久久一区二区| 日韩电影在线观看网站| 91精品在线免费| 精油按摩中文字幕久久| 国产亚洲精品久| 丁香天五香天堂综合| 国产精品久久久久久久裸模| 成+人+亚洲+综合天堂| 亚洲女子a中天字幕| 91国偷自产一区二区使用方法| 亚洲一区二区三区国产| 欧美一级一区二区| 国产乱子轮精品视频| 国产精品人妖ts系列视频| 99久久99久久精品国产片果冻 | 成人欧美一区二区三区黑人麻豆| 91视频观看免费| 日韩影院免费视频| 久久这里只有精品首页| 99re亚洲国产精品| 日韩黄色一级片| 国产喷白浆一区二区三区| 91丝袜美腿高跟国产极品老师| 亚洲大型综合色站| 久久久久久久久久久久久久久99 | 国产福利91精品| 中文字幕一区二区三| 欧美高清视频一二三区| 国产精品99久久久久久有的能看 | 亚洲黄网站在线观看| 欧美一个色资源| av一区二区三区在线| 奇米在线7777在线精品| 国产精品国产三级国产aⅴ无密码| 欧美日韩亚洲国产综合| 国产福利电影一区二区三区| 午夜精品视频在线观看| 中文av字幕一区| 日韩视频一区在线观看| 色哟哟国产精品| 9i在线看片成人免费| 美女www一区二区| 一区二区三区四区不卡在线 | 国产乱子轮精品视频| 夜夜揉揉日日人人青青一国产精品| 日韩精品中文字幕一区二区三区| 91丨九色丨黑人外教| 国产精品一区二区你懂的| 日韩不卡免费视频| 一区二区三区电影在线播| 久久精品综合网| 2019国产精品| 日韩精品一区二区三区中文不卡| 欧洲av一区二区嗯嗯嗯啊| 国产成人精品免费在线| 久久激五月天综合精品| 亚洲国产日韩精品| 亚洲精选在线视频| 日韩理论片一区二区| 国产精品女主播av| 国产香蕉久久精品综合网| 欧美mv和日韩mv的网站| 3d动漫精品啪啪一区二区竹菊 | 一本久久综合亚洲鲁鲁五月天| 国产在线视频精品一区| 麻豆91免费观看| 美女国产一区二区| 久久精品国产网站| 麻豆精品久久精品色综合| 婷婷一区二区三区| 免费精品99久久国产综合精品| 亚洲va欧美va人人爽| 午夜精品成人在线视频| 午夜精品久久久久久久| 五月婷婷久久综合| 日韩**一区毛片| 日韩电影在线一区| 麻豆91精品视频| 国产盗摄女厕一区二区三区 | 国产精品色眯眯| 国产精品美女久久久久久久久| 亚洲国产精品av| 中文字幕制服丝袜成人av| 亚洲视频在线一区| 亚洲成a人v欧美综合天堂下载| 日韩黄色在线观看| 国内成人精品2018免费看| 国产91富婆露脸刺激对白| 99久久精品免费看| 欧美日韩dvd在线观看| 日韩欧美中文一区| 国产欧美1区2区3区| 亚洲乱码中文字幕综合| 日韩中文字幕区一区有砖一区 | 激情文学综合插| www.久久精品| 欧美视频中文字幕| 2020国产精品| 一卡二卡欧美日韩| 精品一区二区国语对白| 成人精品小蝌蚪| 欧美色图第一页| 亚洲特级片在线| 日本不卡1234视频| 成人免费毛片a| 欧美日韩免费电影| 国产精品免费视频一区| 亚洲成av人片| 成人高清视频在线| 日韩欧美精品在线视频| 一区二区三区日韩精品视频|