首页
课程中心
LUA实例应用
文字板管理
文字板管理
小燕 更新时间: 2022-08-25 11:26:10

LUA实例应用:文字板管理

本课我们将学习文字板管理的相关知识。文字板接口除了显示文字之外,还可以显示箭头,线和面。

 

视频时间节点:

  • 显示进度条:15:29
  • 显示箭头:22:43
  • 显示线面:29:38

 

老师介绍:

 
显示箭头
player_list = {}
safe_pos = {}

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

-- 游戏运行时运行
local function Game_RunTime(event)
    if(event.second%30 == 1)
    then 
        -- 停止特效
        for i = 0, 100 
        do 
            World:stopEffectOnPosition(safe_pos.x,i,safe_pos.z,1293)
        end
        -- 生成安全点
        local result, areaid = Area:createAreaRect({x=-10,y=62,z=230}, {x=50,y=0,z=50})
        if(result == 1001)
        then 
            Chat:sendSystemMsg("创建区域失败")
        end 
        result, safe_pos = Area:getRandomPos(areaid)
        if(result == 1001)
        then 
            Chat:sendSystemMsg("获取随机位置失败")
        end 
        for i = 0, 100 
        do 
            World:playParticalEffect(safe_pos.x,i,safe_pos.z,1293,1)
        end
        for k,v in pairs(player_list)
        do 
            -- 显示箭头
            local x,y,z=safe_pos.x,safe_pos.y,safe_pos.z--指向坐标
        	local size=0.5--箭头大小
        	local color=0xff0000--箭头颜色
        	local id=1--箭头数据编号
        	--创建一个指向位置的箭头数据
        	local info=Graphics:makeGraphicsArrowToPos(x, y, z, size, color, id)
        	local objid=v--在玩家身上创建
        	local dir={x=0,y=10,z=0}--偏移方向
        	local offset=10--偏移距离
        	--在生物身上创建指向坐标的箭头
        	Graphics:createGraphicsArrowByActorToPos(objid, info, dir, offset)
        end
    elseif(event.second%30 == 29)
    then 
        -- 击败安全点外的玩家
        for k,v in pairs(player_list)
        do 
            local result,x,y,z = Actor:getPosition(v)
            if(not(math.abs(safe_pos.x-x)<1 and math.abs(safe_pos.z-z)<1))
            then 
                Actor:killSelf(v)
            end
        end
        -- 停止特效
        for i = 0, 100 
        do 
            World:stopEffectOnPosition(safe_pos.x,i,safe_pos.z,1293)
        end
    elseif(event.second%30 >= 2 and event.second%30 <= 29)
    then 
        -- 倒数
        Chat:sendSystemMsg(tostring(29-event.second%30))
    end
end

-- 注册有玩家进入游戏监听器
ScriptSupportEvent:registerEvent([=[Game.AnyPlayer.EnterGame]=], Game_AnyPlayer_EnterGame)
-- 注册游戏运行到N秒监听器
ScriptSupportEvent:registerEvent([=[Game.RunTime]=], Game_RunTime)

 

 显示进度条

-- 设置榨汁机不可破坏
Block:setBlockSettingAttState(3998, 1, false)

-- 玩家点击方块时运行
local function Player_ClickBlock(event)
    if(event.blockid == 3998)
    then 
        local v1=50--进度条当前值
    	local v2=100--进度条最大值
    	local color=0xff34b3--进度条的颜色
    	local itype=1--进度条编号
    	--创建一个进度条信息,存到graphicsInfo中
    	local graphicsInfo=Graphics:makeGraphicsProgress(v1, v2, color, itype)
    	local x,y,z=event.x,event.y+1,event.z--显示进度条的坐标
    	local x2,y2=0,0--水平偏移距离
    	--在位置上显示进度条
    	local result,graphid = Graphics:createGraphicsProgressByPos(x, y, z, graphicsInfo, x2, y2)
    	if(result == 1001)
    	then 
    	    Chat:sendSystemMsg("显示进度条失败")
    	end-- 设置榨汁机不可破坏
Block:setBlockSettingAttState(3998, 1, false)

-- 玩家点击方块时运行
local function Player_ClickBlock(event)
    if(event.blockid == 3998)
    then 
        local v1=50--进度条当前值
    	local v2=100--进度条最大值
    	local color=0xff34b3--进度条的颜色
    	local itype=1--进度条编号
    	--创建一个进度条信息,存到graphicsInfo中
    	local graphicsInfo=Graphics:makeGraphicsProgress(v1, v2, color, itype)
    	local x,y,z=event.x,event.y+1,event.z--显示进度条的坐标
    	local x2,y2=0,0--水平偏移距离
    	--在位置上显示进度条
    	local result,graphid = Graphics:createGraphicsProgressByPos(x, y, z, graphicsInfo, x2, y2)
    	if(result == 1001)
    	then 
    	    Chat:sendSystemMsg("显示进度条失败")
    	end
    end
end

-- 注册玩家点击方块监听器
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], Player_ClickBlock)
    end
end

-- 注册玩家点击方块监听器
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], Player_ClickBlock)
课程目录
共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 塔防游戏
站点有内容要更新是否更新。
更新
忽略