这篇的内容很简单,获取ui控件,然后使用它。
还记得我们在ui编辑器中给三个按钮分别命名了吧?
现在要用上了。
笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: 文章来源:
首先给tollgatescene再include一些头文件,不然等会编译又报错了:
上面就是比较完整的使用ui所需要用到的头文件了。
然后,获取ui控件的方法如下,继续修改createoprui函数:
helper::seekwidgetbyname函数会从ui里面找控件,一层层的找,父控件找不到,就找子控件,如此递归,最后找的名字相符的控件,返回这个控件对象。
很简单,不多解释喇~
ok,最后一步了,现在按钮摆在那里什么都做不了,我们给按钮添加回调事件~
先给tollgatescene添加三个函数声明:
这是button点击事件回调时所需要的函数格式。
然后,继续修改createoprui函数:
利用addtoucheventlistener函数就可以绑定按钮的回调事件了~
最后了,看看三个回调函数的实现:
是不是感觉有点小复杂?
应该说,有点小麻烦,因为按钮事件绑定的时候,是没有区分“按下”、“移动”、“松开”的,所以我们要自己判断一下,touch_event_ended就是按钮点击,然后松开的时候的事件。
如果大家觉得麻烦,可以自己改源码,添加一些函数,在绑定按钮事件的时候,可以指定绑定哪种事件。以及可以使用std::function来作为参数,这样很方便,当然,跑题了。为了避免大家混乱,这里就不介绍了。
ok,现在大家运行游戏,然后点击这三个操作按钮,看看主角是不是能左右移动以及放屁(向下冲)吧~
下一篇,添加碰撞检测,让主角碰到墙壁之后,进行加血。
没错,就是加血,不是扣血~因为《别救我》胜利的条件是血量为0,碰到墙是要惩罚的~
惩罚的方式就是加血~