首页
课程中心
LUA实例应用
自定义UI管理(二)
自定义UI管理(二)
小燕 更新时间: 2022-08-25 11:26:41

LUA实例应用:自定义UI管理(二)

本课我们将继续学习自定义UI管理的相关知识。首先我们会学习界面事件的使用方法, 并且使玩家打开某个界面的时候进入无敌状态。我们还会学习文本元件的使用方法,利用脚本控制文本元件显示的文字内容,以及字体大小、颜色等元件属性。

 

视频时间节点:

  • 界面事件:12:12
  • 文本元件:17:47
  • 元件属性:28:52

 

老师介绍:

 
界面事件
-- 界面中的按钮被松开时运行
local function UI_Button_Click(event)
    -- 按下返回键
    if(event.btnelenemt == [[7066760716660726930_4]])
    then 
        local uin = event.eventobjid
        local uiid = [[7066760716660726930]] -- 要隐藏的界面id
        Player:hideUIView(uin, uiid) -- 给玩家隐藏界面
        local uin = event.eventobjid
        local uiid = [[7066719545104227474]] -- 要打开的界面id
        Player:openUIView(uin, uiid) -- 给玩家显示界面
    end
end

-- 注册界面中的按钮被松开监听器
ScriptSupportEvent:registerEvent([=[UI.Button.Click]=], UI_Button_Click)

-- 界面显示时运行
local function UI_Show(event)
    if(event.CoustomUI == [[7066760716660726930]])
    then 
        Actor:addBuff(event.eventobjid, 999, 1, 0)
    end
end

-- 注册界面显示监听器
ScriptSupportEvent:registerEvent([=[UI.Show]=], UI_Show)

-- 界面隐藏时运行
local function UI_Hide(event)
    if(event.CoustomUI == [[7066760716660726930]])
    then 
        Actor:removeBuff(event.eventobjid, 999)
    end
end

-- 注册界面隐藏监听器
ScriptSupportEvent:registerEvent([=[UI.Hide]=], UI_Hide)

 

万年历

--%a  一星期中天数的简写(Wed)
--%A  一星期中天数的全称(Wednesday)
--%b  月份的简写(Sep)
--%B  月份的全称(September)
--%c  日期和时间(09/16/98 23:48:10)
--%d  一个月中的第几天[0 ~ 31]
--%H  24小时制中的小时数[00 ~ 23]
--%I  12小时制中的小时数[01 ~ 12]
--%j  一年中的第几天[01 ~ 366]
--%M  分钟数[00 ~ 59]
--%m  月份数[01 ~ 12]
--%P  上午(am) 或 下午(pm)
--%S  秒数[00 ~ 59]
--%w  一星期中的第几天[0 ~ 6 = 星期天 ~ 星期六]
--%W 一年中的第几个星期0 ~ 52
--%x  日期(09/16/98)
--%X  时间(23:48:10)
--%y  两位数的年份[00 ~ 99]
--%Y  完整的年份
--%%  字符串'%'

player_list = {}

-- 有玩家进入游戏时运行
local function Game_AnyPlayer_EnterGame(event)
    player_list[#player_list + 1] = event.eventobjid
end

-- 注册有玩家进入游戏监听器
ScriptSupportEvent:registerEvent([=[Game.AnyPlayer.EnterGame]=], Game_AnyPlayer_EnterGame)

week_list = {[0] = "天", "一", "二", "三", "四", "五", "六"}

-- 游戏运行到某秒时运行
local function Game_RunTime(event)
    if(event.second)
    then 
        for k,v in pairs(player_list)
        do 
            local os_time = os.time() --返回从1070.1.1到当前的秒数
            local playerid=v
            local uiid=[[7066760716660726930]]--界面id
            -- 日期
            local elementid=[[7066760716660726930_12]]--文本元件id
            local text=os.date("%Y", os_time).."年"..os.date("%m", os_time).."月"..os.date("%d", os_time).."日"--要设置的文本内容
            --设置玩家的文本元件的显示内容
            Coustomui:setText(playerid, uiid, elementid, text)
            -- 时间
            local elementid=[[7066760716660726930_13]]--文本元件id
            local text=os.date("%H:%M:%S", os_time)--要设置的文本内容
            --设置玩家的文本元件的显示内容
            Coustomui:setText(playerid, uiid, elementid, text)
            -- 星期
            local elementid=[[7066760716660726930_14]]--文本元件id
            local text="星期"..week_list[tonumber(os.date("%w", os_time))]--要设置的文本内容
            --设置玩家的文本元件的显示内容
            Coustomui:setText(playerid, uiid, elementid, text)
        end
    end
end

-- 注册游戏运行到某秒监听器
ScriptSupportEvent:registerEvent([=[Game.RunTime]=], Game_RunTime)
课程目录
共50节
1 事件系统
2 世界事件
3 游戏逻辑事件
4 玩家事件(一)
5 玩家事件(二)
6 玩家事件(三)
7 玩家事件(四)
8 生物事件
9 方块与道具事件
10 世界管理(一)
11 世界管理(三)
12 世界管理(二)
13 方块管理(一)
14 方块管理(二)
15 Actor管理(一)
16 Actor管理(二)
17 Actor管理(三)
18 玩家管理(一)
19 玩家管理(二)
20 生物管理
21 区域管理(一)
22 区域管理(二)
23 区域管理(三)
24 联机管理
25 背包管理
26 文字板管理
27 容器管理
28 自定义UI管理(一)
29 自定义UI管理(二)
30 自定义UI管理(三)
31 自定义UI应用(一)
32 自定义UI应用(二)
33 自定义UI应用(三)
34 自定义UI应用(四)
35 考试系统
36 购物商城(一)
37 购物商城(二)
38 计算器
39 打击类音游
40 弹球游戏
41 追逐游戏
42 空战游戏(一)
43 空战游戏(二)
44 空战游戏(三)
45 颜色跳跳
46 炮台挑战
47 炸弹游戏
48 推箱子
49 心跳水立方
50 塔防游戏
站点有内容要更新是否更新。
更新
忽略