diff --git a/DragonCore/CommonItemTip.yml b/DragonCore/CommonItemTip.yml index 2625bd7..b2a1c64 100644 --- a/DragonCore/CommonItemTip.yml +++ b/DragonCore/CommonItemTip.yml @@ -1,38 +1,54 @@ 鼠标X偏移: 10 鼠标Y偏移: -7 +# 5代表需要滚动五次才能看完所有的Lore +# 自适应 不会超过单页长度 +滚动速度: 5 +滚动提示: '鼠标滚动 查看更多信息' -match: '.*' +match: ".*" priority: -999 Functions: + # 1. 获取界面展示位置 + # 2. 如果界面展示位置+界面高度超出屏幕距离 + # 3. 如果界面超长了就压缩为 屏幕高度 - 60(上下预留30像素) + # 4. 如果调整位置之后 tip 距离鼠标过远 就调整为相差距离(方法.取鼠标Y - (方法.取屏幕高度 - 界面变量.高度))+30像素 + # 4. 如果Lore超过界面长度 就调整为允许滚动 并且计算最大可滚动值和单次滚动距离(不超过单页长度) + # 5. 居中最底部的滚轮提示 open: |- 界面变量.鼠标X偏移 = 方法.取YAML值('鼠标X偏移'); 界面变量.鼠标Y偏移 = 方法.取YAML值('鼠标Y偏移'); + 界面变量.滚动速度 = 方法.取YAML值('滚动速度'); + 界面变量.滚动提示 = 方法.取YAML值('滚动提示'); 界面变量.滚动值 = 0; 界面变量.宽度 = 方法.min(lore.width, 方法.取屏幕宽度) + 12; 界面变量.高度 = 方法.min(lore.height, 方法.取屏幕高度) + 8; 界面变量.X = 方法.取鼠标X + 界面变量.鼠标X偏移; 界面变量.Y = 方法.取鼠标Y + 界面变量.鼠标Y偏移; - (界面变量.Y + 界面变量.高度) > 方法.取屏幕高度 ? { - 界面变量.鼠标Y偏移 = 界面变量.Y - ((界面变量.高度 + 界面变量.Y) - 方法.取屏幕高度); - (界面变量.Y + 界面变量.高度) > 方法.取屏幕高度 ? { - 界面变量.高度 = 方法.取屏幕高度 - 15 - 方法.取鼠标Y; + (界面变量.Y + 界面变量.高度 + 30) > 方法.取屏幕高度 ? { + 界面变量.鼠标Y偏移 = -方法.取鼠标Y + 30; + (界面变量.鼠标Y偏移 + 界面变量.Y + 界面变量.高度) > 方法.取屏幕高度 ? { + 界面变量.高度 = 方法.取屏幕高度 - 60; + } : { + 界面变量.鼠标Y偏移 = - (方法.取鼠标Y - (方法.取屏幕高度 - 界面变量.高度) + 30); }; } : 0; lore.height > 界面变量.高度 ? { 界面变量.允许滚动 = true; 界面变量.最大可滚动值 = lore.height - 界面变量.高度 + 8; - 界面变量.每次滚动距离 = 界面变量.最大可滚动值 / 5; - tip.texts = "鼠标滚轮查看更多"; + 界面变量.每次滚动距离 = 方法.min(界面变量.最大可滚动值 / 界面变量.滚动速度, 界面变量.高度 - 5); + tip.texts = 界面变量.滚动提示; } : 0; 界面变量.提示X = (界面变量.宽度 - tip.width) / 2 + 界面变量.X; + # 1. 如果滚到头了就不允许滚动 + # 2. 滚到尾部也不允许滚动 wheel: |- 界面变量.允许滚动 ? 0 : return 1; 界面变量.滚动距离 = 界面变量.滚动距离 - 方法.取滚轮值 * 界面变量.每次滚动距离; 界面变量.滚动距离 < 0 ? { 界面变量.滚动距离 = 0; - tip.texts = "鼠标滚轮查看更多"; + tip.texts = 界面变量.滚动提示; } : { 界面变量.滚动距离 > 界面变量.最大可滚动值 ? { 界面变量.滚动距离 = 界面变量.最大可滚动值; @@ -51,7 +67,7 @@ bg: y: 界面变量.Y width: 界面变量.宽度 height: 界面变量.高度 - texture: "tip/背景.png" + texture: "tip/背景.png" 左边: type: "texture" @@ -127,9 +143,18 @@ lore: limitWidth: bg.width limitHeight: bg.height +tip下边: + type: "texture" + x: "tip.x" + y: "tip.y" + width: "tip.width" + height: "tip.height" + texture: "tip/背景.png" + tip: type: label x: 界面变量.提示X - y: bg.y + bg.height - 2 + y: bg.y + bg.height + 2 scale: 0.7 texts: "" +