📄 game.cpp
字号:
#include "game.h"
ID3DXFont *fontGame=NULL;
ID3DXFont *fontGameCCity=NULL; //////城市文本指针
ID3DXFont *fontGameCS=NULL; /////命令栏控制指针
ID3DXFont *fontGameChoice=NULL; /////项目选择栏的文本指针
ID3DXFont *fontGameCityJLF = NULL; //城市数据显示文本
/*LPDIRECT3DVERTEXBUFFER9 g_pVB;//顶点缓存的接口指针
struct CUSTOMVERTEX
{
float x,y,z,rhw;//顶点坐标
DWORD color;//顶点颜色
};*/
//定义FVF,用到坐标和颜色
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
Game::~Game()
{
}
Game::Game()
{
memset(m_player.CCityT,0,strlen(m_player.CCityT));
m_player.CCityI = -1;
m_player.Choice = -1;
strcpy(m_WP.CCityT[0],City0);
strcpy(m_WP.CCityT[1],City1);
strcpy(m_WP.CCityT[2],City2);
strcpy(m_WP.CCityT[3],City3);
strcpy(m_WP.CCityT[4],City4);
strcpy(m_WP.CCityT[5],City5);
strcpy(m_WP.CCityT[6],City6);
strcpy(m_WP.CCityT[7],City7);
strcpy(m_WP.CCityT[8],City8);
strcpy(m_WP.CCityT[9],City9);
m_WP.CCityI[0] = City00;
m_WP.CCityI[1] = City10;
m_WP.CCityI[2] = City20;
m_WP.CCityI[3] = City30;
m_WP.CCityI[4] = City40;
m_WP.CCityI[5] = City50;
m_WP.CCityI[6] = City60;
m_WP.CCityI[7] = City70;
m_WP.CCityI[8] = City80;
m_WP.CCityI[9] = City90;
m_map.ChoiceBMP.top = 0;
m_map.ChoiceBMP.left = 605;
m_map.ChoiceBMP.right = 800;
m_map.ChoiceBMP.bottom = 420;
for(int i=0; i<10; i++)
{
m_map.Choice[i].top = 38+i*30;
m_map.Choice[i].bottom = 48+i*30;
m_map.Choice[i].left = 620;
m_map.Choice[i].right = 770;
m_WP.TimeCity[i] = 0;
memset(m_map.T_Choice[i],0,50);
m_WP.m_JLF[i] = NULL;
m_WP.m_JLFhead[i] = NULL;
memset(m_map.TT_CityFighter[i],0,50);
memset(m_map.TT_CityGeneral[i],0,50);
memset(m_map.TT_CityPolitician[i],0,50);
memset(m_map.TT_CitySoldier[i],0,50);
memset(m_map.TT_CityStaff[i],0,50);
m_player.W_JLF[i].Codify = -1; ///-1表示什么也没有
m_player.C_JLF[i][0].Codify = -1;
m_player.C_JLF[i][1].Codify = -1;
m_player.C_JLF[i][2].Codify = -1;
m_player.C_JLF[i][3].Codify = -1;
m_player.CityPossess[i] = -1;
m_player.CitySoldier[i] = -1;
m_player.W_JLF[i].Codify = -1;
//////////////////////////////////////////////////////////////
m_WP.CityPossess[i] = -1;
m_map.T_Show[i].top = 210 + i*10;
m_map.T_Show[i].bottom = 220 + i*10;
m_map.T_Show[i].left = 20;
m_map.T_Show[i].right = 250;
// memset(m_map.TT_Show[i],0,50);
// m_map.i_Show[i] = -1;
}
BJ.top = 0;
BJ.bottom = 640;
BJ.left = 0;
BJ.right = 800;
rect_Fa.bottom = 500;
rect_Fa.left = 490;
rect_Fa.right = 810;
rect_Fa.top = 200;
rect_Su.bottom = 500;
rect_Su.left = 50;
rect_Su.right = 350;
rect_Su.top = 200;
rect_Wu.bottom = 670;
rect_Wu.left = 280; ///-125
rect_Wu.right = 580;
rect_Wu.top = 370; ///+125
rect_Wei.bottom = 300;
rect_Wei.left = 280; ///+125
rect_Wei.right = 580;
rect_Wei.top = 20;
for(i =0; i <5; i++)
{
m_map.T_CitySoldier[i].top = 110;
m_map.T_CitySoldier[i].bottom =125;
m_map.T_CitySoldier[i].left = 40 + 120*i -12;
m_map.T_CitySoldier[i].right = 120 + 120*i + 5;
m_map.T_CityGeneral[i].top = 90;
m_map.T_CityGeneral[i].bottom = 105;
m_map.T_CityGeneral[i].left = 40 +120*i -12;
m_map.T_CityGeneral[i].right = 120 + 120*i +5;
m_map.T_CityFighter[i].top = 70;
m_map.T_CityFighter[i].bottom = 85;
m_map.T_CityFighter[i].left = 40 +120*i -12;
m_map.T_CityFighter[i].right = 120 + 120*i +5;
m_map.T_CityStaff[i].top = 50;
m_map.T_CityStaff[i].bottom = 65;
m_map.T_CityStaff[i].left = 40 +120*i -12;
m_map.T_CityStaff[i].right = 120 + 120*i +5;
m_map.T_CityPolitician[i].top = 30;
m_map.T_CityPolitician[i].bottom = 45;
m_map.T_CityPolitician[i].left = 40 +120*i -12;
m_map.T_CityPolitician[i].right = 120 + 120*i +5;
m_map.T_CityCarryOut[i].top = 130;
m_map.T_CityCarryOut[i].bottom = 140;
m_map.T_CityCarryOut[i].left = 40 + 120*i -10;
m_map.T_CityCarryOut[i].right = 40 + 120*i;
m_map.T_CityName[i].top = 190;
m_map.T_CityName[i].bottom = 205;
m_map.T_CityName[i].left = 40+ 120*i;
m_map.T_CityName[i].right = 120+ 120*i;
}
m_map.City[0].top = 130;
m_map.City[0].bottom = 200;
m_map.City[0].left = 40;
m_map.City[0].right = 120;
m_map.City[1].top = 130;
m_map.City[1].bottom = 200;
m_map.City[1].left = 160;
m_map.City[1].right = 240;
m_map.City[2].top = 130;
m_map.City[2].bottom = 200;
m_map.City[2].left = 280;
m_map.City[2].right = 360;
m_map.City[3].top = 130;
m_map.City[3].bottom = 200;
m_map.City[3].left = 400;
m_map.City[3].right = 480;
m_map.City[4].top = 130;
m_map.City[4].bottom = 200;
m_map.City[4].left = 520;
m_map.City[4].right = 600;
for(i =5; i <10; i++)
{
m_map.T_CitySoldier[i].top = 495;
m_map.T_CitySoldier[i].bottom = 510;
m_map.T_CitySoldier[i].left = 40 + 120*(i-5) -12;
m_map.T_CitySoldier[i].right = 120 + 120*(i-5) +5;
m_map.T_CityGeneral[i].top = 515;
m_map.T_CityGeneral[i].bottom = 530;
m_map.T_CityGeneral[i].left = 40 +120*(i-5) -12;
m_map.T_CityGeneral[i].right = 120 + 120*(i-5) +5;
m_map.T_CityFighter[i].top = 535;
m_map.T_CityFighter[i].bottom = 550;
m_map.T_CityFighter[i].left = 40 +120*(i-5) -12;
m_map.T_CityFighter[i].right = 120 + 120*(i-5) +5;
m_map.T_CityStaff[i].top = 555;
m_map.T_CityStaff[i].bottom = 570;
m_map.T_CityStaff[i].left = 40 +120*(i-5) -12;
m_map.T_CityStaff[i].right = 120 + 120*(i-5) +5;
m_map.T_CityPolitician[i].top = 575;
m_map.T_CityPolitician[i].bottom = 590;
m_map.T_CityPolitician[i].left = 40 +120*(i-5) -12;
m_map.T_CityPolitician[i].right = 120 + 120*(i-5) +5;
m_map.T_CityCarryOut[i].top = 420;
m_map.T_CityCarryOut[i].bottom = 490;
m_map.T_CityCarryOut[i].left = 40 + 120*(i-5) -10;
m_map.T_CityCarryOut[i].right = 40 + 120*(i-5);
m_map.T_CityName[i].top = 480;
m_map.T_CityName[i].bottom = 495;
m_map.T_CityName[i].left = 40+ 120*(i-5);
m_map.T_CityName[i].right = 120+ 120*(i-5);
}
m_map.City[5].top = 420;
m_map.City[5].bottom = 490;
m_map.City[5].left = 40;
m_map.City[5].right = 120;
m_map.City[6].top = 420;
m_map.City[6].bottom = 490;
m_map.City[6].left = 160;
m_map.City[6].right = 240;
m_map.City[7].top = 420;
m_map.City[7].bottom = 490;
m_map.City[7].left = 280;
m_map.City[7].right = 360;
m_map.City[8].top = 420;
m_map.City[8].bottom = 490;
m_map.City[8].left = 400;
m_map.City[8].right = 480;
m_map.City[9].top = 420;
m_map.City[9].bottom = 490;
m_map.City[9].left = 520;
m_map.City[9].right = 600;
m_map.TopMenu.top = 20;
m_map.TopMenu.bottom = 400;
m_map.TopMenu.left = 620;
m_map.TopMenu.right = 780;
m_map.TottomMenu.top = 420;
m_map.TottomMenu.bottom = 620;
m_map.TottomMenu.left = 620;
m_map.TottomMenu.right = 780;
m_map.Attack.top = 430;
m_map.Attack.bottom = 460;
m_map.Attack.left = 630;
m_map.Attack.right = 695;
m_map.Swap.top = 430;
m_map.Swap.bottom = 460;
m_map.Swap.left = 705;
m_map.Swap.right = 770;
m_map.Enrol.top = 470;
m_map.Enrol.bottom = 500;
m_map.Enrol.left = 630;
m_map.Enrol.right = 695;
m_map.Conscripy.top = 470;
m_map.Conscripy.bottom = 500;
m_map.Conscripy.left = 705;
m_map.Conscripy.right = 770;
m_map.Appoint.top = 510;
m_map.Appoint.bottom = 540;
m_map.Appoint.left = 630;
m_map.Appoint.right = 695;
m_map.Absolve.top = 510;
m_map.Absolve.bottom = 540;
m_map.Absolve.left = 705;
m_map.Absolve.right = 770;
m_map.T_CityC.top = 560;
m_map.T_CityC.bottom = 590;
m_map.T_CityC.left = 665;
m_map.T_CityC.right = 730;
}
BOOL Game::C_AssayRecv(TCHAR *C_Msg_Recv)
{
if(strcmp(C_Msg_Recv, GameBegin) == 0)
{
i_gamework = GAMEBEGIN;
m_player.SC = 2; ///副Cliect
PostMessage(hWnd,CLIECT_MSG_SEND,(WPARAM)GameBegin_ok,NULL);
delete []C_Msg_Recv;
return TRUE;
}
TCHAR command[30],cdata[8],*head = NULL,*tail = NULL;
int Data[10];
int i= 0;
for(i=0;i<10;i++)
Data[i] = -1;
memset(command,0,30);
BOOL worktail = FALSE;
head = C_Msg_Recv;
tail = strstr(C_Msg_Recv,"=");
strncpy(command, head, tail-head); ///建立命令
head = tail +1;
for(i = 0; i<10; i++)
{
tail = strstr(head,"*");
if(tail == NULL)
{
tail = strstr(head,"|");
worktail = TRUE;
}
memset(cdata,0,8);
strncpy(cdata, head, tail - head);
Data[i] = atoi(cdata);
head = tail +1;
if(worktail == TRUE)
break;
}
this->ExecutionWorking(command,Data);
delete []C_Msg_Recv; ////命令是有new建立的,用完需要清楚
return TRUE;
}
BOOL Game::S_AssayRecv(TCHAR *S_Msg_Recv)
{
int i= 0;
if(strcmp(S_Msg_Recv, GameBegin_ok) == 0)
{
i_gamework = GAMEBEGIN; //游戏进入开始阶段
m_player.SC = 1; ////主Server
//////////////////////////建立游戏界面。
m_player1 = new Player; /////对手玩家
for(i = 0; i< 10 ;i++)
{
m_player1->CityPossess[i] = -1;
m_player1->CitySoldier[i] = -1;
m_player1->W_JLF[i].Codify = -1;
m_player1->C_JLF[i][0].Codify = -1;
m_player1->C_JLF[i][1].Codify = -1;
m_player1->C_JLF[i][2].Codify = -1;
m_player1->C_JLF[i][3].Codify = -1;
m_player1->SC = 0; ////副Cliect
m_player1->CounTry = GAMECOUNTRY; ////暂时无国家
}
delete []S_Msg_Recv;
return TRUE;
}
/////////////////////头命令
TCHAR command[30],cdata[8],*head = NULL,*tail = NULL;
int Data[10];
int len = strlen(S_Msg_Recv);
for(i=0;i<10;i++)
Data[i] = -1;
memset(command,0,30);
BOOL worktail = FALSE;
head = S_Msg_Recv;
tail = strstr(S_Msg_Recv,"=");
strncpy(command, head, tail-head); ///建立命令
head = tail +1;
for(i = 0; i<10; i++)
{
tail = strstr(head,"*");
if(tail == NULL)
{
tail = strstr(head,"|");
worktail = TRUE;
}
memset(cdata,0,8);
strncpy(cdata, head, tail - head);
Data[i] = atoi(cdata);
head = tail +1;
if(worktail == TRUE)
break;
}
this->ExecutionWorking(command,Data);
delete []S_Msg_Recv;////命令是有new建立的,用完需要清楚
return TRUE;
}
BOOL Game::InitGame(HWND hwnd)
{
hWnd = hwnd;
i_gamework = GAMEINIT; ////未开始
m_player.CounTry = GAMECOUNTRY; /////无国家
m_player.SC = -1; /////未确定SC
return TRUE;
}
BOOL Game::InitD3D(LPDIRECT3DDEVICE8 &g_pD3DDevice)
{
LOGFONT lf;
ZeroMemory(&lf, sizeof(LOGFONT));
lf.lfHeight = 25; // in logical units
lf.lfWidth = 25; // in logical units
lf.lfWeight = 500; // boldness, range 0(light) - 1000(bold)
lf.lfItalic = FALSE;
lf.lfUnderline = FALSE;
lf.lfStrikeOut = FALSE;
lf.lfCharSet = DEFAULT_CHARSET;
strcpy(lf.lfFaceName, "Times New Roman"); // font style
D3DXCreateFontIndirect(g_pD3DDevice, &lf, &fontGame);
ZeroMemory(&lf, sizeof(LOGFONT));
lf.lfHeight = 16; // in logical units
lf.lfWidth = 11; // in logical units
lf.lfWeight = 400; // boldness, range 0(light) - 1000(bold)
D3DXCreateFontIndirect(g_pD3DDevice, &lf, &fontGameCCity);
ZeroMemory(&lf, sizeof(LOGFONT));
lf.lfHeight = 14; // in logical units
lf.lfWidth = 14; // in logical units
lf.lfWeight = 400; // boldness, range 0(light) - 1000(bold)
D3DXCreateFontIndirect(g_pD3DDevice, &lf, &fontGameCS);
ZeroMemory(&lf, sizeof(LOGFONT));
lf.lfHeight = 12; // in logical units
lf.lfWidth = 7; // in logical units
lf.lfWeight = 400; // boldness, range 0(light) - 1000(bold)
D3DXCreateFontIndirect(g_pD3DDevice, &lf, &fontGameChoice);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -