Cambalinho
Power Member
eu ando a construir 1 objecto para facilitar a construção de jogos, o Sprite.
eu ando a tentar fazer transparencia no objecto(não numa cor, mas em todo o objecto). eu ja tentei fazer pixel a pixel, functionou mas dava-me 1 aspecto pixel(via pontos em branco):
transformava alguns pixel na cor que queria fazer desaparecer e depois fazia desaparecer essa cor.
eu ja tentei a função API Aphablend() mas sem resultados .
agora estou a fazer 1 metodo diferente: somo a imagem á cor que quero que desapareça, mas estou a receber 1 erro:
a função que soma as cores:
menssagem de erro: "Run-Time Error '5': Invalide procedure call or argument"
alguem me pode ajudar a resolver o problema?
obrigado
eu ando a tentar fazer transparencia no objecto(não numa cor, mas em todo o objecto). eu ja tentei fazer pixel a pixel, functionou mas dava-me 1 aspecto pixel(via pontos em branco):
transformava alguns pixel na cor que queria fazer desaparecer e depois fazia desaparecer essa cor.
eu ja tentei a função API Aphablend() mas sem resultados .
agora estou a fazer 1 metodo diferente: somo a imagem á cor que quero que desapareça, mas estou a receber 1 erro:
Código:
If blnTransparentImage = True Then
For Y = 0 To UserControl.Height
For X = 0 To UserControl.Width 'aqui uso a função para somar as 2 cores
SetPixel UserControl.hdc, X, Y, PlusColorTransparency(GetPixel(UserControl.hdc, X, Y), GetPixel(UserControl.hdc, 0, 0), 75)
Next X
Next Y
End If
Código:
Private Type Color
Red As Long
Green As Long
Blue As Long
End Type
Private Function RGBValues(Color As Long) As Color 'find the rgb color values of a color
Dim ReturnColor As Color
With ReturnColor
.Red = Fix(Color And 255)
.Green = Fix((Color And 65535) / 256)
.Blue = Fix(Color / 65536)
End With
RGBValues = ReturnColor
End Function
Public Function PlusColorTransparency(Color1 As Long, Color2 As Long, Transparency As Long) As Long
Dim DistColor As Color
Dim SourceColor As Color
If Transparency < 0 Then Transparency = 0
If Transparency > 100 Then Transparency = 100
Transparency = (255 * Transparency) / 100
SourceColor = RGBValues(Color1)
DistColor = RGBValues(Color2)
DistColor.Red = SourceColor.Red * (Transparency / 255) + DistColor.Red * (0.1 - (Transparency / 255))
DistColor.Green = SourceColor.Green * (Transparency / 255) + DistColor.Green * (0.1 - (Transparency / 255))
DistColor.Blue = SourceColor.Blue * (Transparency / 255) + DistColor.Blue * (0.1 - (Transparency / 255))
PlusColorTransparency = RGB(DistColor.Red, DistColor.Green, DistColor.Blue)'aqui da-me erro
End Function
alguem me pode ajudar a resolver o problema?
obrigado