下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

教你如何在Cocos2D-X游戏中轻松实现tips功能

作者:课课家教育     来源: http://www.kokojia.com点击数:913发布时间: 2019-03-27 08:56:24

标签: Cocos2D-X游戏Cocos2D-X技巧游戏开发

  在游戏开发中我们有时需要在Cocos2d-x中使用tipx功能,本篇教程将教你如何在Cocos2D-X中轻松实现tips功能。

  tips的行为很简单:点击某个node(我们不妨称它为target_node)触发,当点击区域在target_node范围时出现tips,否则隐藏tips(有些情况需要指定有效点击范围不在某些node中,我们把这些node称为exclude_nodes);当target_node位于屏幕左半边时,tips出现在target_node右侧;否则tips就出现在target_node左侧,tips和target_node有一个固定的水平间距(我们不妨定义为DEFAULT_TIPS_DIST);tips和target_node底部对齐,但tips不能超过屏幕范围。

  不废话,先上代码:

教你如何在Cocos2D-X游戏中轻松实现tips功能_Cocos2D-X游戏_Cocos2D-X技巧_游戏开发_课课家

 

  上面的代码基本是很简单的,除了有几点需要额外说明一下:

  1.几处调用到performWithDelay的地方。这是因为我们用target_node的WorldSpace坐标来确定tips的位置,当target_node位于某个可滚动的node(如ScrollView)中时,需要延迟到下一帧才能拿到它正确的WorldSpace坐标,所以我们用了quickx定义的Node:performWithDelay来做延时。之所以用这个函数而不用scheduler,是因为它在Node的生命周期中,我们不需要担心如何去安全销毁scheduler所产生的handler。事实上我们只要看一下quickx定义在NodeEx.lua中的Node:performWithDelay就一目了然了:

 

  2.我们指定target_node在收到exit事件时隐藏tips,这是因为target_node可能在某些ClippingNode(如ScrollView)中,当它超出区域不再显示时,tips也不应该被显示。

  3.当同一个位置有多个具有tips行为的target_node时,需要判断当前的target_node是否有显示,这需要回溯看父节点的visibility,getCasCADeVisibility定义如下:

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程