From 926e69e33d0f3f9081e7ef60211262791b268956 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sun, 21 Jan 2024 17:27:12 -0700 Subject: [PATCH] Added game controls for movement --- Art/038MoveLeft.gif | Bin 0 -> 137 bytes Art/038MoveLeft.xcf | Bin 0 -> 779 bytes Art/039MoveRight.gif | Bin 0 -> 137 bytes Art/039MoveRight.xcf | Bin 0 -> 780 bytes SpriteBank#060000 | Bin 13543 -> 14087 bytes input.s | 8 ++++---- inventory.s | 2 +- player.s | 21 +++++++++++++++++++-- projectile.s | 40 ++++++++++++++++++++++++++++++++++++++++ spritebank.s | 12 ++++++------ 10 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 Art/038MoveLeft.gif create mode 100644 Art/038MoveLeft.xcf create mode 100644 Art/039MoveRight.gif create mode 100644 Art/039MoveRight.xcf diff --git a/Art/038MoveLeft.gif b/Art/038MoveLeft.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8d441db2d3945708306e47e897fba7927098aa0 GIT binary patch literal 137 zcmV;40CxXJNk%w1VGsZi0OJn;q~H4hfB*o10ElK0%$YOpyF}e)X8)P0cXxOH006hQ zx82>{0C&5gOr`(;0RR90A^s6Va%Ew3Wn>_CX>@2HM@dak04x9i000mG5C8xKDG rtG#$SeYbQV*lD3xnWcHA>RM(13!`wHe06fyfbRbo9dEK5)*=8q%KbN7 literal 0 HcmV?d00001 diff --git a/Art/038MoveLeft.xcf b/Art/038MoveLeft.xcf new file mode 100644 index 0000000000000000000000000000000000000000..f7be8fb60b2aab271a0a96480d7342372b44292d GIT binary patch literal 779 zcmZvay-LGS6vt14woTReEeH$T6sh2@Czdc8rgiA)-N0ovsF{{4%t2)}D* z@~yk^@v_@@oV5FxBuPrt>-GBmJ|!=A2M_2@Q{-q8D)1jnL*?xoA{J~08iK~5xs17Q z7W#z7Tr8<(1?{%&$B5-BrglQxjP0gKy!b@y?H?X-WkR-kZPT@DZs;{t_fs{BFI%>V zf|l1@uT&k^3R*!Zs?ya$_t+G5c{SEiKK`fN5c1;kMRaCbp6`lA9ns~lC<|&G-;0Ik zTPJqJPXvw=*|CuQIUeBeW?pkKu4fBip8R>V`qbms{kcVJkvh=5a4FZ(ZSz zX+xansp=WS(Nc~Va$L!=$ni*yM{_)uV?ITGpRy8w-_5oPDPCd5m+=k1oH4IkeGO_) zNNHW%*whHH5AAu7QaSCF<26bR4Jt}M^v9Q|Xq0K#(4_{w75YL{0C&5gOr`(;0RR90A^s6Va%Ew3Wn>_CX>@2HM@dak04x9i000mG5C8xKDG rtG#$SeYbQV*lD3xnWcHA>RM(13!`wXB{h}c*Y5v0z%D2xVj=)L$m=%d literal 0 HcmV?d00001 diff --git a/Art/039MoveRight.xcf b/Art/039MoveRight.xcf new file mode 100644 index 0000000000000000000000000000000000000000..43097864808ae9b692b26f84cf778486d60b8a1f GIT binary patch literal 780 zcmZvay-LGS6vt14woSG1+sWbjNgWC;x(h0Zpx`USG>O4Bkt8*`IXXHC9R+a^ojZtc z;42j0z{OE8{?BbLMD!&8oZtCKa_>o8uX83YEJvI-8cl*tX42pb&?d+C?_YF9IIo?l zx8BCb%kIE&(%xf|Bq>q9-yaMHl)T&>JfJ&Gk)tW7zz>*#%G)ABf#XDWEM$LKVh)QjQmLT*@mP+>b6m~w1eo8atOVe9v#mmkSD5iK?S`;WqlmJN~u0a EKWb-%dH?_b literal 0 HcmV?d00001 diff --git a/SpriteBank#060000 b/SpriteBank#060000 index fdae4bb8449c6c4dc9c87f1427a86030a872c50e..3be7a87f6a2ad767f8fab956feeb2dda774435d3 100644 GIT binary patch delta 577 zcmaE!*`62ay_#!P4JQKw!!wiPMk@>^=uOgDuXRa-LETcdNO`s56M1>LD4D5JHzgFr zYea7f+X^ifP~l(BJDI16yNauka|Xv2_M2?~SXEggSmrRlVv1q9!05)fpCOWAvLdVK z#w-=C`k6DWGaVSEyPB6gQdrEa`GJ$KnRziQm}XtP5KJ#zyckR`K4bt@%K}!-2o`08 z>%yg)sd>?27EK0z&UX)*Ssp2@eAm1LZc;20Sb$~mB29kI2S9~Oz%)z&Q1WFn)5@7( z6F>@BpgMsPAVH85IGY(kf~*YEQBl^J_Kea%k1&D7nI?bW(cIk4CCFI+?%jfc^l26_ ufbshj=Fo-U2EOIK3D6%HtBpD-8A&Vcx9se6T8g&@C z7627o6S)x`5Q7c`4TlSM3VjKb2(Sm$2Kogd1ylr>1Lgu)0?YwI0lNTI0F!|U6|rt4 O3bUFE4gs^g4NEC+Yavkp diff --git a/input.s b/input.s index b669fcc..a501014 100644 --- a/input.s +++ b/input.s @@ -109,10 +109,10 @@ kbdScanGameplay: beq kbdScanPeriod cmp #(' ' + $80) beq kbdScanSpace - cmp #(';' + $80) - beq kbdScanSemiColon - cmp #(39 + $80) - beq kbdScanApostrophe +; cmp #(';' + $80) ; For debugging cat movement +; beq kbdScanSemiColon ; +; cmp #(39 + $80) ; +; beq kbdScanApostrophe ; cmp #(9 + $80) bne kbdScanDebugPiggyback jmp kbdScanTab diff --git a/inventory.s b/inventory.s index 55a340b..82e1f83 100644 --- a/inventory.s +++ b/inventory.s @@ -6,7 +6,7 @@ ; -INVENTORY_ITEMS = 3 +INVENTORY_ITEMS = 5 ITEM_WIDTH = 16 ; In pixels ITEM_HEIGHT = 16 ; In pixels ICON_WIDTH = 8 ; In pixels diff --git a/player.s b/player.s index 0f1c466..3c229bd 100644 --- a/player.s +++ b/player.s @@ -24,7 +24,7 @@ playerData: .word 0 ; Anger .byte 8,"SPROCKET " ; Name .word 29 ; Base Sprite - .word 0,5,7,0,0,0,0,0 ; Prices + .word 0,5,7,1,1,0,0,0 ; Prices .word 0 ; Current weapon .word 0 ; Treats .repeat 86 @@ -45,7 +45,7 @@ playerData: .word 0 ; Anger .byte 8,"TINKER " ; Name .word 20 ; Base Sprite - .word 0,5,7,0,0,0,0,0 ; Prices + .word 0,5,7,1,1,0,0,0 ; Prices .word 0 ; Current weapon .word 0 ; Treats @@ -246,6 +246,13 @@ playerFire: sbc SCRATCHL sta playerData+PD_TREATS,y + ; Check for movement + lda playerData+PD_CURRWEAPON,y + cmp #3 + beq playerFireMoveLeft + cmp #4 + beq playerFireMoveRight + ; Animate the shooting phy ldy SCRATCHL2 @@ -273,6 +280,16 @@ playerFire_abort: pla ; Balance stack bra playerFire_done +playerFireMoveLeft: + lda #-2 + sta playerMoveRequested + bra playerFire_abort + +playerFireMoveRight: + lda #2 + sta playerMoveRequested + bra playerFire_abort + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; playerIntersectRect diff --git a/projectile.s b/projectile.s index 9ae5b21..153a222 100644 --- a/projectile.s +++ b/projectile.s @@ -151,6 +151,46 @@ projectileTypes: .byte 0 ; Padding to 32-byte boundary .endrepeat + ; Move Left + .word 0 ; Damage + .word 0 ; Crater radius + .word 0 ; Frame 0 + .word 38 ; Frame 1 + .word 0 ; Frame 2 + .addr 0 ; Deploy + .addr 0 ; Update + .addr 0 ; Render + .addr 0 ; Unrender + .addr 0 ; Protect + .addr 0 ; Cleanup + .word 0 ; Directional + .word 0 ; Mining + + .repeat 6 + + .byte 0 ; Padding to 32-byte boundary + .endrepeat + + ; Move Right + .word 0 ; Damage + .word 0 ; Crater radius + .word 0 ; Frame 0 + .word 39 ; Frame 1 + .word 0 ; Frame 2 + .addr 0 ; Deploy + .addr 0 ; Update + .addr 0 ; Render + .addr 0 ; Unrender + .addr 0 ; Protect + .addr 0 ; Cleanup + .word 0 ; Directional + .word 0 ; Mining + + .repeat 6 + + .byte 0 ; Padding to 32-byte boundary + .endrepeat + PT_DAMAGE = 0 ; Byte offsets into projectile type data structure PT_RADIUS = 2 diff --git a/spritebank.s b/spritebank.s index 329dec3..e125a68 100644 --- a/spritebank.s +++ b/spritebank.s @@ -2,24 +2,24 @@ DrawSpriteBank : - ASL ; A=Sprite Number ($0000-$0025) + ASL ; A=Sprite Number ($0000-$0027) TAX ; Y=Target Screen Address ($2000-$9D00) LDA SpriteBankNum,X ; Relative Sprite Number Table JMP (SpriteBankBank,X) ; Bank Number Table SpriteBankNum : - .dbyt $0C00,$0B00,$1E00,$1700,$1800,$1D00,$2400,$2200 - .dbyt $1B00,$1C00,$2100,$2500,$1100,$1500,$1600,$2300 - .dbyt $2000,$1F00,$1A00,$1900,$0D00,$1200,$0600,$0000 + .dbyt $0C00,$0B00,$2000,$1800,$1A00,$1F00,$2600,$2400 + .dbyt $1D00,$1E00,$2300,$2700,$1100,$1500,$1600,$2500 + .dbyt $2200,$2100,$1C00,$1B00,$0D00,$1200,$0600,$0000 .dbyt $0300,$0400,$1000,$1300,$0E00,$0900,$0800,$0700 - .dbyt $0200,$0100,$0500,$0F00,$1400,$0A00 + .dbyt $0200,$0100,$0500,$0F00,$1400,$0A00,$1900,$1700 SpriteBankBank : .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 - .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 + .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 SpriteBankBank00 : JSL $AA0000