Я пытаюсь преобразовать значение из float64 0 в 1 в альфа-значение, которое будет использоваться внутри color.RGBA
например, color.RGBA{255, 255, 255, 255}
Теперь мне нужно изменить значение Alpha на основе примера от 0 до 1
:
...
alpha := p.Tween.Value()//returns e.g. 0.3 float64
myColor := HexToColor("#E53935")
myColor.A = 255 - uint8(alpha)
...
Update(dt) call
myColor.A = 255 - uint8(alpha)
Это моя функция для преобразования строки HEX в RGBA. Но я создаю анимацию в игре, где мне нужно постепенно затухать альфа-значение цвета.
Как вы можете видеть ниже, моё альфа-значение фиксировано.
//HexToColor("#E53935")
func HexToColor(hex string) (c color.RGBA) {
c.A = 0xff
errInvalidFormat := color.RGBA{255, 255, 255, 255}
if hex[0] != '#' {
return errInvalidFormat
}
hexToByte := func(b byte) byte {
switch {
case b >= '0' && b <= '9':
return b - '0'
case b >= 'a' && b <= 'f':
return b - 'a' + 10
case b >= 'A' && b <= 'F':
return b - 'A' + 10
}
return 0
}
switch len(hex) {
case 7:
c.R = hexToByte(hex[1])<<4 + hexToByte(hex[2])
c.G = hexToByte(hex[3])<<4 + hexToByte(hex[4])
c.B = hexToByte(hex[5])<<4 + hexToByte(hex[6])
case 4:
c.R = hexToByte(hex[1]) * 17
c.G = hexToByte(hex[2]) * 17
c.B = hexToByte(hex[3]) * 17
default:
return errInvalidFormat
}
return
}