Bitblt vraag: "pokemon", maar dan anders...

Status
Niet open voor verdere reacties.

That Guy

Meubilair
Lid geworden
28 nov 2006
Berichten
5.010
Beste VB-ers,
Vandaag ben ik aan de beurt met een vraag =P

ik was een beetje aan het klooien met BitBlt, het gaat aardig, maar ik krijg een vreemd beeld:
1.JPG


Nu werkt alles wel maar zoals jullie zien is het character, in dit geval het meisje met de groene jurk, een lange streep - bitblt haalt de "oudere" versie van zichzelf zegmaar niet weg.

Code:
Code:
Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim upbool As Boolean
Dim downbool As Boolean
Dim curX As Single
Dim curY As Single

Public Function Draw(x1 As Single, y1 As Single, x2 As Single, y2 As Single, Optional sp_width As Single, Optional sp_height As Single)
Target_Pic.Refresh
    If sp_width < 1 Then
        sp_width = 16
    End If
    If sp_height < 1 Then
        sp_height = 16
    End If
curX = x1
curY = y1
BitBlt Target_Pic.hDC, x1, y1, sp_width, sp_height, Source_pic.hDC, x2, y2 + 64, vbSrcAnd
BitBlt Target_Pic.hDC, x1, y1, sp_width, sp_height, Source_pic.hDC, x2, y2, vbSrcPaint
Target_Pic.Refresh
End Function
Public Function walk(direction As String)
    Select Case direction
        Case "left"
            Draw curX - 8, curY, 16, 0
            Sleep (250)
            Draw curX - 8, curY, 0, 0
            Sleep (250)
	end select

Private Sub Command1_Click()
walk ("left")
End Sub


Alvast bedankt,

V. :thumb:
 
De lokatie van het meisje uit het vorige frame opnieuw blitten met de achtergrond bitmap.

Wat veel mensen doen is in ieder frame het gehele veld opnieuw renderen in een backbuffer en dan die naar de picturebox blitten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan