前情回顾

通过CCMainMenu的init函数,已经把所有的按钮,棋子都摆放完毕了,但是这个时候,棋子是不能走动的,只有在开始游戏之后才能移动棋子。

点击aaarticlea/png;base64,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" alt="" />按钮,开始游戏,那么点击开始按钮之后,程序究竟发生了什么事,我们继续看代码到创建这个开始按钮的地方。

开始按钮的创建

开始按钮的创建代码,在上一篇博文中有所提起,但是没有重点提及,是在CCMainMenu::init()函数中

// 开始按钮
pItem = CCMenuItemImage::create(RES_PATH"start.jpg", RES_PATH"start.jpg", this, menu_selector(CCMainMenu::menuStart));
pItem->setPosition(ccp(m_fPositionX - s.width/6, m_fPositionY - s.height/8*3));
pItem->setAnchorPoint(CCPointZero);
pItem->setScaleX(0.667f);
pItem->setScaleY(0.6f); // pMenu = CCMenu::create(pItem, NULL); xueguoliang
pMenu = CCMenu::create(pItem, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);

从上面一段创建开始按钮的代码中,在第一句创建item的代码中,我们见到在第一句中,menu_selector括号中的CCMainMenu::menuStart

所指是启动按钮被点击时,menuStart函数将会被调用。

menuStart函数

void CCMainMenu::menuStart(CCObject* pSender)
{
if(m_enGameStatus != GAME_MENU)
{
return;
}
this->schedule(schedule_selector(CCMainMenu::updateFocus), 0.5f);
m_enGameStatus = GAME_RUNNING;
m_nChessTime = 600;
this->setNumberSprite(m_nChessTime);
}

menuStart函数,主要修改游戏状态为GAME_RUNNING,这个状态让棋子点击有效。

ccTouchesEnded

这个函数是鼠标点击函数,没走一步棋子至少需要鼠标点击两次,一次是选中,一次是移动。都是在这个函数里处理

void CCMainMenu::ccTouchesEnded(CCSet* pTouches, CCEvent* pEvent)
{
if(m_enGameStatus != GAME_RUNNING)
{
return;
}
CCSetIterator it = pTouches->begin();
CCTouch* pTouch = (CCTouch*)(*it);
CCPoint touchPoint = pTouch->getLocationInView();
touchPoint = CCDirector::sharedDirector()->convertToGL(touchPoint);
this->dealWithChess(touchPoint.x, touchPoint.y);
}

这个函数首先判断现在游戏状态,是不是GAME_RUNNING,如果不是,则直接返回
否则,获取坐标点,然后调用dealWithChess函数

dealWithChess

dealWithChess函数时已经确定了在游戏中时,鼠标点击了棋盘中的点

这个函数负责棋子选中和移动的逻辑,详细的代码和注释见如下:

void CCMainMenu::dealWithChess(float x, float y)
{
// 判断是不是棋盘范围
if (x < 24 || x > 294 || y < 14 || y > 312)
{
return;
} CCSprite* pSprite; // 获取该坐标点上的棋子
pSprite = this->getChessByCoord(x, y);
if(!this->getChessByCoord(x, y, 1))
{
// can not find coordinate
return;
}
int x0 = static_cast<int>(x);
int y0 = static_cast<int>(y);
if (pSprite) // 如果点中了每个棋子
{
if(m_bSelect) // 如果之前有选中某个棋子
{
m_pTargetChess = pSprite; // 那么这次选中的棋子是目标
}
else // 如果没选中,那么这次点的棋子是选中的棋子
{
if (!m_nCur && m_enCurChessType < CHESS_BORDER)
{
return;
}
else if(m_nCur && m_enCurChessType > CHESS_BORDER)
{
return;
} m_pFocus->setPosition(pSprite->getPosition());
m_pFocus->setVisible(true);
m_pCurChess = pSprite;
ox = x0;
oy = y0;
m_bSelect = false;
}
} if (m_bSelect)
{
if(!this->judgeAction(x0, y0))
{
this->clean();
return;
}
if((m_enCurChessType < CHESS_BORDER && m_enTarChessType < CHESS_BORDER && m_enTarChessType > CHESS_NONE) ||
(m_enCurChessType > CHESS_BORDER && m_enTarChessType > CHESS_BORDER))
{
this->clean();
return;
}
if(m_pTargetChess && m_pTargetChess != m_pCurChess)
{
m_pTargetChess->setVisible(false);
this->collectInfo(m_pTargetChess);
}
this->collectInfo(m_pCurChess);
CCPoint p = g_chess_coord[x0][y0];
m_pCurChess->setPosition(p);
m_pFocus->setPosition(p);
g_cur_map[x0][y0] = g_cur_map[ox][oy];
g_cur_map[ox][oy] = 0;
//this->print();
m_nCur = m_nCur == 0 ? 1 : 0;
this->clean();
this->judgeWin();
}
else
{
m_bSelect = true;
}
}

