From e55b30ba1d77ed890bba7526bb5d18eb5ad89dc1 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Tue, 26 Feb 2019 21:44:22 -0500 Subject: [PATCH] Animation support, per-tile map walkability flags --- defs.jor | 1 + game.exe | Bin 113021 -> 113186 bytes game.jor | 96 +++++++++++++++++++++++++++++++++++++++++------------ game.prj | Bin 5281 -> 5281 bytes jorth.c | 3 ++ sprite.tif | Bin 4078 -> 4078 bytes 6 files changed, 79 insertions(+), 21 deletions(-) diff --git a/defs.jor b/defs.jor index 4d8b011..368f252 100755 --- a/defs.jor +++ b/defs.jor @@ -19,6 +19,7 @@ s" jorth.log" open seekend deactivate const LOGFILE : defer word new-word $DOCOLON , ' noop , ' ret , ; : redefine ( cp cpdeferred ) cell + ! ; +: array word new-word $DOVAR , ; : create word new-word $DOCREATE , 0 , ; : finishcreate ( ipfirst -- ) diff --git a/game.exe b/game.exe index 781709d3cad184b7472371e87c8f23fdc8b09499..a4f94c59822d277f74283f125638a0e08faf8ac0 100755 GIT binary patch delta 25812 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 U&(^U&#i5@K{I=D4)==|*0c#=@mH+?% delta 25717 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 meF4wkv!; diff --git a/game.jor b/game.jor index 91431c4..99f0752 100755 --- a/game.jor +++ b/game.jor @@ -35,10 +35,11 @@ REPL start-repl defer tick defer draw -: defentity var 2 cells allot ; -: entity.x ; -: entity.y cell + ; -: entity.dir 2 cells + ; +: defentity ( x y dir anim -- ) array , , , , ; +: entity.x 3 cells + ; +: entity.y 2 cells + ; +: entity.dir cell + ; +: entity.anim ; 0 const W 1 const E @@ -51,15 +52,42 @@ defer draw N = if 0 -1 else 0 1 then ; -: defsprite ( s n e w ) b, b, b, b, here 4 - const ; -: sprindex ( sprite dir ) + b@ ; +: frame ( s n e w ) b, b, b, b, ; +array frames +( 0: car ) 3 1 0 2 frame +( 1: pete stand ) 5 7 7 5 frame +( 2: pete walk ) 6 8 8 6 frame -3 1 0 2 defsprite s_car +: sprindex ( dir frame ) 2 << frames + + b@ ; +: defstatic ( frame -- ) create b, does> b@ sprindex ; +: defanim ( frame... framecount ticks-per-frame -- ) + create b, dup b, 0 for b, next + does> ( dir a -- ) + dup dup 1 + b@ swap b@ ( dir a count tpf ) + ticks swap / swap % ( dir a index ) + 2 + + b@ sprindex ; -defentity player +0 defstatic {car} +1 defstatic {pete-stand} +1 2 2 5 defanim {pete-walk} -128 player entity.x ! -128 player entity.y ! +: ~ -1 ^ ; +var player.state +: f! ( b v flag -- ) + r> dup @ ( b v val r: flag ) + > swap 4 >> swap ; +: world>tile 4 >> swap 4 >> swap ; +: mousetile mouseworldpos world>tile ; : tile ( x y -- ptr ) mapsize drop * + map + ; +1 const WALKABLE +2 const DRIVABLE + +array tileflags +( grass ) WALKABLE b, +( dirt ) WALKABLE b, +( water ) 0 b, +( pavement ) WALKABLE DRIVABLE | b, +( brick ) 0 b, +( forest ) 0 b, +( roof ) 0 b, +( brick ) 0 b, +( window ) 0 b, + +: mapflag? ( x y flag -- b ) >rot tile b@ tileflags + b@ & ; +: walkable? ( x y -- b ) WALKABLE mapflag? ; +: drivable? ( x y -- b ) DRIVABLE mapflag? ; + : tick-mapedit tileselect @ ^< key-pressed if 1 - then @@ -219,12 +268,19 @@ task const JOB JOB listen-for-jobs ( T I C K ) +: player.canmove? ( x y -- ) + player.state DRIVING f@ if DRIVABLE else WALKABLE then mapflag? ; : move-player player entity.dir @ dir>pos - dup if swap drop player entity.y ( d v -- ) + 2dup player entity.x @ player entity.y @ world>tile +pos + player.canmove? if + 1 player.state MOVING f! + dup if swap drop player entity.y ( d v -- ) else drop player entity.x then - swap 16 * over @ + 4 r@ entity.x @ r@ entity.y @ + r@ entity.dir @ r< entity.anim @ execute draw-sprite ; : full-draw @@ -259,9 +315,7 @@ JOB listen-for-jobs player entity.y @ 92 - scroll - draw-player - 48 64 0 draw-sprite - 640 640 2 draw-sprite + player draw-entity mouseworldpos 4 draw-sprite draw-screen draw-footer ; diff --git a/game.prj b/game.prj index fd09030239e1a259d906de717b31ce6ad26209bf..826465637b3a81e88e06174eb7a6a125fc098041 100755 GIT binary patch delta 118 zcmZ3exlnV1IvewZl~J3u*iNwV_O6WbOOat<5O-!^xV`y5&wXa*Ckzdf9}1{i_%Qe| zFfed1h%@Y25#`6upuiC$CdR3#f~WVewK|zyJUFA7_CWTns7vU!crS4IF&mM1Cz diff --git a/jorth.c b/jorth.c index 5f80dbb..6ccee50 100755 --- a/jorth.c +++ b/jorth.c @@ -80,6 +80,7 @@ BINOP(f_add, i, +) BINOP(f_sub, i, -) BINOP(f_mul, i, *) BINOP(f_div, i, /) +BINOP(f_mod, i, %) BINOP(f_eq, i, ==) BINOP(f_neq, i, !=) BINOP(f_ge, i, >=) @@ -871,6 +872,7 @@ void f_init() { CDEF("-", f_sub); CDEF("*", f_mul); CDEF("/", f_div); + CDEF("%", f_mod); CDEF("=0", f_eq0); CDEF("not", f_not); CDEF("=", f_eq); @@ -951,6 +953,7 @@ void f_init() { CDEF("rstacksize", f_rstacksize); CDEF("task-user-size", f_taskusersize); PCONST("$DOCREATE", f_docreate); + PCONST("$DOVAR", f_dovar); PUSHS("boot.jor"); f_open(); diff --git a/sprite.tif b/sprite.tif index 9915569284376a00e5fc28bce7867988145828d9..cb231875aab216206c1cbea406b9fb57b92c42a5 100755 GIT binary patch literal 4078 zcmeHFu}T9$5S^GH$_ep6tODsQto(!s12G^;lW#ce(ge>gDMYTzUx;P;Gzylftu2DB zcMzh5aK72u4GB@ypjJD_-kW{1vu|g18;wKSBBE`gLXisab}*th%z{K~@m8vG-0=NNOlA^qB<-y7*C3nU`e21-;S4kfxcB)Tx35WL2L zB9wNpLzMs6rpzX%%k>_ddK|~h&tPGb)}=wt)1+)hE(&X?7>T7H6k0++AQpsf7laW8 z8r^c9Ct?Vv(8qL+lJYxd&+)?C!-j0?Z)yEJ(DG0Izy9Wgn-dhwoR|yxX8qD4F?U6Q zC4!;y!AOZR!|m+t*3vF8yCGP*Ytg+_I+el&tV9|x*1Lpc7UjI`2fO* z*#^wc#yWp>D9;+kimP?2{z5>Nz5~7kz5~7kz5~7kz5~7kz5{>Sfm@<}e=DJPE^snf delta 26 gcmaDS|4x2GA@k-2)-*04!Oz5TfPtZ*fun-~0Efy5hyVZp