分享六个游戏中可能用到的功能类代码

本文笔者学习Cocos2d-x有一段时间,写了几个小小的功能类,现在把源码发布出来,与大家交流学习,有任何问题欢迎参与本帖的讨论。

 

这几个简单的类包括:

1.A星寻路

2.虚拟摇杆

3.滚动背景

4.对话框管理

5.简单数字特效

6.简单shader特效

里面都带有简单的Demo,除了shader特效之外都提供2.2.3和3.2两个版本的代码。

Demo地址:https://github.com/bluesky466/cocos2dxUsefulClasses

Demo下载:DEMO.rar

 

1. A星寻路,用于简单的格子地图寻路

Demo用的是Cocos2d-x 3.2,但A*算法类与Cocos2d-x的版本无关,可以在所有版本上使用(点击屏幕添加障碍物,然后按go开始)。

1415599070210058.png

2. 虚拟摇杆

左下角那个就是啦,拖动摇杆可以控制篮球的运动。

1415599210446858.png

 

3. 滚动背景

一个无限滚动背景,也可以做到边滚动边插入和边滚动边删除。

支持背景的从上到下,从下到上,从左到右,从右到左四个方向的滚动。

1415599228549249.png

1415599257212954.png

 

4. 对话框管理

如果鼠标点击位置在对话框之外,自动隐藏对话框,并使得内部控件不可触碰(就算隐藏了,如果不做特殊处理,控件还是会响应触碰事件的)。

1415599272305212.png

 

5. 简单数字特效

就是让数字一点一点增加或者减少,可以选择增加的数目或者变化到的目标数字。

1415599289558908.png

 

6. 简单shader特效

一个简单的shader特效类,能够修改精灵,动画等的颜色。只写了2.2.3的代码,3.2的opengl使用方式有变化。

这个类有bug,就是特效矩阵并不准确,透明通道计算出来的结果并不是最后的显示结果,好奇怪。

默认实现的特效有:

  • ES_NONE               //没有特效

  • ES_BLACK_AND_WHITE    //黑白化

  • ES_OLD_PHOTOS         //老照片

  • ES_INVERT             //反相

  • ES_BURNS              //灼伤(偏红)

  • ES_POISONING          //中毒(偏绿)

  • ES_COLD               //寒冷(偏蓝)

除此之外还能自行输入特效矩阵

1415599406455424.png

1415599429145041.png

1415599437311957.png

1415599446507968.png

文中有关代码有什么地方设计的不好的地方或者遇到bug,欢迎参与本帖的讨论。

 

来源网址:http://www.cocoachina.com/bbs/read.php?tid-238482-page-1.html

posted @ 2015-02-26 17:16  1026438521  阅读(333)  评论(0编辑  收藏  举报