Я хочу перетаскивать спрайт на поверхность, используя привязку SDK к Haskell, но я не знаю, как определить прозрачный цвет на поверхности спрайта. Вот код на данный момент:
module Main where
import Graphics.UI.SDL as SDL
import Graphics.UI.SDL.Image as SDLi
main = do
SDL.init [SDL.InitVideo]
screen <- SDL.setVideoMode 500 500 32 []
SDL.fillRect screen Nothing (SDL.Pixel 0x00FFFFFF)
ball <- SDLi.load "30ball.png"
SDL.blitSurface ball Nothing screen Nothing
SDL.flip screen
delay 2000
SDL.quit
В библиотеке Sdldotnet я мог бы установить свойства ball с чем-то вроде:
ball.Transparent<-true
ball.TransparentColor<-Color.FromArgb (0, 255, 0)
Любая идея, как я могу добиться того же в привязке SDK Haskell?
Вот рабочая версия после реализации совета Бантара:
module Main where
import Graphics.UI.SDL as SDL
import Graphics.UI.SDL.Image as SDLi
main = do
SDL.init [SDL.InitVideo]
screen <- SDL.setVideoMode 500 500 32 []
SDL.fillRect screen Nothing (SDL.Pixel 0x00FFFFFF)
ball <- SDLi.load "30ball.bmp"
b2 <- convertSurface ball (surfaceGetPixelFormat screen) []
t <- mapRGB (surfaceGetPixelFormat b2) 0 255 0
setColorKey b2 [SrcColorKey, RLEAccel] t
SDL.blitSurface b2 Nothing screen Nothing
SDL.flip screen
delay 2000
SDL.quit