From 4d329e7e5f6efa188ea46922953c9814a1b9058f Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Sun, 24 Mar 2024 10:55:51 -0700 Subject: [PATCH] (snake) Faster positions --- projects/examples/demos/res.rom | Bin 0 -> 739 bytes projects/examples/demos/snake.tal | 21 +++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 projects/examples/demos/res.rom diff --git a/projects/examples/demos/res.rom b/projects/examples/demos/res.rom new file mode 100644 index 0000000000000000000000000000000000000000..0418a439e9ba3b4d4a6e001ce38da30260574794 GIT binary patch literal 739 zcmY+BKZ_GV7{=e3ooqHoB)fNVmq_qJh(V8otRPuAg`6m7aoB2Mv*auTT3LnVF^Yv2 z)?zb-osAzMg@TQrz*J z7c90zthzm^qeUMH%r3%2avpStww=3gB}%N+`GyH3hT4Vdz$8%r@>+r*m!F5Sgh@xJ z$B>t8G}`Itk&lmSSJkUt`Kv!g#97pwA&f()Mvv=i+|uE$*G;2QOG0S2&#|r8e0QPa zd&Z;2qf()UXyj2tR6J_H3q#K<(PioEuHr|)}z zhEHRB9v=+t=Cyi?xw8 pFn9HQfj^Gt{G!&Hap4{pi)yY5rb5U)jt4krLG$&>)$Ff0`3oXO*I57n literal 0 HcmV?d00001 diff --git a/projects/examples/demos/snake.tal b/projects/examples/demos/snake.tal index 9fbf2a2..7457dba 100644 --- a/projects/examples/demos/snake.tal +++ b/projects/examples/demos/snake.tal @@ -7,8 +7,8 @@ |000 @arena &w $1 &h $1 - @apple &x $1 &y $1 - @snake &direction $1 &length $1 &dead $1 &x $1 &y $1 &tail $40 + @apple &pos &x $1 &y $1 + @snake &pos &x $1 &y $1 &direction $1 &length $1 &dead $1 &tail $40 |100 @@ -64,7 +64,7 @@ @ ( -- ) ( | tail ) - .snake/x LDZ2 STH2 + .snake/pos LDZ2 STH2 .snake/length LDZ #00 &>loop ( -- ) ( pop ) DUPk ADD .snake/tail ADD LDZ2 STH2 @@ -83,14 +83,15 @@ .snake/x LDZ INC .arena/w LDZ DIVk MUL SUB .snake/x STZ } POP ( | detect collision with apple ) - .snake/x LDZ2 .apple/x LDZ2 NEQ2 ?{ + .snake/pos LDZ2 .apple/pos LDZ2 NEQ2 ?{ #00 .snake/length LDZ INC .snake/length STZ } + ( | detect collision with body ) .snake/length LDZ #01 &>loop-body ( -- ) - DUPk ADD .snake/tail ADD LDZ2 .snake/x LDZ2 NEQ2 ?{ + DUPk ADD .snake/tail ADD LDZ2 .snake/pos LDZ2 NEQ2 ?{ [ LIT2 01 -snake/dead ] STZ #03 } INC GTHk ?&>loop-body @@ -111,14 +112,14 @@ ;snake-icns .Screen/addr DEO2 [ LIT2 -snake/tail -snake/length ] LDZ DUP ADD OVR ADD SWP &>loop ( -- ) - LDZk #0005 SFT2 .Screen/x DEO2 - INCk LDZ #0005 SFT2 .Screen/y DEO2 + LDZ2k #0005 SFT2 .Screen/y DEO2 + #0005 SFT2 .Screen/x DEO2 DUPr [ LITr -Screen/sprite ] DEOr INC INC GTHk ?&>loop POP2 ( | draw head ) - .snake/x LDZ #0005 SFT2 .Screen/x DEO2 - .snake/y LDZ #0005 SFT2 .Screen/y DEO2 + .snake/pos LDZ2 #0005 SFT2 .Screen/y DEO2 + #0005 SFT2 .Screen/x DEO2 ;snake-icns/face .Screen/addr DEO2 [ LITr -Screen/sprite ] DEOr JMP2r @@ -126,7 +127,7 @@ @ ( color -- ) .apple/x LDZ #0005 SFT2 .Screen/x DEO2 .apple/y LDZ #0005 SFT2 .Screen/y DEO2 - STHk ;apple-chr ;fill-icn [ STHr ?{ SWP2 } POP2 ] .Screen/addr DEO2 + STHk ;apple-chr ;fill-icn [ LITr 01 JCNr SWP2 POP2 ] .Screen/addr DEO2 .Screen/sprite DEO JMP2r