Cocos2d-x教程(8)-遮罩层实现捕鱼达人滚动数字表盘


        Cocos2d-x 3.x版本需修改文件中部分内容,请参考:http://blog.csdn.net/u012945598/article/details/38340845

        玩过捕鱼达人的朋友都知道捕鱼达人记录金币的是一个类似于老虎机表盘的东西,当你打中鱼获得了金币后金币数量会滚动,我们今天将要使用OpenGL提供的遮罩效果来实现一个简单的表盘滚动功能。

        首先新建一个项目,笔者命名为Test,将HelloWorld中的背景替换为下图:

    

        可以看到,实际上表盘只是一张图片,而上面所滚动的数字我们需要用十个CCLabel来实现。新建一个类命名为ScrollLabel,

.h文件中代码如下:


正常情况下,我们仅在draw函数中设置绘图效果,但此处为了能成功遮挡所有子节点的无效绘图,所以使用visit函数设置遮罩效果。visit方法是递归调用的,并且visit方法通过调用draw来实现绘图。再来看一下.cpp文件中的代码:


图中调用setNumber函数时,输入参数为4,则项目运行后,数字会从9滚动到4的位置。

在HelloWorld中引入ScrollLabel的头文件,创建ScrollLabel类的对象,并在init()方法中加入下列代码:


此时我们还没有实现visit函数,让我们来看一下运行效果

我们看到了0-9十个数字都显示在了屏幕上,现在我们利用遮罩层,只让表盘的框格部分显示到屏幕上,重载visit函数,代码如下:


完成上述操作后运行项目,效果图如下:


这就是遮罩层的应用。

        Cocos2d-x 3.x版本需修改文件中部分内容,请参考:http://blog.csdn.net/u012945598/article/details/38340845

        玩过捕鱼达人的朋友都知道捕鱼达人记录金币的是一个类似于老虎机表盘的东西,当你打中鱼获得了金币后金币数量会滚动,我们今天将要使用OpenGL提供的遮罩效果来实现一个简单的表盘滚动功能。

        首先新建一个项目,笔者命名为Test,将HelloWorld中的背景替换为下图:

    

        可以看到,实际上表盘只是一张图片,而上面所滚动的数字我们需要用十个CCLabel来实现。新建一个类命名为ScrollLabel,

.h文件中代码如下:


正常情况下,我们仅在draw函数中设置绘图效果,但此处为了能成功遮挡所有子节点的无效绘图,所以使用visit函数设置遮罩效果。visit方法是递归调用的,并且visit方法通过调用draw来实现绘图。再来看一下.cpp文件中的代码:


图中调用setNumber函数时,输入参数为4,则项目运行后,数字会从9滚动到4的位置。

在HelloWorld中引入ScrollLabel的头文件,创建ScrollLabel类的对象,并在init()方法中加入下列代码:


此时我们还没有实现visit函数,让我们来看一下运行效果

我们看到了0-9十个数字都显示在了屏幕上,现在我们利用遮罩层,只让表盘的框格部分显示到屏幕上,重载visit函数,代码如下:


完成上述操作后运行项目,效果图如下:


这就是遮罩层的应用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值