cocos2d-x游戏开发系列教程-中国象棋05-开始游戏的更多相关文章

  1. cocos2d-x游戏开发系列教程-中国象棋00-前言

    象棋描述 在说代码之前,我们先让象棋效果登场,以方便大家对代码的理解 欢迎界面 中国象棋程序,运行起来的第一个界面是一个欢迎界面,该欢迎界面在停留一秒后进入游戏界面 游戏主界面 新局:所有棋子归位,状 ...

  2. cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面

    之前两个博客讲述了象棋的规格和工程文件之后,我们继续深入的从代码开始学习cocos2dx 首先从程序入口main函数开始 main函数 int APIENTRY _tWinMain(HINSTANCE ...

  3. cocos2d-x游戏开发系列教程-中国象棋01-工程文件概述

    上一篇博文我们看到了象棋的效果图,这一张我们来看象棋代码的整体概述 让我们先对整个代码框架有个了解. 主目录: 主目录包含内容如上图: classes目录:业务代码 proj.win32:包括main ...

  4. cocos2d-x游戏开发系列教程-中国象棋03-主界面

    前情回顾 上个博客说道我们象棋程序进入了欢迎界面,在欢迎界面下等待一秒进入主界面 进入主界面的关键代码如下: CCScene* pScene = CCMainMenu::scene();  创建sce ...

  5. cocos2d-x游戏开发系列教程-中国象棋06-游戏规则

    前情回顾 上一个博文我们提到象棋运动的函数dealWithChess,但是只是说该函数完成了棋子的选择和移动功能 其实在这个函数里,在移动棋子之前,是要对棋子的移动是否合法进行判断的,我们一起来看看如 ...

  6. cocos2d-x游戏开发系列教程-中国象棋04-摆棋

    前情回顾 在之前的学习中,我们已经了解到,下棋主界面是由CCMainMenu类实现的,在它的init函数中,初始化了 主界面需要的各种数据,包括:创建控件,初始化32个棋子,初始化执行变量等等,在这个 ...

  7. HTML5游戏开发系列教程7(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-7/ 今天我们将完成我们第一个完整的游戏--打砖块.这次教程中,将 ...

  8. HTML5游戏开发系列教程6(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-6/ 这是我们最新一篇HTML5游戏开发系列文章.我们将继续使用c ...

  9. HTML5游戏开发系列教程5(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-5/ 最终我决定准备下一篇游戏开发系列的文章,我们将继续使用can ...

随机推荐

  1. CSS中的repeat

    Repeat-x是横向铺满,就是图片会横向重复,直到铺满. Repeat-y是纵向铺满,就是让图片纵向重复,直到铺满. 如果不想让重复,就直接为:no-repeat.

  2. IOS 指纹识别的简单使用

    首先导入LocalAuthentication框架 然后导入头文件 #import <LocalAuthentication/LAPublicDefines.h> - (void)begi ...

  3. BZOJ 1059: [ZJOI2007]矩阵游戏( 匈牙利 )

    只要存在N个x, y坐标均不相同的黑格, 那么就一定有解. 二分图匹配, 假如最大匹配=N就是有解的, 否则无解 ------------------------------------------- ...

  4. box-shadow 被其他div遮住 shadow was hidden/covered by another div

    使用z-index 来处理 (z-index必须在使用了position的情况下才有效) 参考http://stackoverflow.com/questions/5505118/css-box-sh ...

  5. Week14(12月11日):路由

    Part I:提问 =========================== 1.Visual Studio 2013自带ASP.NET MVC最高版本为(). A.3  B.4  C.5  D.6 2 ...

  6. Nginx+uwsgi+supervisor+Ubuntu+flask

    Nginx+uwsgi+supervisor+Ubuntu+flask Nginx+uwsgi+supervisor在Ubuntu上部署flask应用 网上找了许多讲关于Flask应用部署的文章几乎都 ...

  7. QR码生成原理

    一.什么是QR码 QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化.QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下: 这个图如果被正 ...

  8. QT动画介绍(有例子可以下载)

    所谓动画就是在一个时间段内的不同时间点有不同的状态,只要定义好这样状态,实现动画就是水到渠成的事情.当然做这件事情,最好用的就是状态机,点击这里查看Qt使用状态机实现动画效果实例. 不过,实现动画也有 ...

  9. 字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

    1.字符编码.内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码.早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB231 ...

  10. Uva 167 The Sultan's Successors(dfs)

    题目链接:Uva 167 思路分析:八皇后问题,采用回溯法解决问题. 代码如下: #include <iostream> #include <string.h> using n ...