uxn

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

move.tal (1556B)


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