Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pixel Editor
#11
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.
Reply
#12
I made a quick test of the new version, and now it seems to work Smile

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
Reply
#13
(Yesterday, 06:03 PM)Marcus Wrote: I made a quick test of the new version, and now it seems to work Smile

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)