Разработать и реализовать на экране политический или экологический плакат с динамическими (движущимися или ми-гающими) эффектами. - VB

Узнай цену своей работы

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

Плакат. Разработать и реализовать на экране политический или экологический плакат с динамическими (движущимися или ми-гающими) эффектами. При помощи клавиш со стрелками обеспечить управление динамическими объектами.
Но мне нужны мерцающие или двигающиеся эффекты, а я не знаю как и какие сделать

Решение задачи: «Разработать и реализовать на экране политический или экологический плакат с динамическими (движущимися или ми-гающими) эффектами.»

textual
Листинг программы
Option Explicit
 
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 Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
 
Dim Speed As Single
Dim Clouds As StdPicture, Tree As StdPicture, Ground As StdPicture
Dim Dc As Long, oBmp As Long
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyDown
        Speed = Speed - 0.1
    Case vbKeyUp
        Speed = Speed + 0.1
    End Select
    If Speed < 0 Then Speed = 0
End Sub
 
Private Sub Form_Load()
    Set Clouds = LoadPicture(App.Path & "\Clouds.jpg")
    Set Tree = LoadPicture(App.Path & "\Tree.bmp")
    Set Ground = LoadPicture(App.Path & "\Ground.bmp")
    Dc = CreateCompatibleDC(Me.hdc)
    oBmp = SelectObject(Dc, Tree)
End Sub
 
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    SelectObject Dc, oBmp
    DeleteDC Dc
End Sub
 
Private Sub tmrFrames_Timer()
    Static cOffset As Long, cPos As Single
    Dim W As Long, H As Long
    W = Me.ScaleX(Clouds.Width, vbHimetric, vbPixels)
    H = Me.ScaleY(Clouds.Height, vbHimetric, vbPixels)
    cPos = cPos - Speed
    cOffset = CLng(cPos) Mod W
    Me.PaintPicture Clouds, 0, 0, W + cOffset, , -cOffset, , W + cOffset
    If cOffset Then Me.PaintPicture Clouds, W + cOffset, 0, -cOffset, , , , -cOffset
    W = Me.ScaleX(Ground.Width, vbHimetric, vbPixels)
    H = Me.ScaleY(Ground.Height, vbHimetric, vbPixels)
    Me.PaintPicture Ground, 0, Me.ScaleHeight - 200, W, H
    W = Me.ScaleX(Tree.Width, vbHimetric, vbPixels)
    H = Me.ScaleY(Tree.Height, vbHimetric, vbPixels)
    TransparentBlt Me.hdc, 0, 0, W, H, Dc, 0, 0, W, H, &HFF00FF
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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