Битовые образы - VB
Формулировка задачи:
Привет всем, я решил сделать компьютерную игру. Частью являются грибы (без смеха). Ножка и верхняя часть рисуются отдельно.
Есть массив Colors(16) с 16 цветами, массив HumHum с "грибами" (HumaCol - кол-во грибов), два PictureBox, три файла в ресурсе (ножка, маска ножки, маска шляпки). Вот код, рисуюший грибы:
И скриншот проблемы:
Поможете?
Решение задачи: «Битовые образы»
textual
Листинг программы
Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean Private Sub Form_Load() Dim N As Long, W As Long For N = 0 To Me.ScaleWidth Step picBody.ScaleWidth + 10 TransparentBlt Me.hdc, N, 150, picBody.ScaleWidth, picBody.ScaleHeight, _ picBody.hdc, 0, 0, picBody.ScaleWidth, picBody.ScaleHeight, &HFF00FF TransparentBlt Me.hdc, N, 150, picHead.ScaleWidth, picHead.ScaleHeight, _ picHead.hdc, 0, 0, picHead.ScaleWidth, picHead.ScaleHeight, &HFF00FF Next N = 0 Do While N < Me.ScaleWidth W = (Rnd * 0.25 + 0.75) * picGround.ScaleWidth TransparentBlt Me.hdc, N, 160, W, picGround.ScaleHeight, _ picGround.hdc, 0, 0, picHead.ScaleWidth, picGround.ScaleHeight, &HFF00FF N = N + W Loop TransparentBlt Me.hdc, 350, 20, picSun.ScaleWidth, picSun.ScaleHeight, _ picSun.hdc, 0, 0, picSun.ScaleWidth, picSun.ScaleHeight, &HFF00FF End Sub