Posts: 95
Threads: 6
Joined: Dec 2023
Reputation:
4
Yesterday, 03:54 AM
(This post was last modified: Yesterday, 03:55 AM by kevin.)
The issue that 1Micha.elok identified has now been fixed, and the zip file in the first post has been updated. Many thanks for spotting the error.
All the best - Kevin.
Posts: 419
Threads: 55
Joined: Nov 2023
Reputation:
3
I made a quick test of the new version, and now it seems to work
Code: #win32
visible dudeImage
set window "Test", 128, 120, false, 3
set redraw off
CreateAssets()
dude = [
x: (width(primary) - width(dudeImage))/2, y: 100 - height(dudeImage),
w: width(dudeImage), h: height(dudeImage),
dy: 0, onGround: false, baseCel: 0, frame: 0,
Update: function()
this.y = this.y + this.dy
this.dy = min(this.dy + 0.1, 3)
if this.y >= 100 - height(dudeImage)
this.onGround = true
this.dy = 0
endif
dx = 0
if keydown(KEY_LEFT)
this.baseCel = 2
dx = dx - 1
endif
if keydown(KEY_RIGHT)
this.baseCel = 0
dx = dx + 1
endif
this.x = this.x + dx
if dx this.frame = (this.frame + 0.12)%2
else this.frame = 0
if this.onGround and keydown(KEY_UP, true)
this.dy = -3
this.onGround = false
endif
endfunc,
Draw: function()
set color 255, 255, 255
draw image dudeImage, this.x, this.y, this.baseCel + this.frame
endfunc
]
while not keydown(KEY_ESCAPE, true)
dude.Update()
set color 64, 80, 128
cls
set color 255, 255, 255
draw line 0, 100, width(primary), 100
dude.Draw()
redraw
fwait 60
wend
function CreateAssets()
dudeImage = CreatePNG([[[ 1 , 1 ,[ 228 , 187 , 109 ]], [ 1 , 2 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 5 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 0 , 0 ]], [ 1 , 8 ,[ 255 , 0 , 0 ]], [ 1 , 9 ,[ 255 , 0 , 0 ]], [ 1 , 10 ,[ 255 , 0 , 0 ]], [ 1 , 11 ,[ 0 , 0 , 255 ]], [ 1 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 0 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]],
[ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 6 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 0 , 0 ]], [ 2 , 8 ,[ 228 , 187 , 109 ]], [ 2 , 9 ,[ 228 , 187 , 109 ]], [ 2 , 10 ,[ 255 , 255 , 255 ]], [ 2 , 11 ,[ 255 , 255 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 13 ,[ 0 , 0 , 255 ]], [ 2 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 15 ,[ 228 , 187 , 109 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 2 ,[ 255 , 255 , 255 ]], [ 3 , 3 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]],
[ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 255 , 255 ]], [ 3 , 11 ,[ 255 , 255 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 15 ,[ 228 , 187 , 109 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]],
[ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 255 , 0 , 0 ]], [ 4 , 9 ,[ 255 , 0 , 0 ]], [ 4 , 10 ,[ 255 , 255 , 255 ]], [ 4 , 11 ,[ 255 , 255 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 14 ,[ 228 , 187 , 109 ]], [ 4 , 15 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 8 ,[ 255 , 0 , 0 ]], [ 5 , 9 ,[ 255 , 0 , 0 ]],
[ 5 , 10 ,[ 255 , 0 , 0 ]], [ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 14 ,[ 228 , 187 , 109 ]], [ 5 , 15 ,[ 228 , 187 , 109 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 7 , 3 ,[ 228 , 187 , 109 ]], [ 7 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 2 ,[ 0 , 0 , 255 ]], [ 4 , 3 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 9 ,[ 255 , 255 , 255 ]], [ 0 , 10 ,[ 255 , 255 , 255 ]], [ 0 , 11 ,[ 228 , 187 , 109 ]], [ 0 , 12 ,[ 228 , 187 , 109 ]], [ 0 , 13 ,[ 228 , 187 , 109 ]], [ 0 , 14 ,[ 228 , 187 , 109 ]], [ 1 , 1 ,[ 228 , 187 , 109 ]], [ 1 , 2 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 5 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 0 , 0 ]], [ 1 , 8 ,[ 255 , 0 , 0 ]], [ 1 , 9 ,[ 255 , 0 , 0 ]], [ 1 , 10 ,[ 255 , 0 , 0 ]], [ 1 , 11 ,[ 0 , 0 , 255 ]],
[ 1 , 12 ,[ 228 , 187 , 109 ]], [ 1 , 13 ,[ 228 , 187 , 109 ]], [ 1 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 0 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 6 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 0 , 0 ]], [ 2 , 8 ,[ 255 , 0 , 0 ]], [ 2 , 9 ,[ 255 , 0 , 0 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]],
[ 2 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 2 ,[ 255 , 255 , 255 ]], [ 3 , 3 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 0 , 0 ]], [ 3 , 11 ,[ 0 , 0 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]],
[ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]], [ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 0 , 0 ]], [ 4 , 11 ,[ 0 , 0 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]],
[ 5 , 7 ,[ 255 , 255 , 255 ]], [ 5 , 8 ,[ 255 , 255 , 255 ]], [ 5 , 9 ,[ 255 , 255 , 255 ]], [ 5 , 10 ,[ 255 , 0 , 0 ]], [ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 255 , 255 ]], [ 6 , 8 ,[ 255 , 255 , 255 ]], [ 6 , 9 ,[ 255 , 255 , 255 ]], [ 6 , 10 ,[ 228 , 187 , 109 ]], [ 6 , 11 ,[ 228 , 187 , 109 ]], [ 6 , 12 ,[ 228 , 187 , 109 ]], [ 6 , 13 ,[ 228 , 187 , 109 ]],
[ 7 , 3 ,[ 228 , 187 , 109 ]], [ 7 , 4 ,[ 228 , 187 , 109 ]], [ 7 , 10 ,[ 228 , 187 , 109 ]], [ 7 , 11 ,[ 228 , 187 , 109 ]], [ 7 , 12 ,[ 228 , 187 , 109 ]], [ 7 , 13 ,[ 228 , 187 , 109 ]], [ 4 , 2 ,[ 0 , 0 , 255 ]], [ 4 , 3 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 3 ,[ 228 , 187 , 109 ]], [ 0 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 8 ,[ 255 , 0 , 0 ]], [ 2 , 9 ,[ 255 , 0 , 0 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 15 ,[ 228 , 187 , 109 ]],
[ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 255 , 0 , 0 ]], [ 3 , 9 ,[ 255 , 0 , 0 ]], [ 3 , 10 ,[ 255 , 255 , 255 ]], [ 3 , 11 ,[ 255 , 255 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 15 ,[ 228 , 187 , 109 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]],
[ 4 , 2 ,[ 255 , 255 , 255 ]], [ 4 , 3 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]], [ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 255 , 255 ]], [ 4 , 11 ,[ 255 , 255 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 14 ,[ 228 , 187 , 109 ]], [ 4 , 15 ,[ 228 , 187 , 109 ]], [ 5 , 0 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]],
[ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 6 ,[ 228 , 187 , 109 ]], [ 5 , 7 ,[ 255 , 0 , 0 ]], [ 5 , 8 ,[ 228 , 187 , 109 ]], [ 5 , 9 ,[ 228 , 187 , 109 ]], [ 5 , 10 ,[ 255 , 255 , 255 ]], [ 5 , 11 ,[ 255 , 255 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 14 ,[ 228 , 187 , 109 ]], [ 5 , 15 ,[ 228 , 187 , 109 ]], [ 6 , 1 ,[ 228 , 187 , 109 ]], [ 6 , 2 ,[ 228 , 187 , 109 ]],
[ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 5 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 0 , 0 ]], [ 6 , 8 ,[ 255 , 0 , 0 ]], [ 6 , 9 ,[ 255 , 0 , 0 ]], [ 6 , 10 ,[ 255 , 0 , 0 ]], [ 6 , 11 ,[ 0 , 0 , 255 ]], [ 6 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 3 ,[ 0 , 0 , 255 ]], [ 3 , 2 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 3 ,[ 228 , 187 , 109 ]], [ 0 , 4 ,[ 228 , 187 , 109 ]], [ 0 , 10 ,[ 228 , 187 , 109 ]], [ 0 , 11 ,[ 228 , 187 , 109 ]], [ 0 , 12 ,[ 228 , 187 , 109 ]], [ 0 , 13 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 255 , 255 ]], [ 1 , 8 ,[ 255 , 255 , 255 ]], [ 1 , 9 ,[ 255 , 255 , 255 ]], [ 1 , 10 ,[ 228 , 187 , 109 ]], [ 1 , 11 ,[ 228 , 187 , 109 ]], [ 1 , 12 ,[ 228 , 187 , 109 ]], [ 1 , 13 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]],
[ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 255 , 255 ]], [ 2 , 8 ,[ 255 , 255 , 255 ]], [ 2 , 9 ,[ 255 , 255 , 255 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]],
[ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 0 , 0 ]], [ 3 , 11 ,[ 0 , 0 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 2 ,[ 255 , 255 , 255 ]], [ 4 , 3 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]],
[ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 0 , 0 ]], [ 4 , 11 ,[ 0 , 0 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 0 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 6 ,[ 228 , 187 , 109 ]], [ 5 , 7 ,[ 255 , 0 , 0 ]], [ 5 , 8 ,[ 255 , 0 , 0 ]], [ 5 , 9 ,[ 255 , 0 , 0 ]], [ 5 , 10 ,[ 255 , 0 , 0 ]],
[ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 6 , 1 ,[ 228 , 187 , 109 ]], [ 6 , 2 ,[ 228 , 187 , 109 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 5 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 0 , 0 ]], [ 6 , 8 ,[ 255 , 0 , 0 ]], [ 6 , 9 ,[ 255 , 0 , 0 ]], [ 6 , 10 ,[ 255 , 0 , 0 ]], [ 6 , 11 ,[ 0 , 0 , 255 ]], [ 6 , 12 ,[ 228 , 187 , 109 ]], [ 6 , 13 ,[ 228 , 187 , 109 ]], [ 6 , 14 ,[ 228 , 187 , 109 ]],
[ 7 , 9 ,[ 255 , 255 , 255 ]], [ 7 , 10 ,[ 255 , 255 , 255 ]], [ 7 , 11 ,[ 228 , 187 , 109 ]], [ 7 , 12 ,[ 228 , 187 , 109 ]], [ 7 , 13 ,[ 228 , 187 , 109 ]], [ 7 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 2 ,[ 0 , 0 , 255 ]], [ 3 , 3 ,[ 0 , 0 , 255 ]]]],8,16)
set image grid dudeImage, 3, 2
set image colorkey dudeImage, 0, 0, 0
function CreatePNG(data,pixel_across,pixel_down)
images = sizeof(data)
if images = 1
frames_across = 1
frames_down = 1
else
frames_across = int(sqr(images)) + 1
frames_down = int(images / frames_across) + 1
endif
img = createimage( frames_across * pixel_across,frames_down * pixel_down)
set image img
x_adj = 0
y_adj = 0
for f = 0 to sizeof(data) - 1
for p = 0 to sizeof(data[f]) - 1
set color data[f][p][2][0],data[f][p][2][1],data[f][p][2][2]
set pixel data[f][p][0] + x_adj,data[f][p][1] + y_adj
if p = sizeof(data[f]) - 1
x_adj = x_adj + pixel_across
endif
if x_adj / pixel_across = frames_across
x_adj = 0
y_adj = y_adj + pixel_down
endif
next
next
set image primary
return img
endfunc
endfunc
Pixel Editor crashes if you click the button to load a png file but but then click cancel in the file dialog. You can check the length of the returned filename and abort if it's zero or wait with the abort until after you've tried loading the image:
Code: function import_png()
png_imported = true
loaded_img = openfiledialog("png")
img = loadimage(loaded_img) ' returns an unset variable (null) on failure
if not typeof(img)
... abort
endif
Posts: 95
Threads: 6
Joined: Dec 2023
Reputation:
4
(Yesterday, 06:03 PM)Marcus Wrote: I made a quick test of the new version, and now it seems to work 
Code: #win32
visible dudeImage
set window "Test", 128, 120, false, 3
set redraw off
CreateAssets()
dude = [
x: (width(primary) - width(dudeImage))/2, y: 100 - height(dudeImage),
w: width(dudeImage), h: height(dudeImage),
dy: 0, onGround: false, baseCel: 0, frame: 0,
Update: function()
this.y = this.y + this.dy
this.dy = min(this.dy + 0.1, 3)
if this.y >= 100 - height(dudeImage)
this.onGround = true
this.dy = 0
endif
dx = 0
if keydown(KEY_LEFT)
this.baseCel = 2
dx = dx - 1
endif
if keydown(KEY_RIGHT)
this.baseCel = 0
dx = dx + 1
endif
this.x = this.x + dx
if dx this.frame = (this.frame + 0.12)%2
else this.frame = 0
if this.onGround and keydown(KEY_UP, true)
this.dy = -3
this.onGround = false
endif
endfunc,
Draw: function()
set color 255, 255, 255
draw image dudeImage, this.x, this.y, this.baseCel + this.frame
endfunc
]
while not keydown(KEY_ESCAPE, true)
dude.Update()
set color 64, 80, 128
cls
set color 255, 255, 255
draw line 0, 100, width(primary), 100
dude.Draw()
redraw
fwait 60
wend
function CreateAssets()
dudeImage = CreatePNG([[[ 1 , 1 ,[ 228 , 187 , 109 ]], [ 1 , 2 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 5 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 0 , 0 ]], [ 1 , 8 ,[ 255 , 0 , 0 ]], [ 1 , 9 ,[ 255 , 0 , 0 ]], [ 1 , 10 ,[ 255 , 0 , 0 ]], [ 1 , 11 ,[ 0 , 0 , 255 ]], [ 1 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 0 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]],
[ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 6 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 0 , 0 ]], [ 2 , 8 ,[ 228 , 187 , 109 ]], [ 2 , 9 ,[ 228 , 187 , 109 ]], [ 2 , 10 ,[ 255 , 255 , 255 ]], [ 2 , 11 ,[ 255 , 255 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 13 ,[ 0 , 0 , 255 ]], [ 2 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 15 ,[ 228 , 187 , 109 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 2 ,[ 255 , 255 , 255 ]], [ 3 , 3 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]],
[ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 255 , 255 ]], [ 3 , 11 ,[ 255 , 255 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 15 ,[ 228 , 187 , 109 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]],
[ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 255 , 0 , 0 ]], [ 4 , 9 ,[ 255 , 0 , 0 ]], [ 4 , 10 ,[ 255 , 255 , 255 ]], [ 4 , 11 ,[ 255 , 255 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 14 ,[ 228 , 187 , 109 ]], [ 4 , 15 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 8 ,[ 255 , 0 , 0 ]], [ 5 , 9 ,[ 255 , 0 , 0 ]],
[ 5 , 10 ,[ 255 , 0 , 0 ]], [ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 14 ,[ 228 , 187 , 109 ]], [ 5 , 15 ,[ 228 , 187 , 109 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 7 , 3 ,[ 228 , 187 , 109 ]], [ 7 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 2 ,[ 0 , 0 , 255 ]], [ 4 , 3 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 9 ,[ 255 , 255 , 255 ]], [ 0 , 10 ,[ 255 , 255 , 255 ]], [ 0 , 11 ,[ 228 , 187 , 109 ]], [ 0 , 12 ,[ 228 , 187 , 109 ]], [ 0 , 13 ,[ 228 , 187 , 109 ]], [ 0 , 14 ,[ 228 , 187 , 109 ]], [ 1 , 1 ,[ 228 , 187 , 109 ]], [ 1 , 2 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 5 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 0 , 0 ]], [ 1 , 8 ,[ 255 , 0 , 0 ]], [ 1 , 9 ,[ 255 , 0 , 0 ]], [ 1 , 10 ,[ 255 , 0 , 0 ]], [ 1 , 11 ,[ 0 , 0 , 255 ]],
[ 1 , 12 ,[ 228 , 187 , 109 ]], [ 1 , 13 ,[ 228 , 187 , 109 ]], [ 1 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 0 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 6 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 0 , 0 ]], [ 2 , 8 ,[ 255 , 0 , 0 ]], [ 2 , 9 ,[ 255 , 0 , 0 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]],
[ 2 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 2 ,[ 255 , 255 , 255 ]], [ 3 , 3 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 0 , 0 ]], [ 3 , 11 ,[ 0 , 0 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]],
[ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]], [ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 0 , 0 ]], [ 4 , 11 ,[ 0 , 0 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]],
[ 5 , 7 ,[ 255 , 255 , 255 ]], [ 5 , 8 ,[ 255 , 255 , 255 ]], [ 5 , 9 ,[ 255 , 255 , 255 ]], [ 5 , 10 ,[ 255 , 0 , 0 ]], [ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 255 , 255 ]], [ 6 , 8 ,[ 255 , 255 , 255 ]], [ 6 , 9 ,[ 255 , 255 , 255 ]], [ 6 , 10 ,[ 228 , 187 , 109 ]], [ 6 , 11 ,[ 228 , 187 , 109 ]], [ 6 , 12 ,[ 228 , 187 , 109 ]], [ 6 , 13 ,[ 228 , 187 , 109 ]],
[ 7 , 3 ,[ 228 , 187 , 109 ]], [ 7 , 4 ,[ 228 , 187 , 109 ]], [ 7 , 10 ,[ 228 , 187 , 109 ]], [ 7 , 11 ,[ 228 , 187 , 109 ]], [ 7 , 12 ,[ 228 , 187 , 109 ]], [ 7 , 13 ,[ 228 , 187 , 109 ]], [ 4 , 2 ,[ 0 , 0 , 255 ]], [ 4 , 3 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 3 ,[ 228 , 187 , 109 ]], [ 0 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]], [ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 8 ,[ 255 , 0 , 0 ]], [ 2 , 9 ,[ 255 , 0 , 0 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 14 ,[ 228 , 187 , 109 ]], [ 2 , 15 ,[ 228 , 187 , 109 ]],
[ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]], [ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 255 , 0 , 0 ]], [ 3 , 9 ,[ 255 , 0 , 0 ]], [ 3 , 10 ,[ 255 , 255 , 255 ]], [ 3 , 11 ,[ 255 , 255 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 15 ,[ 228 , 187 , 109 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]],
[ 4 , 2 ,[ 255 , 255 , 255 ]], [ 4 , 3 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]], [ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 255 , 255 ]], [ 4 , 11 ,[ 255 , 255 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 14 ,[ 228 , 187 , 109 ]], [ 4 , 15 ,[ 228 , 187 , 109 ]], [ 5 , 0 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]],
[ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 6 ,[ 228 , 187 , 109 ]], [ 5 , 7 ,[ 255 , 0 , 0 ]], [ 5 , 8 ,[ 228 , 187 , 109 ]], [ 5 , 9 ,[ 228 , 187 , 109 ]], [ 5 , 10 ,[ 255 , 255 , 255 ]], [ 5 , 11 ,[ 255 , 255 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 14 ,[ 228 , 187 , 109 ]], [ 5 , 15 ,[ 228 , 187 , 109 ]], [ 6 , 1 ,[ 228 , 187 , 109 ]], [ 6 , 2 ,[ 228 , 187 , 109 ]],
[ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 5 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 0 , 0 ]], [ 6 , 8 ,[ 255 , 0 , 0 ]], [ 6 , 9 ,[ 255 , 0 , 0 ]], [ 6 , 10 ,[ 255 , 0 , 0 ]], [ 6 , 11 ,[ 0 , 0 , 255 ]], [ 6 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 3 ,[ 0 , 0 , 255 ]], [ 3 , 2 ,[ 0 , 0 , 255 ]]],
[ [ 0 , 3 ,[ 228 , 187 , 109 ]], [ 0 , 4 ,[ 228 , 187 , 109 ]], [ 0 , 10 ,[ 228 , 187 , 109 ]], [ 0 , 11 ,[ 228 , 187 , 109 ]], [ 0 , 12 ,[ 228 , 187 , 109 ]], [ 0 , 13 ,[ 228 , 187 , 109 ]], [ 1 , 3 ,[ 228 , 187 , 109 ]], [ 1 , 4 ,[ 228 , 187 , 109 ]], [ 1 , 7 ,[ 255 , 255 , 255 ]], [ 1 , 8 ,[ 255 , 255 , 255 ]], [ 1 , 9 ,[ 255 , 255 , 255 ]], [ 1 , 10 ,[ 228 , 187 , 109 ]], [ 1 , 11 ,[ 228 , 187 , 109 ]], [ 1 , 12 ,[ 228 , 187 , 109 ]], [ 1 , 13 ,[ 228 , 187 , 109 ]], [ 2 , 1 ,[ 228 , 187 , 109 ]],
[ 2 , 2 ,[ 228 , 187 , 109 ]], [ 2 , 3 ,[ 228 , 187 , 109 ]], [ 2 , 4 ,[ 228 , 187 , 109 ]], [ 2 , 5 ,[ 228 , 187 , 109 ]], [ 2 , 7 ,[ 255 , 255 , 255 ]], [ 2 , 8 ,[ 255 , 255 , 255 ]], [ 2 , 9 ,[ 255 , 255 , 255 ]], [ 2 , 10 ,[ 255 , 0 , 0 ]], [ 2 , 11 ,[ 0 , 0 , 255 ]], [ 2 , 12 ,[ 0 , 0 , 255 ]], [ 2 , 13 ,[ 0 , 0 , 255 ]], [ 3 , 0 ,[ 228 , 187 , 109 ]], [ 3 , 1 ,[ 255 , 255 , 255 ]], [ 3 , 4 ,[ 228 , 187 , 109 ]], [ 3 , 5 ,[ 228 , 187 , 109 ]], [ 3 , 6 ,[ 228 , 187 , 109 ]],
[ 3 , 7 ,[ 255 , 0 , 0 ]], [ 3 , 8 ,[ 228 , 187 , 109 ]], [ 3 , 9 ,[ 228 , 187 , 109 ]], [ 3 , 10 ,[ 255 , 0 , 0 ]], [ 3 , 11 ,[ 0 , 0 , 255 ]], [ 3 , 12 ,[ 0 , 0 , 255 ]], [ 3 , 13 ,[ 0 , 0 , 255 ]], [ 4 , 0 ,[ 228 , 187 , 109 ]], [ 4 , 1 ,[ 255 , 255 , 255 ]], [ 4 , 2 ,[ 255 , 255 , 255 ]], [ 4 , 3 ,[ 255 , 255 , 255 ]], [ 4 , 4 ,[ 228 , 187 , 109 ]], [ 4 , 5 ,[ 228 , 187 , 109 ]], [ 4 , 6 ,[ 228 , 187 , 109 ]], [ 4 , 7 ,[ 255 , 0 , 0 ]], [ 4 , 8 ,[ 228 , 187 , 109 ]],
[ 4 , 9 ,[ 228 , 187 , 109 ]], [ 4 , 10 ,[ 255 , 0 , 0 ]], [ 4 , 11 ,[ 0 , 0 , 255 ]], [ 4 , 12 ,[ 0 , 0 , 255 ]], [ 4 , 13 ,[ 0 , 0 , 255 ]], [ 5 , 0 ,[ 228 , 187 , 109 ]], [ 5 , 1 ,[ 228 , 187 , 109 ]], [ 5 , 2 ,[ 228 , 187 , 109 ]], [ 5 , 3 ,[ 228 , 187 , 109 ]], [ 5 , 4 ,[ 228 , 187 , 109 ]], [ 5 , 5 ,[ 228 , 187 , 109 ]], [ 5 , 6 ,[ 228 , 187 , 109 ]], [ 5 , 7 ,[ 255 , 0 , 0 ]], [ 5 , 8 ,[ 255 , 0 , 0 ]], [ 5 , 9 ,[ 255 , 0 , 0 ]], [ 5 , 10 ,[ 255 , 0 , 0 ]],
[ 5 , 11 ,[ 0 , 0 , 255 ]], [ 5 , 12 ,[ 0 , 0 , 255 ]], [ 5 , 13 ,[ 0 , 0 , 255 ]], [ 6 , 1 ,[ 228 , 187 , 109 ]], [ 6 , 2 ,[ 228 , 187 , 109 ]], [ 6 , 3 ,[ 228 , 187 , 109 ]], [ 6 , 4 ,[ 228 , 187 , 109 ]], [ 6 , 5 ,[ 228 , 187 , 109 ]], [ 6 , 7 ,[ 255 , 0 , 0 ]], [ 6 , 8 ,[ 255 , 0 , 0 ]], [ 6 , 9 ,[ 255 , 0 , 0 ]], [ 6 , 10 ,[ 255 , 0 , 0 ]], [ 6 , 11 ,[ 0 , 0 , 255 ]], [ 6 , 12 ,[ 228 , 187 , 109 ]], [ 6 , 13 ,[ 228 , 187 , 109 ]], [ 6 , 14 ,[ 228 , 187 , 109 ]],
[ 7 , 9 ,[ 255 , 255 , 255 ]], [ 7 , 10 ,[ 255 , 255 , 255 ]], [ 7 , 11 ,[ 228 , 187 , 109 ]], [ 7 , 12 ,[ 228 , 187 , 109 ]], [ 7 , 13 ,[ 228 , 187 , 109 ]], [ 7 , 14 ,[ 228 , 187 , 109 ]], [ 3 , 2 ,[ 0 , 0 , 255 ]], [ 3 , 3 ,[ 0 , 0 , 255 ]]]],8,16)
set image grid dudeImage, 3, 2
set image colorkey dudeImage, 0, 0, 0
function CreatePNG(data,pixel_across,pixel_down)
images = sizeof(data)
if images = 1
frames_across = 1
frames_down = 1
else
frames_across = int(sqr(images)) + 1
frames_down = int(images / frames_across) + 1
endif
img = createimage( frames_across * pixel_across,frames_down * pixel_down)
set image img
x_adj = 0
y_adj = 0
for f = 0 to sizeof(data) - 1
for p = 0 to sizeof(data[f]) - 1
set color data[f][p][2][0],data[f][p][2][1],data[f][p][2][2]
set pixel data[f][p][0] + x_adj,data[f][p][1] + y_adj
if p = sizeof(data[f]) - 1
x_adj = x_adj + pixel_across
endif
if x_adj / pixel_across = frames_across
x_adj = 0
y_adj = y_adj + pixel_down
endif
next
next
set image primary
return img
endfunc
endfunc
Pixel Editor crashes if you click the button to load a png file but but then click cancel in the file dialog. You can check the length of the returned filename and abort if it's zero or wait with the abort until after you've tried loading the image:
Code: function import_png()
png_imported = true
loaded_img = openfiledialog("png")
img = loadimage(loaded_img) ' returns an unset variable (null) on failure
if not typeof(img)
... abort
endif
Love the example.
Many thanks for identifying a situation where the program will crash if you cancel while importing a png file - I've incorporated the check for cancellation that you suggested into a new zip file above. I've set it up so that it just returns to the main screen instead of crashing, but if anyone wants to add a error message (or anything else) please feel free to do so. The relevant code is around line 2370.
|