推荐阅读:
前言
首先,小编在这里给大家道个歉。由于最近被生活折磨得不成人形,在文章输出方面明显能感觉到水的成分,虽然也在持续输出,但是大部分都是转载。
“盼来盼去盼不尽 天涯何处是归鸿”,终于有时间写文章了,来之不易的空闲时间,打算来介绍一下最近做的功能,先来看看成品吧!
功能简介
元朝圣殿,说白了就是一个类爬塔功能。根据星期开启对应类型的爬塔,爬塔按照一层一层的通关要求进行挑战。不可挑战已挑战的,不可跨层挑战。
首先看看主界面:包含帮助按钮,排行榜按钮和中间的5个圣殿。
创建对象,拼接界面如下:
可以发现,main下面的5个对象颜色与其他对象颜色不同,这就是传说中的预制体。
什么是预制体?
简单来说,预制体就是一个模板,你可以使用这个模板来快速生成一个相同的游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象。像上图中主界面场景那样,
这个预置体包括背景,名字,倒计时。他们长相一样却又有差异,就像双胞胎一样,名字不同,衣服(背景)不同,喜好(倒计时)不同一样。那么,怎么修改他们之间的区别呢?这时候我们
有两种解决办法:
1.直接在功能中替换名字背景
2.代码动态修改
由于策划的需求变幻莫测,推荐大家代码可以控制的表现,都用代码实现,手动在工程中修改真的很辛苦~
那么,接下来介绍一下如何代码动态修改。
首先创建一个table来存储这5个对象的信息:名字,背景,倒计时等
ui.relicsAdven = {
}
ui.relicsAdven.Item = {
}--RelicsAdvenItem
ui.relicsAdven.ItemTxt = {
}--名字
ui.relicsAdven.ItemBg = {
}--背景
ui.relicsAdven.openTm = {
}--倒计时
ui.isOpen = {
}--标识该神殿是否开启
for i = 1 , 6 do
ui.relicsAdven.Item[i] = base:findobj("Main/RelicsAdvenItem"..i)
ui.relicsAdven.ItemTxt[i] = utils.findtext(ui.relicsAdven.Item[i],"relicsName/Text")
ui.relicsAdven.ItemBg[i] = utils.findimage(ui.relicsAdven.Item[i],"bg")
ui.relicsAdven.openTm[i] = utils.findtext(ui.relicsAdven.Item[i],"openTm")
utils.addclickevent(ui.relicsAdven.Item[i],base.ClickPoint,i)
ui.isOpen[i] = false
end
接下来便是数据填充阶段了
local testData = {
[1] = {
name = "光之圣殿",bgImg = "1",openTime = {
1,}},
[2] = {
name = "暗之圣殿",bgImg = "2",openTime = {
2,}}