创建一个序列帧 根据分辨率来铺满全屏
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-20 11:02:12 |
👁️ 阅读: 24
根据浮生梦老师前端课程内容,要创建根据分辨率铺满全屏的序列帧动画,可以使用以下代码:
```lua
-- 首先获取屏幕分辨率
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
-- 创建父窗口
local parent = GUI:Win_Create("FullScreenAnim", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建铺满全屏的序列帧动画
-- 参数说明:
-- parent: 父节点
-- "FullScreenFrames": 唯一ID
-- screenWidth/2, screenHeight/2: 位置居中
-- "res/public_win32/1900000610": 图片前缀(使用你提供的背景)
-- ".png": 图片后缀
-- 1, 10: 从第1帧到第10帧(根据实际图片数量调整)
-- {speed = 100, count = 10, loop = -1}: 播放参数
local fullScreenAnim = GUI:Frames_Create(
parent,
"FullScreenFrames",
screenWidth/2,
screenHeight/2,
"res/public_win32/1900000610",
".png",
1,
10,
{speed = 100, count = 10, loop = -1}
)
-- 设置锚点居中
GUI:setAnchorPoint(fullScreenAnim, 0.5, 0.5)
-- 根据分辨率设置序列帧大小
GUI:setContentSize(fullScreenAnim, screenWidth, screenHeight)
-- 设置忽略内容自适应大小,确保铺满全屏
GUI:setIgnoreContentAdaptWithSize(fullScreenAnim, false)
-- 如果需要循环播放,可以设置loop为-1
-- 已经在ext参数中设置了loop = -1
SL:Print("创建全屏序列帧动画完成,分辨率:", screenWidth, "x", screenHeight)
```
**代码说明:**
1. 使用 `SL:GetMetaValue` 获取当前屏幕分辨率
2. 创建父窗口作为容器
3. 使用 `GUI:Frames_Create` 创建序列帧动画,位置设置为屏幕中心
4. 通过 `setContentSize` 将序列帧大小设置为全屏尺寸
5. 使用 `setAnchorPoint` 确保动画从中心点开始渲染
6. `setIgnoreContentAdaptWithSize(false)` 确保图片拉伸铺满全屏
**注意:**
- 序列帧图片命名需要是连续的数字,如:19000006101.png, 19000006102.png...
- 调整 `finishframe` 参数为你的实际图片数量
- `speed` 参数控制播放速度(毫秒每帧)
- `loop = -1` 表示无限循环播放
这样创建的序列帧动画会根据当前设备分辨率自动铺满整个屏幕。
← 返回问答库