FINE I'll implement arrow keys
This commit is contained in:
parent
0323aeb924
commit
9afb6925cd
BIN
8Bitsy.dsk
BIN
8Bitsy.dsk
Binary file not shown.
|
@ -3,12 +3,15 @@
|
|||
|
||||
(local {: walkable} tile.flag-to-bit)
|
||||
|
||||
(vm:word :either= ; target val1 val2 -- f
|
||||
:>rot :over := :>rot := :|)
|
||||
|
||||
(vm:word :movement-dir ; key -- dyx
|
||||
(vm:case [(string.byte "I") 0xff00]
|
||||
[(string.byte "J") 0x00ff]
|
||||
[(string.byte "K") 0x0001]
|
||||
[(string.byte "M") 0x0100]
|
||||
[:else 0x0000]))
|
||||
(vm:ifchain [:dup (string.byte "I") 0x0b :either=] [:drop 0xff00]
|
||||
[:dup (string.byte "J") 0x08 :either=] [:drop 0x00ff]
|
||||
[:dup (string.byte "K") 0x15 :either=] [:drop 0x0001]
|
||||
[:dup (string.byte "M") 0x0a :either=] [:drop 0x0100]
|
||||
[:drop 0x0000]))
|
||||
|
||||
(vm:def :yx+ ; yx yx -- yx
|
||||
[:lda vm.TOP :x]
|
||||
|
@ -68,9 +71,7 @@
|
|||
:swap :itile-at :lookup-flags :&)
|
||||
|
||||
(vm:word :player-key ; key --
|
||||
(vm:ifchain
|
||||
[:movement-dir :dup]
|
||||
[:try-move-player :load-next-level]
|
||||
(vm:ifchain [:movement-dir :dup] [:try-move-player :load-next-level]
|
||||
[:drop]))
|
||||
|
||||
(vm:word :full-redraw :drawmap :player-redraw)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
(set self.breakpoints {}))
|
||||
(fn Machine.boot [self]
|
||||
(when (not self.pid)
|
||||
(set self.pid (start-mame :apple2p))))
|
||||
(set self.pid (start-mame :apple2e))))
|
||||
(fn Machine.run [self]
|
||||
(self:boot)
|
||||
(self:connect))
|
||||
|
|
Loading…
Reference in a new issue