我正在為 Zomboid 專案制作一個 mod,但我似乎無法解決數學問題,所以我得到的值范圍從 0 到 1,我希望我的進度條從最大寬度開始,然后隨著值的增加而下降.
第一個很容易,我得到了一個介于 100 和 0 之間的值,那么如何使用從 0 開始的值呢?
我試著在谷歌上搜索這個,但我的數學真的很差,找不到答案。
function panel:render()
self:drawRectBorder(30, 30, self:getWidth() - 1, 50, 1.0, 1.0, 1.0, 1.0);
--print((bt_core.player:getBodyDamage():getOverallBodyHealth() / 100) * self:getWidth());
self:drawRect(31, 31, (bt_core.player:getBodyDamage():getOverallBodyHealth() / 100) * self:getWidth() - 3, 48, 1, 0, 0, 1);
self:drawRectBorder(30, 110, self:getWidth() - 1, 50, 1.0, 1.0, 1.0, 1.0);
print(bt_core.player:getStats():getFatigue());
if bt_core.player:getStats():getFatigue() == 0 then
self:drawRect(31, 111, self:getWidth() - 3 , 48, 1, 0, 0, 1);
else
self:drawRect(32, 111,bt_core.player:getStats():getFatigue() / (self:getWidth() - 3) , 48, 1, 0, 0, 1);
end
end
uj5u.com熱心網友回復:
要從 0..1 范圍內的變數中獲取 100..0 范圍內的變數,您可以使用y = 100 - x*
uj5u.com熱心網友回復:
所以你有一個值 0..1,你想把它映射到 100..0。
將你的值乘以 100 得到 0..100。要反轉這個,你從 100 中減去它。100-0 是 100,100-100 是 0...
local newVal = 100 - val * 100
或者
local newVal = 100 * (1-val)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419278.html
標籤:
上一篇:AndroidTabLayoutFragment僅在切換到特定Fragment后更新
下一篇:超過1000每500增加1
