c++实践--cocos2dx, 2048v1.0
2048游戏逻辑
采用二维数组作为游戏界面的显示,
2048游戏逻辑: 【1】生成游戏对象(2个数字) CreatePerson() CreatePerson() 【2】更新游戏视图界面 如果胜利就不相应用户输入 if(isWin) { return; } if(up) {ctlfunc()}else if(down) {ctlfunc()}else if(left) {ctlfunc()}else if(right) {ctlfunc()} --------------------------- 随机生成位置CreatePerson() { 只要数组元素为空就生成,并记录当前坐标位置。 } 移动控制ctlfunc() { //对于第0行不需要移动,已经是最上行了 for (int y = 1; y < 4; y++) { for (int x = 0; x < 4; x++) { person = PersonList[x, y]; if (person == null) { //如果当前位置没有对象,则不需要进行任何操作 continue; } //如果当前位置有对象,则执行以下代码 //判断当前位置的前面所有位置是否有对象 int destPos = -1; for (int y1 = y - 1; y1 >= 0; y1--) { personBefore = PersonList[x, y1]; if (personBefore != null) { //如果有,则不再向前找 if (person.name.Equals(personBefore.name)) { //如果是相同的对象则合并,不再需要移动当前对象 destPos = -1; Destroy(person); PersonList[x, y] = null; //更新合并后的数字 personBefore.SendMessage("UpdateLevel"); } break; } else { //如果没有,则继续向前找 destPos = y1; } } if (destPos > -1) { //完成移动 //1、更新位置矩阵信息 PersonList[x, y] = null; PersonList[x, destPos] = person; //2、更改当前游戏对象的位置 person.transform.position += new Vector3(0, (y - destPos) * ItCastHelper.YOffset, 0); } } } //新生成游戏对象 CreatePerson(); }
代码结构:
使用mvc的软件模型,scene和layer的解耦和。
cocos引擎确实够强大,可以很好的练习c++,c代码将linux的内核源代码写到了极致。c++代码将cocos同样写成了极品。仔细的拜读源代码,确实可以很优雅地将程序码出来。
结合网上的资源,加上自己的理解,算是自己也写出一个demo。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。