(lander)Apply less than max force

This commit is contained in:
Devine Lu Linvega 2023-06-10 19:47:46 -07:00
parent 3aeca7bbdd
commit fd185c4fb0
1 changed files with 42 additions and 11 deletions

View File

@ -7,6 +7,12 @@
|80 @Controller &vector $2 &button $1 &key $1 |80 @Controller &vector $2 &button $1 &key $1
|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &wheel $1 |90 @Mouse &vector $2 &x $2 &y $2 &state $1 &wheel $1
|0000
@pos &x $2 &y $2
@force &x $2 &y $2
@angle $2
|0100 ( -> ) |0100 ( -> )
( theme ) ( theme )
@ -31,16 +37,22 @@ BRK
[ LIT &f $1 ] INCk ,&f STR [ LIT &f $1 ] INCk ,&f STR
#01 AND ?&no-read #01 AND ?&no-read
.Controller/button DEI .Controller/button DEI
DUP #80 NEQ ?&no-u DUP #10 NEQ ?&no-u
;get-pt/offset LDA #01 SUB ;get-pt/offset STA .force/y LDZ2 #0008 SUB2 .force/y STZ2
;draw-lander/plume LDA INC ;draw-lander/plume STA
&no-u &no-u
DUP #40 NEQ ?&no-d DUP #40 NEQ ?&no-l
;get-pt/offset LDA INC ;get-pt/offset STA .angle LDZ2 #0001 SUB2 .angle STZ2
;draw-lander/plume LDA INC ;draw-lander/plume STA ;draw-lander/plume LDA INC ;draw-lander/plume STA
&no-d &no-l
DUP #80 NEQ ?&no-r
.angle LDZ2 INC2 .angle STZ2
;draw-lander/plume LDA INC ;draw-lander/plume STA
&no-r
POP POP
&no-read &no-read
apply-force
( .force/y LDZ2 phex #0a18 DEO )
redraw redraw
BRK BRK
@ -49,6 +61,23 @@ BRK
BRK BRK
(
@|core )
@apply-force ( -- )
.force/y LDZ2 INC2 .force/y STZ2
.force/y LDZ2 reduce .pos/y LDZ2 ADD2 .pos/y STZ2
JMP2r
@reduce ( force* -- )
DUP2 #8000 AND2 ORA ?&neg
#02 SFT2
JMP2r
&neg abs2 #02 SFT2 #0000 SWP2 SUB2 JMP2r
( (
@|drawing ) @|drawing )
@ -82,8 +111,8 @@ JMP2r
( face ) ( face )
#26 .Screen/auto DEO #26 .Screen/auto DEO
;face-icn .Screen/addr DEO2 ;face-icn .Screen/addr DEO2
#0014 .Screen/x DEO2 #0014 .pos/x LDZ2 ADD2 .Screen/x DEO2
#0014 .Screen/y DEO2 #0014 .pos/y LDZ2 ADD2 .Screen/y DEO2
#05 .Screen/sprite DEOk DEOk DEO #05 .Screen/sprite DEOk DEOk DEO
#00 .Screen/auto DEO #00 .Screen/auto DEO
@ -105,9 +134,9 @@ JMP2r
@get-pt ( id rad -- x* y* ) @get-pt ( id rad -- x* y* )
#00 SWP STH2 #00 SWP STH2
[ LIT &offset $1 ] ADD .angle LDZ2 NIP ADD
!get-point/force !get-point/force
@ -119,9 +148,11 @@ JMP2r
#00 SWP ;circle-tbl ADD2 LDA2 #00 SWP ;circle-tbl ADD2 LDA2
#00 SWP STH2kr MUL2 #04 SFT2 #00 SWP STH2kr MUL2 #04 SFT2
( center ) #0080 STH2kr #30 SFT2 SUB2 ADD2 #02 SFT2 ( center ) #0080 STH2kr #30 SFT2 SUB2 ADD2 #02 SFT2
( pos ) .pos/y LDZ2 ADD2
ROT ROT
#00 SWP STH2kr MUL2 #04 SFT2 #00 SWP STH2kr MUL2 #04 SFT2
( center ) #0080 STH2kr #30 SFT2 SUB2 ADD2 #02 SFT2 ( center ) #0080 STH2kr #30 SFT2 SUB2 ADD2 #02 SFT2
( pos ) .pos/x LDZ2 ADD2
SWP2 SWP2
POP2r POP2r
@ -178,7 +209,7 @@ JMP2r
0804 0201 0000 0000 c33c 0081 7e00 0000 0804 0201 0000 0000 c33c 0081 7e00 0000
1020 4080 0000 0000 1020 4080 0000 0000
] ]
@circle-tbl [ @circle-tbl [
8000 9802 b009 c715 da25 ea38 f64f fd67 8000 9802 b009 c715 da25 ea38 f64f fd67