设置按钮不可见_《Cocos Creator游戏实战》实现下拉框按钮ComboBox控件

f894e87bdc8d4f02fdf821ead1fa24c5.png

官方目前并没有在Cocos Creator中提供ComboBox控件,不过我们自己完全可以做一个,实现起来并不难。

运行效果如下:

dd7f884aa09ccfe8deb80bc816ce6172.gif

Cocos Creator版本:2.2.0

公号后台回复"下拉框",获取完整项目源码。

创建节点

72e9d2ef49f00855448a31ed80131cc5.png

1. bg只是一个Sprite节点,用来当做画布背景。

2. 重点是combobox节点。它其实是一个按钮,background子节点为按钮背景,triangle子节点类型同样为Sprite,而label就是按钮上的文本了。

bb7bfb2e0215a9baaae13a1ee129ce81.png

我们将combobox节点上的按钮组件Transition属性设置为None(之后笔者将通过三角形图片的旋转来体现玩家点击操作):

03259f17c78115e430b60c67cf8042d2.png

注:关于所有节点的坐标、锚点和大小设置,笔者这里就不再截图,大家可以直接打开项目查看(大家当然也可以根据自己喜好来调整)。

我们给triangle和label节点挂上Widget组件,让他们在按钮上的相对位置固定:

triangle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的提问!在这里,我将为您详细介绍成语小秀才的 TypeScript 版本实现过程。 首先,我们需要明确成语小秀才的功能需求: 1. 随机生成一个四字成语 2. 在输入框中输入猜测的成语 3. 判断猜测的成语是否符合规则(四个字,每个字都必须是汉字) 4. 判断猜测的成语是否是正确的成语 5. 根据猜测结果进行相应的反馈和操作 接下来,我们将一步步实现这些功能。 1. 随机生成一个四字成语 我们可以事先准备一个成语列表,然后使用 Math.random() 方法从列表中随机选择一个成语。这里我们使用 TypeScript 的枚举类型来定义成语列表,并且使用随机数生成器函数 getRandomIntInclusive() 来实现随机选择功能。 ```typescript enum Idioms { "天渊之别" = 0, "堂皇冠冕" = 1, "百里挑一" = 2, // 其他成语... "远见卓识" = 999, } function getRandomIntInclusive(min: number, max: number): number { return Math.floor(Math.random() * (max - min + 1) + min); } const randomIdiom: string = Idioms[getRandomIntInclusive(0, Object.keys(Idioms).length / 2 - 1)]; ``` 2. 在输入框中输入猜测的成语 我们可以使用 HTML 的 input 元素来实现输入框,然后使用 TypeScript 的 DOM 操作函数来获取输入框中的值。 ```typescript const inputElement: HTMLInputElement = document.querySelector('input'); const input: string = inputElement.value.trim(); ``` 3. 判断猜测的成语是否符合规则 我们可以使用正则表达式来判断猜测的成语是否符合规则。这里我们使用 Unicode 中文字符集来匹配汉字。 ```typescript const regex: RegExp = new RegExp(/^[\u4e00-\u9fa5]{4}$/); if (!regex.test(input)) { console.log('请输入一个四字汉语成语!'); return; } ``` 4. 判断猜测的成语是否是正确的成语 我们可以使用 includes() 方法来判断猜测的成语是否在成语列表中。由于成语列表是一个枚举类型,我们需要转换成数组进行判断。 ```typescript const idioms: string[] = Object.keys(Idioms).map(key => Idioms[key]); if (!idioms.includes(input)) { console.log('猜错了,再试一次吧!'); return; } ``` 5. 根据猜测结果进行相应的反馈和操作 根据猜测结果,我们可以输出相应的信息,并且进行相应的操作。这里我们使用 TypeScript 的 DOM 操作函数来实现输出信息的功能。 ```typescript const outputElement: HTMLDivElement = document.querySelector('div'); if (input === randomIdiom) { outputElement.textContent = '恭喜你,猜对了!'; // 猜对了的操作... } else { outputElement.textContent = '猜错了,再试一次吧!'; // 猜错了的操作... } ``` 综上所述,以上就是成语小秀才的 TypeScript 版本实现过程。希望这篇文章能够帮助到您!如有任何疑问,请随时与我联系。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值