mirror of https://git.sr.ht/~rabbits/uxn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.7 KiB
83 lines
1.7 KiB
( GUI Animation ) |
|
|
|
%2// { #01 SFT2 } |
|
%AUTO-XADDR { #05 .Screen/auto DEO } |
|
|
|
( devices ) |
|
|
|
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
|
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
|
|
|0000 |
|
|
|
@dvd |
|
&x $2 &y $2 |
|
&dx $1 &dy $1 |
|
|
|
( program ) |
|
|
|
|0100 ( -> ) |
|
|
|
( theme ) |
|
#4cfd .System/r DEO2 |
|
#4cf3 .System/g DEO2 |
|
#dcf2 .System/b DEO2 |
|
|
|
( vectors ) |
|
;on-frame .Screen/vector DEO2 |
|
|
|
( starting position ) |
|
.Screen/width DEI2 2// .dvd/x STZ2 |
|
.Screen/height DEI2 2// .dvd/y STZ2 |
|
|
|
AUTO-XADDR |
|
|
|
#01 ;draw-dvd JSR2 |
|
|
|
BRK |
|
|
|
@on-frame ( -> ) |
|
|
|
#00 ;draw-dvd JSR2 |
|
|
|
( case: hit-right ) .dvd/x LDZ2 .Screen/width DEI2 #0020 SUB2 EQU2 |
|
( case: hit-left ) .dvd/x LDZ2 #0000 EQU2 |
|
#0000 EQU2 ,&no-flipx JCN |
|
.dvd/dx LDZk #00 EQU SWP STZ &no-flipx |
|
|
|
( case: hit-bottom ) .dvd/y LDZ2 .Screen/height DEI2 #0010 SUB2 EQU2 |
|
( case: hit-top ) .dvd/y LDZ2 #0000 EQU2 |
|
#0000 EQU2 ,&no-flipy JCN |
|
.dvd/dy LDZk #00 EQU SWP STZ &no-flipy |
|
|
|
( incr ) .dvd/x LDZ2 #0001 #00 .dvd/dx LDZ #00 EQU DUP2 ADD2 SUB2 ADD2 .dvd/x STZ2 |
|
( incr ) .dvd/y LDZ2 #0001 #00 .dvd/dy LDZ #00 EQU DUP2 ADD2 SUB2 ADD2 .dvd/y STZ2 |
|
|
|
#01 ;draw-dvd JSR2 |
|
|
|
BRK |
|
|
|
@draw-dvd ( color -- ) |
|
|
|
STH |
|
;dvd_icn .Screen/addr DEO2 |
|
.dvd/x LDZ2 .Screen/x DEO2 |
|
.dvd/y LDZ2 .Screen/y DEO2 |
|
#0800 |
|
&loop |
|
DUP #04 NEQ ,&no-lb JCN |
|
.Screen/x DEI2k #0020 SUB2 ROT DEO2 |
|
.Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
&no-lb |
|
STHkr .Screen/sprite DEO |
|
INC GTHk ,&loop JCN |
|
POP2 |
|
POPr |
|
|
|
JMP2r |
|
|
|
@dvd_icn ( 4 x 2 ) |
|
001f 3f38 3838 787f 00fe fe7e 7777 e3c3 |
|
000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc |
|
7f00 000f ff7f 0700 0301 00ff f0f8 ff00 |
|
8700 00ff 7f7f ff00 f000 00e0 fcfc 8000
|
|
|