Hey folks,
So I have my ship shooting... sort of... but when I press and hold the button down the bullet resets to the ship position as it should but it stays there for as long as the button is held down...
I'm using the movement code from Nerdy Nights and it works great for my ship's movement but I'm not sure how I can detect the initial button press down rather than if it's being held down. Sorry if I'm not explaining this well but here's my code. I have another label elsewhere that handles the bullet's movement.
EDIT: I'll try throwing in another variable... maybe set a value when button is pressed and reset it when the bullet hits the wall or enemy. That way I can check it when the button is held and only reset the bullet when the values match. Man I miss bools. LOL
So I have my ship shooting... sort of... but when I press and hold the button down the bullet resets to the ship position as it should but it stays there for as long as the button is held down...
I'm using the movement code from Nerdy Nights and it works great for my ship's movement but I'm not sure how I can detect the initial button press down rather than if it's being held down. Sorry if I'm not explaining this well but here's my code. I have another label elsewhere that handles the bullet's movement.
Code:
LatchController:
LDA #$01
STA $4016
LDA #$00
STA $4016 ; tell both the controllers to latch buttons
; A button
ReadA:
LDA $4016 ; player 1 button A
AND #%00000001 ; only look at bit 0
BEQ ReadADone ; branch to ReadADone if button is NOT pressed (0)
LDX $0217 ; load ship sprite X position
STX $021B ; move bullet to ship sprite X position
LDX $0214 ; load ship sprite y position
DEX ; Move up a few pixels to align with ship
DEX
DEX
STX $0218 ; move bullet to ship sprite Y position
ReadADone: ; handling this button is done
LDA #$01
STA $4016
LDA #$00
STA $4016 ; tell both the controllers to latch buttons
; A button
ReadA:
LDA $4016 ; player 1 button A
AND #%00000001 ; only look at bit 0
BEQ ReadADone ; branch to ReadADone if button is NOT pressed (0)
LDX $0217 ; load ship sprite X position
STX $021B ; move bullet to ship sprite X position
LDX $0214 ; load ship sprite y position
DEX ; Move up a few pixels to align with ship
DEX
DEX
STX $0218 ; move bullet to ship sprite Y position
ReadADone: ; handling this button is done
EDIT: I'll try throwing in another variable... maybe set a value when button is pressed and reset it when the bullet hits the wall or enemy. That way I can check it when the button is held and only reset the bullet when the values match. Man I miss bools. LOL