#include "JunqiScene.h"
#include "Protocol.h"
#include <String>
#include "StartScene.h"
#include "TalkScence.h"
#define CLAW_W 91
#define CLAW_H 42
#define QZ_W 45
#define QZ_H 20
#define BODER_W 120
#define BODER1_H 17
#define BODER2_H 352
#define LOGIC_W 5
#define QZZBFW 10 //地图上大于10的元素为棋子元素
void CJunqiScene::Init()
{
pGame = CGame::GetGame();
pInput = pGame->GetGI();
pOutput = pGame->GetGO();
pWF = pGame->GetWF();
pOutput->LoadDirectory("Pic");
pOutput->LoadFont("1",10,10,100,false,false,false,"宋体");
pOutput->LoadFont("2",20,20,100,false,false,false,"宋体");
pOutput->LoadFont("3",15,15,100,false,false,false,"宋体");
//UI
LoadUI("布阵",new CButtonUI(552, 355, 620, 375, "大军出征"));
LoadUI("返回",new CButtonUI(552, 375, 620, 395, "返回大厅"));
LoadUI("重新游戏",new CButtonUI(552, 395, 620, 415, "重新游戏"));
SetQuitChange("退出切换2");
SetEnterChange("进入切换2");
//棋盘表
for (int i = 0; i < 30 ;++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W;
RECT r = {BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,BODER_W + x1 * CLAW_W + QZ_W,BODER1_H + y1 * CLAW_H + QZ_H};
m_xqb.push_back(r);
}
for (int i = 30; i < 60 ;++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W % 6;
RECT r = {BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,BODER_W + x1 * CLAW_W + QZ_W,BODER2_H + y1 * CLAW_H + QZ_H};
m_xqb.push_back(r);
}
}
void CJunqiScene::Enter()
{
//隐藏控件
CUI* p = GetUI("重新游戏");
p->SetVisible(false);
m_qzst = 0;
m_dj = 0;
m_dfjq = false;
m_gamebegin = true;
m_bz[0] = m_bz[1] = false;
m_gameover = false;
m_recgameover = false;
m_timeout = 0;
m_enemy_begin = m_enemy_end = -1;
m_bzb.clear();
//布阵表
if (m_qzbh == 1)
{
for (int i = 30; i < 60 ;++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W % 6;
RECT r = {BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,BODER_W + x1 * CLAW_W + QZ_W,BODER2_H + y1 * CLAW_H + QZ_H};
m_bzb.push_back(r);
}
}
else
{
for (int i = 0; i < 30 ;++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W;
RECT r = {BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,BODER_W + x1 * CLAW_W + QZ_W,BODER1_H + y1 * CLAW_H + QZ_H};
m_bzb.push_back(r);
}
}
char qp[65] =
{
1, 2, 1, 2, 1,
0 ,0 ,0 ,0, 0,
0, 3 ,4 ,3 ,0,
0 ,4 ,3 ,4, 0,
0, 3 ,4 ,3, 0,
0, 0 ,0 ,0, 0 ,
0,-1, 0, -1,0, //无效落子区域
0 ,0 ,0 ,0 ,0 ,
0 ,3 ,4 ,3 ,0,
0 ,4, 3 ,4 ,0,
0, 3 ,4 ,3 ,0,
0, 0 ,0 ,0 ,0,
1 ,2 ,1 ,2 ,1
};
for (int i = 0; i < 65; ++i)
m_jqqp[i] = qp[i];
//棋子
if (m_qzbh == 1)
{
char qp2[65] =
{
0,0,0,0,0,//40 ,39 ,38 ,38 ,37,
0,0,0,0,0,//37 ,3 ,31 ,3 ,36,
0,0,0,0,0,//36 ,35, 3 ,35 ,34,
0,0,0,0,0,//34, 3 ,31 ,3 ,34,
0,0,0,0,0,//33, 33 ,31 ,32 ,32,
0,0,0,0,0,//29 ,30 ,29 ,29 ,32
0,-1, 0, -1,0, //无效落子区域
40 ,39 ,38 ,38 ,37,//40 ,39 ,38 ,38 ,37,
37 ,3 ,36 ,3 ,36,//37 ,3 ,31 ,3 ,36,
35 ,35, 3 ,34 ,34,//36 ,35, 3 ,35 ,34,
34, 3 ,33 ,3 ,33,//34, 3 ,31 ,3 ,34,
31, 32 ,32 ,32 ,33,//33, 33 ,31 ,32 ,32,
31 ,30 ,29 ,29 ,29//29 ,30 ,29 ,29 ,32
};
for (int i = 0; i < 65; ++i)
m_jqqz[i] = qp2[i];
}
else
{
char qp2[65] =
{
49 ,50 ,49 ,49 ,58,//40 ,39 ,38 ,38 ,37,
52 ,52 ,51 ,51 ,54,//37 ,3 ,31 ,3 ,36,
52 ,3, 53 ,3 ,53,//36 ,35, 3 ,35 ,34,
55, 54 ,3 ,54 ,53,//34, 3 ,31 ,3 ,34,
55, 3 ,56 ,3 ,56,//33, 33 ,31 ,32 ,32,
60 ,59 ,58 ,57 ,57,//29 ,30 ,29 ,29 ,32
0,-1, 0, -1,0, //无效落子区域
0,0,0,0,0,//40 ,39 ,38 ,38 ,37,
0,0,0,0,0,//37 ,3 ,31 ,3 ,36,
0,0,0,0,0,//36 ,35, 3 ,35 ,34,
0,0,0,0,0,//34, 3 ,31 ,3 ,34,
0,0,0,0,0,//33, 33 ,31 ,32 ,32,
0,0,0,0,0//29 ,30 ,29 ,29 ,32
};
for (int i = 0; i < 65; ++i)
m_jqqz[i] = qp2[i];
}
}
void CJunqiScene::RenderRun()
{
//绘制状态栏
pOutput->DrawRectangle(570,40,770,240,0,RGB(255,255,0));
pOutput->DrawStringS("2",590,62,RGB(0,0,0),"游戏状态");
//绘制超时
if (m_timeout == 1)
{
pOutput->DrawStringS("3",585,100,RGB(255,0,0),"我方行动超时");
}
else if (m_timeout == 2)
{
pOutput->DrawStringS("3",585,100,RGB(255,0,0),"对方行动超时");
}
//绘制状态
std::string s;
switch (m_state)
{
case 0:s = "等待其它用户进入游戏";break;
case 1:s = "我方布阵";break;
case 2:s = "我方移动";break;
case 3:s = "对方移动";break;
case 4:s = "对方移动";break;
case 5:s = "等待对方布阵";break;
case 6:s = "我方胜利";break;
case 7:s = "对方胜利";break;
}
pOutput->DrawStringM("3",585,130,770,205,RGB(0,0,255),s.c_str());
//绘制时间
if (m_state == 2)
{
char buf[32];
sprintf_s(buf,32,"剩余时间:%d",m_t2);
pOutput->DrawStringM("3",585,160,770,205,RGB(0,0,255),buf);
}
//背景棋盘
pOutput->DrawBmp("Pic\\Junqi\\qp.bmp",100,0,452,600,0,0);
//绘制棋子
if (m_qzbh == 1)
{
for (int i = 0 ; i < 30; ++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W ;
if (m_jqqz[i] > QZZBFW)
{
if (m_jqqz[i] >= PLAYER1_QZ_MIN && m_jqqz[i] <= PLAYER1_QZ_MAX)
{
char buf[32];
sprintf_s(buf,32,"Pic\\Junqi\\QZ\\%d.bmp",m_jqqz[i]);
pOutput->DrawBmp(buf,BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
else
pOutput->DrawBmp("Pic\\Junqi\\QZ\\48.bmp",BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
for (int i = 35 ; i < 65; ++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W % 7;
if (m_jqqz[i] > QZZBFW)
{
if (m_jqqz[i] >= PLAYER1_QZ_MIN && m_jqqz[i] <= PLAYER1_QZ_MAX )
{
char buf[32];
sprintf_s(buf,32,"Pic\\Junqi\\QZ\\%d.bmp",m_jqqz[i]);
pOutput->DrawBmp(buf,BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
else
pOutput->DrawBmp("Pic\\Junqi\\QZ\\48.bmp",BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
//是否显示对方军旗
if (m_dfjq && (!m_gameover))
{
int x1,y1 = 0;
if (m_jqqz[1] == 50)
x1 = 1;
else
x1 = 3;
pOutput->DrawBmp("Pic\\Junqi\\QZ\\50.bmp",BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
else
{
for (int i = 0 ; i < 30; ++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W ;
if (m_jqqz[i] > QZZBFW)
{
if (m_jqqz[i] >= PLAYER2_QZ_MIN && m_jqqz[i] <= PLAYER2_QZ_MAX)
{
char buf[32];
sprintf_s(buf,32,"Pic\\Junqi\\QZ\\%d.bmp",m_jqqz[i]);
pOutput->DrawBmp(buf,BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
else
pOutput->DrawBmp("Pic\\Junqi\\QZ\\28.bmp",BODER_W + x1 * CLAW_W,BODER1_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
for (int i = 35 ; i < 65; ++i)
{
int x1 = i % LOGIC_W;
int y1 = i / LOGIC_W % 7;
if (m_jqqz[i] > QZZBFW)
{
if (m_jqqz[i] >= PLAYER2_QZ_MIN && m_jqqz[i] <= PLAYER2_QZ_MAX)
{
char buf[32];
sprintf_s(buf,32,"Pic\\Junqi\\QZ\\%d.bmp",m_jqqz[i]);
pOutput->DrawBmp(buf,BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
else
pOutput->DrawBmp("Pic\\Junqi\\QZ\\28.bmp",BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
//是否显示对方军旗
if (m_dfjq && (!m_gameover))
{
int x1,y1;
if (m_jqqz[61] == 30)
{
x1 = 61 % LOGIC_W;
y1 = 61 / LOGIC_W % 7;
}
else
{
x1 = 63 % LOGIC_W;
y1 = 63 / LOGIC_W % 7;
}
pOutput->DrawBmp("Pic\\Junqi\\QZ\\30.bmp",BODER_W + x1 * CLAW_W,BODER2_H + y1 * CLAW_H,QZ_W,QZ_H,0,0);
}
}
//选中棋子
if (m_dj == 1)
{
RECT r;
if (m_state == 1)
{
r.left = m_bzb[m_begin < 30 ? m_begin : m_begin - 35].left - 2;
r.right = m_bzb[m_begin < 30 ? m_begin : m_begin - 35].right + 2;
r.top = m_bzb[m_begin < 30 ? m_begin : m_begin - 35].top - 2;
r.bottom = m_bzb[m_begin < 30 ? m_begin : m_begin - 35].bottom
没有合适的资源?快使用搜索试试~ 我知道了~
Jun-Qi.rar_军棋_游戏大厅系统
共135个文件
bmp:42个
h:38个
cpp:35个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 162 浏览量
2022-09-23
16:16:11
上传
评论
收藏 1.27MB RAR 举报
温馨提示
网络版的军棋游戏,有客户端和服务器,代码清晰,自带游戏大厅,聊天系统
资源推荐
资源详情
资源评论
收起资源包目录
Jun-Qi.rar_军棋_游戏大厅系统 (135个子文件)
军棋.APS 18KB
登陆界面.bmp 1.37MB
桌面背景.bmp 1.37MB
12.bmp 1.37MB
qp.bmp 795KB
桌子.bmp 20KB
IP按钮2.bmp 16KB
退出按钮.bmp 16KB
登陆按钮2.bmp 16KB
域名按钮2.bmp 16KB
登陆按钮.bmp 16KB
IP按钮.bmp 16KB
域名按钮.bmp 16KB
退出按钮2.bmp 16KB
高亮背景.bmp 7KB
face.bmp 4KB
29.bmp 3KB
58.bmp 3KB
28.bmp 3KB
56.bmp 3KB
36.bmp 3KB
60.bmp 3KB
34.bmp 3KB
48.bmp 3KB
59.bmp 3KB
37.bmp 3KB
54.bmp 3KB
51.bmp 3KB
33.bmp 3KB
30.bmp 3KB
55.bmp 3KB
53.bmp 3KB
49.bmp 3KB
52.bmp 3KB
31.bmp 3KB
32.bmp 3KB
39.bmp 3KB
57.bmp 3KB
38.bmp 3KB
50.bmp 3KB
40.bmp 3KB
35.bmp 3KB
scroll.bmp 2KB
JunqiScene.cpp 17KB
Game.cpp 15KB
GameOutput.cpp 12KB
1.cpp 10KB
TcpServer.cpp 9KB
TcpClient.cpp 8KB
TalkScence.cpp 6KB
GameInput.cpp 5KB
QzMove.cpp 5KB
DeskUI.cpp 5KB
UserListUI.cpp 5KB
StartScene.cpp 5KB
QzDataChange.cpp 4KB
AudioManager.cpp 4KB
QzSpCzMove.cpp 3KB
ReadFile.cpp 3KB
WriteFile.cpp 3KB
MemoryPool.cpp 3KB
MemoryPool.cpp 3KB
GBFindPathW.cpp 2KB
EditUI.cpp 2KB
TCPmsg.cpp 2KB
ButtonUI.cpp 2KB
Scene.cpp 2KB
ImageButtonUI.cpp 1KB
WinMain.cpp 1KB
UI.cpp 797B
QuitChange2.cpp 618B
EnterChange2.cpp 517B
EnterChange3.cpp 503B
EnterChange1.cpp 339B
QuitChange1.cpp 322B
GDEnterChange1.cpp 215B
GDQuitChange1.cpp 205B
Change.cpp 122B
Thumbs.db 46KB
Thumbs.db 44KB
Thumbs.db 18KB
fmod.dll 159KB
fmod.h 73KB
Hash.h 7KB
GameInput.h 4KB
JunqiScene.h 3KB
Protocol.h 3KB
Protocol.h 3KB
GameOutput.h 3KB
Queue.h 2KB
Queue.h 2KB
TcpServer.h 2KB
AudioManager.h 2KB
Vector2D.h 2KB
TcpClient.h 2KB
Game.h 2KB
UI.h 2KB
Matrix3.h 2KB
MyXFORM.h 1KB
Scene.h 1KB
共 135 条
- 1
- 2
资源评论
林当时
- 粉丝: 103
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功