Битовые образы - 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

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы