uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

move.tal (1642B)


      1 ( Move: Use controller arrows, leave a slime. )
      2 
      3 |00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
      4 |20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
      5 |80 @Controller &vector $2 &button $1 &key $1
      6 
      7 |0000
      8 
      9 	@hello &x $2 &y $2
     10 
     11 |0100
     12 
     13 @on-reset ( -> )
     14 	( | theme )
     15 	#c0f4 .System/r DEO2
     16 	#c0fc .System/g DEO2
     17 	#c0f7 .System/b DEO2
     18 	( | vectors )
     19 	;on-frame .Screen/vector DEO2
     20 	( | set origin ) .Screen/width DEI2 #01 SFT2 .hello/x STZ2
     21 	.Screen/height DEI2 #01 SFT2 .hello/y STZ2
     22 	[ LIT2 16 -Screen/auto ] DEO
     23 	#00 on-frame/draw BRK
     24 
     25 @on-frame ( -> )
     26 	.Controller/button DEI DUP ?{ POP BRK }
     27 	( | clear )
     28 	[ LIT2 40 -Screen/sprite ] DEO
     29 	( | movement )
     30 	DUP #10 AND #00 EQU ?{
     31 		.hello/y LDZ2k #0001 SUB2 ROT STZ2 }
     32 	DUP #20 AND #00 EQU ?{
     33 		.hello/y LDZ2k INC2 ROT STZ2 }
     34 	DUP #40 AND #00 EQU ?{
     35 		.hello/x LDZ2k #0001 SUB2 ROT STZ2 }
     36 	DUP #80 AND #00 EQU ?{
     37 		.hello/x LDZ2k INC2 ROT STZ2 }
     38 	&draw ( button -> )
     39 		.hello/x LDZ2 STH2k .Screen/x DEO2
     40 		.hello/y LDZ2 STH2k .Screen/y DEO2
     41 		;hello-chr .Screen/addr DEO2
     42 		[ LIT2 c1 -Screen/sprite ] DEOk
     43 		DEO
     44 		( draw slime ) STH2r .Screen/y DEO2
     45 		STH2r .Screen/x DEO2
     46 		;slime-icn .Screen/addr DEO2
     47 		get-slime .Screen/sprite DEOk
     48 		DEO
     49 		BRK
     50 
     51 @get-slime ( button -- color )
     52 	#0f AND DUP #01 NEQ ?{ POP #05 JMP2r }
     53 	DUP #02 NEQ ?{ POP #0a JMP2r }
     54 	POP #0f JMP2r
     55 
     56 @hello-chr [
     57 	0007 1820 2040 4044 0000 071f 1f3f 3f3b
     58 	00e0 1804 0402 0222 0000 e0f8 f8fc fcdc
     59 	4040 4423 2018 0700 3f3f 3b1c 1f07 0000
     60 	0202 22c4 0418 e000 fcfc dc38 f8e0 0000 ]
     61 
     62 @slime-icn [
     63 	0000 0000 0003 0707 0000 0000 00c0 e0e0
     64 	0707 0300 0000 0000 e0e0 c000 0000 0000 ]
     65