hp-bar-the-dumb-way #22

Merged
PeaAshMeter merged 7 commits from hp-bar-the-dumb-way into main 2025-12-07 20:35:58 +03:00
3 changed files with 38 additions and 10 deletions
Showing only changes of commit 3d0d52438f - Show all commits

View File

@ -0,0 +1,24 @@
extern float t;
extern float blockSize;
// hash-функция для шума по целочисленным координатам блока
float hash(vec2 p) {
p = vec2(
dot(p, vec2(127.1, 311.7)),
dot(p, vec2(269.5, 183.3))
);
return fract(sin(p.x + p.y) * 43758.5453123);
}
vec4 effect(vec4 color, Image tex, vec2 texCoord, vec2 screenCoord)
{
float blockSize = 4.0;
vec2 cell = floor(screenCoord / blockSize);
float n = hash(cell); // [0..1]
float mask = 1.0 - step(t, n);
vec4 base = Texel(tex, texCoord) * color;
base.a *= mask;
return base;
}

View File

@ -209,6 +209,16 @@ function characterPanel:update(dt)
width = self.bars.bounds.width,
height = self.bars.bounds.height + self.skillRow.bounds.height
}
--- анимация появления
local alpha = 1
if self.state == "show" then
alpha = self.animationNode:getValue()
elseif self.state == "hide" then
alpha = 1 - self.animationNode:getValue()
end
local revealShader = Tree.assets.files.shaders.reveal
revealShader:send("t", alpha)
end
function characterPanel:draw()
@ -219,17 +229,13 @@ function characterPanel:draw()
self:drawBorder("outer")
local alpha = 1
if self.state == "show" then
alpha = self.animationNode:getValue()
elseif self.state == "hide" then
alpha = 1 - self.animationNode:getValue()
end
--- рисуем текстуру шейдером появления
love.graphics.setCanvas()
love.graphics.setColor(1, 1, 1, alpha)
love.graphics.setShader(Tree.assets.files.shaders.reveal)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.draw(c)
love.graphics.setColor(1, 1, 1)
love.graphics.setShader()
end
-----------------------------------

View File

@ -1,6 +1,4 @@
local icons = require("lib.utils.sprite_atlas").load(Tree.assets.files.dev_icons)
local easing = require "lib.utils.easing"
local AnimationNode = require "lib.animation_node"
local Element = require "lib.simple_ui.element"
local Rect = require "lib.simple_ui.rect"