mirror of
https://github.com/jeremysrand/BuGS.git
synced 2024-12-27 14:30:46 +00:00
Clamp mouse movement to a max of 8 pixels per frame. Add some code which will become the "refresh the mushrooms after death" implementation.
This commit is contained in:
parent
34d16c9944
commit
7264cf907d
1
BUGS.md
1
BUGS.md
@ -7,6 +7,7 @@ This is a list of the software bugs (as opposed to the bugs in the game that you
|
||||
* Sometimes centipede segments seem to be stacked one on top of another. You think there is just one left but you shoot it and there is one underneath it. This should not happen.
|
||||
* A spider moving left to right went off screen and left garbage on the RHS as it exited. I have only seen this once. I think it coincided with the player dying.
|
||||
* Sometimes when the player dies, the "you can shoot" indicator is left behind as garbage on-screen.
|
||||
* If you die holding the mouse button down, your next game will start shooting without pressing the mouse button.
|
||||
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
<key>Binary.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>BuGS.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
@ -17,7 +17,7 @@
|
||||
<key>DiskImage.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
|
@ -17,6 +17,11 @@ gameMushroom start
|
||||
|
||||
STARTING_NUM_MUSHROOMS equ 30
|
||||
|
||||
|
||||
resetMushrooms entry
|
||||
; TODO - Write this code...
|
||||
clc
|
||||
rtl
|
||||
|
||||
addRandomMushrooms entry
|
||||
stz numInfieldMushrooms
|
||||
|
@ -114,9 +114,7 @@ updatePlayer_nextExplosion anop
|
||||
sta playerExplosionOffset
|
||||
bra updatePlayer_drawExplosion
|
||||
updatePlayer_doneExplosion anop
|
||||
lda #PLAYER_RESTART_LEVEL_FRAME_COUNT
|
||||
sta playerFrameCount
|
||||
lda #PLAYER_STATE_NONE
|
||||
lda #PLAYER_STATE_MUSHROOMS
|
||||
sta playerState
|
||||
rtl
|
||||
|
||||
@ -160,6 +158,20 @@ jumpInst anop
|
||||
nop
|
||||
|
||||
updatePlayer_notExploding anop
|
||||
cmp #PLAYER_STATE_MUSHROOMS
|
||||
bne updatePlayer_notMushrooms
|
||||
jsl resetMushrooms
|
||||
bcc updatePlayer_doneMushrooms
|
||||
rtl
|
||||
|
||||
updatePlayer_doneMushrooms anop
|
||||
lda #PLAYER_RESTART_LEVEL_FRAME_COUNT
|
||||
sta playerFrameCount
|
||||
lda #PLAYER_STATE_NONE
|
||||
sta playerState
|
||||
rtl
|
||||
|
||||
updatePlayer_notMushrooms anop
|
||||
ldx #0
|
||||
ldy #0
|
||||
; This code for reading the mouse data is based on some code which John Brooks helpfully provided, although I did things
|
||||
@ -193,6 +205,12 @@ updatePlayer_handleDeltas anop
|
||||
bit #$40
|
||||
bne updatePlayer_negX
|
||||
and #$3f
|
||||
inc a
|
||||
lsr a
|
||||
cmp #9
|
||||
blt updatePlayer_posXNoClamp
|
||||
lda #8
|
||||
updatePlayer_posXNoClamp anop
|
||||
clc
|
||||
adc mouseX
|
||||
cmp #MOUSE_MAX_X
|
||||
@ -201,6 +219,13 @@ updatePlayer_handleDeltas anop
|
||||
bra updatePlayer_doneX
|
||||
updatePlayer_negX anop
|
||||
ora #$ffc0
|
||||
dec a
|
||||
lsr a
|
||||
ora #$8000
|
||||
cmp #$fff8
|
||||
bge updatePlayer_negXNoClamp
|
||||
lda #$fff8
|
||||
updatePlayer_negXNoClamp anop
|
||||
clc
|
||||
adc mouseX
|
||||
bpl updatePlayer_doneX
|
||||
@ -213,6 +238,12 @@ updatePlayer_doneX anop
|
||||
bit #$40
|
||||
bne updatePlayer_negY
|
||||
and #$3f
|
||||
inc a
|
||||
lsr a
|
||||
cmp #9
|
||||
blt updatePlayer_posYNoClamp
|
||||
lda #8
|
||||
updatePlayer_posYNoClamp anop
|
||||
clc
|
||||
adc mouseY
|
||||
cmp #MOUSE_MAX_Y
|
||||
@ -221,6 +252,13 @@ updatePlayer_doneX anop
|
||||
bra updatePlayer_doneY
|
||||
updatePlayer_negY anop
|
||||
ora #$ffc0
|
||||
dec a
|
||||
lsr a
|
||||
ora #$8000
|
||||
cmp #$fff8
|
||||
bge updatePlayer_negYNoClamp
|
||||
lda #$fff8
|
||||
updatePlayer_negYNoClamp anop
|
||||
clc
|
||||
adc mouseY
|
||||
bpl updatePlayer_doneY
|
||||
|
@ -21,7 +21,8 @@ SEGMENT_DIR_RIGHT equ 1
|
||||
|
||||
PLAYER_STATE_NONE equ 0
|
||||
PLAYER_STATE_EXPLODING equ 1
|
||||
PLAYER_STATE_ONSCREEN equ 2
|
||||
PLAYER_STATE_MUSHROOMS equ 2
|
||||
PLAYER_STATE_ONSCREEN equ 3
|
||||
|
||||
; The code uses segmentPixelOffset and the segment speed to figure out whether to draw the shifted sprite
|
||||
; or the regular sprite. By AND-ing with the speed, if the result is 0, then we want a non-shifted sprite.
|
||||
|
@ -71,6 +71,11 @@ levelStart_done anop
|
||||
updateLevel entry
|
||||
lda gameRunning
|
||||
bne updateLevel_done
|
||||
lda playerState
|
||||
cmp #PLAYER_STATE_EXPLODING
|
||||
beq updateLevel_done
|
||||
cmp #PLAYER_STATE_MUSHROOMS
|
||||
beq updateLevel_done
|
||||
lda nextLevelFrameCount
|
||||
beq updateLevel_checkSegments
|
||||
dec a
|
||||
@ -79,6 +84,7 @@ updateLevel entry
|
||||
jsl levelNext
|
||||
jmp levelStart
|
||||
updateLevel_checkSegments anop
|
||||
bne updateLevel_done
|
||||
lda numSegments
|
||||
bne updateLevel_done
|
||||
lda #NEXT_LEVEL_FRAME_COUNT
|
||||
|
@ -14,8 +14,8 @@ g_limit_speed = 3
|
||||
bram1[00] = 00 00 00 01 00 00 0d 06 02 01 01 00 01 00 00 00
|
||||
bram1[10] = 00 00 07 06 02 01 01 00 00 00 0f 06 06 00 05 06
|
||||
bram1[20] = 01 00 00 00 00 00 00 01 00 00 00 00 03 02 02 02
|
||||
bram1[30] = 00 00 00 00 00 00 00 00 08 00 01 02 03 04 05 06
|
||||
bram1[40] = 07 0a 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
|
||||
bram1[30] = 00 00 00 01 00 00 00 00 00 00 01 02 03 04 05 06
|
||||
bram1[40] = 07 00 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
|
||||
bram1[50] = 0e 0f ff ff ff ff ff ff ff 00 ff ff ff ff ff 81
|
||||
bram1[60] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[70] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
@ -26,7 +26,7 @@ bram1[b0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[c0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[d0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[e0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[f0] = ff ff ff ff ff ff ff ff ff ff ff ff 52 06 f8 ac
|
||||
bram1[f0] = ff ff ff ff ff ff ff ff ff ff ff ff 41 f8 eb 52
|
||||
|
||||
bram3[00] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[10] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
|
@ -27,7 +27,7 @@ sed -i "" "s:^s7d1 *=.*$:s7d1 = $DISKIMAGE:" config.txt
|
||||
|
||||
# This magic ensure that clicking stop in Xcode results in the emulator terminating.
|
||||
|
||||
$EMULATORPATH -fullscreen &
|
||||
$EMULATORPATH -fullscreen -mem 1572864 &
|
||||
PID=$!
|
||||
|
||||
trap 'kill $PID' SIGTERM SIGINT SIGHUP EXIT
|
||||
|
Loading…
Reference in New Issue
Block a user