Битовые образы - VB

Формулировка задачи:

Привет всем, я решил сделать компьютерную игру. Частью являются грибы (без смеха). Ножка и верхняя часть рисуются отдельно. Есть массив Colors(16) с 16 цветами, массив HumHum с "грибами" (HumaCol - кол-во грибов), два PictureBox, три файла в ресурсе (ножка, маска ножки, маска шляпки). Вот код, рисуюший грибы:
 For i = 1 To HumaCol Step 1
  Picture3.Line (0, 0)-(24, 24), Colors(Huma(i).color), BF
  picture4.PaintPicture LoadResPicture(105, vbResBitmap), 0, 0, , , , , , , vbSrcAnd
  picture4.PaintPicture Picture3.Image, 0, 0, , , , , , , vbSrcPaint
  PaintPicture picture4.Image, Huma(i).X - 12, Huma(i).y - 12
  
  'Âûâîä Г*Г* ôîðìó
  PaintPicture LoadResPicture(103, vbResBitmap), Huma(i).X - 12, Huma(i).y - 12, , , , , , , vbSrcAnd
  PaintPicture LoadResPicture(104, vbResBitmap), Huma(i).X - 12, Huma(i).y - 12, , , , , , , vbSrcPaint
 Next i
И скриншот проблемы: Поможете?

Код к задаче: «Битовые образы - VB»

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


СОХРАНИТЬ ССЫЛКУ
Похожие ответы
Для поиска решения или похожих решений вы можете воспользоваться "Поиском по сайту" или "Поиском по разделу"
Поиск по сайту