uxn/projects/examples/demos/move.tal

66 lines
1.6 KiB
Tal
Raw Normal View History

2023-10-28 13:08:01 -04:00
( Move: Use controller arrows, leave a slime. )
2022-03-25 15:05:11 -04:00
|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
|80 @Controller &vector $2 &button $1 &key $1
|0000
2023-10-28 13:08:01 -04:00
@hello &x $2 &y $2
2021-03-13 20:34:08 -05:00
2023-10-28 13:08:01 -04:00
|0100
@on-reset ( -> )
( | theme )
2022-03-25 15:05:11 -04:00
#c0f4 .System/r DEO2
#c0fc .System/g DEO2
#c0f7 .System/b DEO2
2023-10-28 13:08:01 -04:00
( | vectors )
;on-frame .Screen/vector DEO2
2023-10-28 13:17:10 -04:00
( | set origin ) .Screen/width DEI2 #01 SFT2 .hello/x STZ2
2022-03-25 15:05:11 -04:00
.Screen/height DEI2 #01 SFT2 .hello/y STZ2
2023-10-28 13:17:10 -04:00
[ LIT2 16 -Screen/auto ] DEO
2023-10-28 13:08:01 -04:00
#00 on-frame/draw BRK
2021-03-13 20:34:08 -05:00
2021-04-21 12:48:04 -04:00
@on-frame ( -> )
2023-10-28 13:08:01 -04:00
.Controller/button DEI DUP ?{ POP BRK }
( | clear )
2023-10-28 13:17:10 -04:00
[ LIT2 40 -Screen/sprite ] DEO
2023-10-28 13:08:01 -04:00
( | movement )
DUP #10 AND #00 EQU ?{
.hello/y LDZ2k #0001 SUB2 ROT STZ2 }
DUP #20 AND #00 EQU ?{
.hello/y LDZ2k INC2 ROT STZ2 }
DUP #40 AND #00 EQU ?{
.hello/x LDZ2k #0001 SUB2 ROT STZ2 }
DUP #80 AND #00 EQU ?{
.hello/x LDZ2k INC2 ROT STZ2 }
&draw ( button -> )
.hello/x LDZ2 STH2k .Screen/x DEO2
.hello/y LDZ2 STH2k .Screen/y DEO2
;hello-chr .Screen/addr DEO2
2023-10-28 13:17:10 -04:00
[ LIT2 c1 -Screen/sprite ] DEOk
2023-10-28 13:08:01 -04:00
DEO
( draw slime ) STH2r .Screen/y DEO2
STH2r .Screen/x DEO2
;slime-icn .Screen/addr DEO2
get-slime .Screen/sprite DEOk
DEO
BRK
2021-03-13 20:34:08 -05:00
2022-03-25 15:05:11 -04:00
@get-slime ( button -- color )
2023-10-28 13:08:01 -04:00
#0f AND DUP #01 NEQ ?{ POP #05 JMP2r }
DUP #02 NEQ ?{ POP #0a JMP2r }
POP #0f JMP2r
2022-03-25 15:05:11 -04:00
2023-10-28 13:08:01 -04:00
@hello-chr [
2022-03-25 15:05:11 -04:00
0007 1820 2040 4044 0000 071f 1f3f 3f3b
00e0 1804 0402 0222 0000 e0f8 f8fc fcdc
4040 4423 2018 0700 3f3f 3b1c 1f07 0000
2023-10-28 13:08:01 -04:00
0202 22c4 0418 e000 fcfc dc38 f8e0 0000 ]
@slime-icn [
2022-03-25 15:05:11 -04:00
0000 0000 0003 0707 0000 0000 00c0 e0e0
2023-10-28 13:08:01 -04:00
0707 0300 0000 0000 e0e0 c000 0000 0000 ]