( Dev/Controller ) %++ { #0001 ADD2 } %-- { #0001 SUB2 } %2/ { #0002 DIV2 } ( variables ) @slime [ &color 00 &end ] ( devices ) |0100 @System [ &vector 0000 &pad 0000 0000 0000 &r 0000 &g 0000 &b 0000 &end ] |0120 @Screen [ &vector 0000 &width 0000 &height 0000 &pad 0000 &x 0000 &y 0000 &addr 0000 &color 00 &end ] |0140 @Controller [ &vector 0000 &button 00 &key 00 &end ] |0200 ( theme ) #0daf =System/r #02ff =System/g #035f =System/b ( vectors ) ,on-frame =Screen/vector ( set origin ) ~Screen/width 2/ =Screen/x ~Screen/height 2/ =Screen/y ,default_icn =Screen/addr #31 =Screen/color #2a =slime/color BRK @on-frame #2a =slime/color ,default_icn =Screen/addr ( hold ctrl key to change slime color ) ~Controller/button #0f AND DUP #01 NEQ ^$no-ctrl JNZ #25 =slime/color $no-ctrl DUP #02 NEQ ^$no-alt JNZ #2f =slime/color $no-alt POP ( clear ) #30 =Screen/color ( detect movement ) ~Controller/button #f0 AND DUP #04 SFT #01 AND #01 NEQ ^$no-up JNZ ( move ) ~Screen/y -- =Screen/y ,up_icn =Screen/addr $no-up DUP #05 SFT #01 AND #01 NEQ ^$no-down JNZ ( move ) ~Screen/y ++ =Screen/y ,down_icn =Screen/addr $no-down DUP #06 SFT #01 AND #01 NEQ ^$no-left JNZ ( move ) ~Screen/x -- =Screen/x ,left_icn =Screen/addr $no-left DUP #07 SFT #01 AND #01 NEQ ^$no-right JNZ ( move ) ~Screen/x ++ =Screen/x ,right_icn =Screen/addr $no-right POP ( draw face ) #31 =Screen/color ( draw slime ) ,slime_icn =Screen/addr ~slime/color =Screen/color BRK @default_icn [ 3c7e ffdb ffe7 7e3c ] @up_icn [ 2466 e7db ffff 7e3c ] @down_icn [ 3c7e ffff dbe7 6624 ] @left_icn [ 3c7e ef1f 1fef 7e3c ] @right_icn [ 3c7e f7f8 f8f7 7e3c ] @slime_icn [ 0000 183c 3c18 0000 ]