Mitä tarkalleen ottaen haluat koodin tekevän? En näe missään vaiheessa sinun muuttavan pwn\Facing arvoa enkä tiedä mitä sen pitäisi tehdä.Paroni wrote:Miksiköhän seuraava koodi ei toimi?Code: Select all
--- snip --- DrawImage pwn\Img, pwn\PosX, pwn\PosY-(ImageHeight(pwn\Img)-TileSize), pwn\Facing-1 --- snip ---
Code: Select all
DrawToImage pwn\Img
For f = 0 To 3
DrawImage char\Body, TileSize*f, 0, f
Next f
DrawToScreen
Ja nyt kun tarkemmin tutkiskelin asiaa, vaikuttaisi siltä ettei MakeImagella luotuun, animoituun kuvaan voi piirtää kuin ensimmäisen framen oikein. Koitin säätää CopyBoxin kanssa mutta en onnistunut. Onnistuin säätämään kuitenkin tämän kaiken toimimaan niin, että kuva tallennetaan väliaikaisesti kovalevylle ja ladataan heti perään LoadAnimImage-funktiolla:
Code: Select all
'Kuva johon piirretään kaikki framet
tmpImg = MakeImage(50 * 4, 128)
'Piirretään väliaikaiseen isoon kuvaan
DrawToImage tmpImg
For f = 0 To 3
Color f * 60 + 40, f * 20 + 40, 0
Box f * 50, 0, 50, 128, ON
Next f
DrawToScreen
' Tallennetaan kuva väliaikaisesti kovalevylle
SaveImage tmpImg, "tmp-img.bmp"
' Ladataan kuva animImg muuttujaan framejen kera.
animImg = LoadAnimImage("tmp-img.bmp", 50, 128, 0, 4)
' Poistetaan väliaikainen kuva kovalevyltä
DeleteFile "tmp-img.bmp"
' Piirretään eri framet sisältämä kuva irrallisina frameina
DrawImage animImg, 0, 0, 0
DrawImage animImg, 60, 0, 1
DrawImage animImg,120, 0, 2
DrawImage animImg,180, 0, 3
' Referenssikuva
DrawImage tmpImg, 0, 140
Color cbwhite
Text 10,270,"Paina mitä tahansa näppäintä lopettaaksesi..."
DrawScreen
WaitKey