Tässä vähän Antin koodia muokkailin:
Public Sub PiirraKuva(tunnus As Integer, x As Integer, y As Integer) Dim a As Long 'Peitetään jälki a = BitBlt(frmPeli.picPuskuri.hDC, oldKohtaX * 5, oldKohtaY * 5, 30, 30, frmPeli.picVanha.hDC, 0, 0, vbSrcCopy) 'Tallennetaan paikka seuraavan jäljen peittämistä varten a = BitBlt(frmPeli.picVanha.hDC, 0, 0, 30, 30, frmPeli.picPuskuri.hDC, x * 5, y * 5, vbSrcCopy) 'Piirretään sprite-äijä puskuriin a = BitBlt(frmPeli.picPuskuri.hDC, x * 5, y * 5, 30, 30, frmPeli.picMaski.hDC, tunnus * 30, 0, vbSrcAnd) a = BitBlt(frmPeli.picPuskuri.hDC, x * 5, y * 5, 30, 30, frmPeli.picAija.hDC, tunnus * 30, 0, vbSrcInvert) 'Siirretään kuva ruudulle puskurista a = BitBlt(frmPeli.picPeli.hDC, 0, 0, frmPeli.picPeli.Width, frmPeli.picPeli.Height, frmPeli.picPuskuri.hDC, x * 5 - (frmPeli.picPeli.Width / 2), y * 5 - (frmPeli.picPeli.Height / 2), vbSrcCopy) End Sub
Tässä on kuitenkin ilkeä ongelma, eli picPuskuri-PictureBoxin (ja muidenkin PictureBoxien) täytyy olla näkyvillä, tai muuten kuva ei kopioidu puskurista näytölle. Osaako joku auttaa? ;>
Kokeilepa laittaa formin näkyvän alueen ulkopuolella olevien PictureBoxien AutoRedraw-ominaisuuden arvoksi True.
Hyvinhän tuo näyttäisi toimivan. Kiitos!
Aihe on jo aika vanha, joten et voi enää vastata siihen.