mirror of
https://github.com/blondie7575/GSCats.git
synced 2025-01-10 10:29:25 +00:00
Angle now controllable
FIxed a bug in intToString
This commit is contained in:
parent
252abc2a55
commit
c3c88a79ea
BIN
gscats.2mg
BIN
gscats.2mg
Binary file not shown.
56
gscats.s
56
gscats.s
@ -40,32 +40,15 @@ mainGameLoop:
|
||||
|
||||
jsr syncVBL
|
||||
|
||||
; lda scrollV
|
||||
; bmi negV
|
||||
|
||||
; clc
|
||||
; lda mapScrollPos
|
||||
; adc scrollV
|
||||
; cmp #COMPILEDTERRAINROW-80
|
||||
; beq reverseScroll
|
||||
; sta mapScrollPos
|
||||
bra render
|
||||
|
||||
negV:
|
||||
clc
|
||||
lda mapScrollPos
|
||||
adc scrollV
|
||||
beq reverseScroll
|
||||
sta mapScrollPos
|
||||
|
||||
render:
|
||||
tay
|
||||
jsr renderTerrain
|
||||
jsr kbdScan
|
||||
|
||||
lda mapScrollRequested
|
||||
bpl scrollMap
|
||||
|
||||
lda angleDeltaRequested
|
||||
bne changeAngle
|
||||
|
||||
lda #gameobjectData
|
||||
sta PARAML0
|
||||
jsr renderGameobject
|
||||
@ -82,7 +65,6 @@ scrollMap:
|
||||
|
||||
sta mapScrollPos
|
||||
asl
|
||||
asl
|
||||
sta leftScreenEdge
|
||||
|
||||
jsr clipTerrain
|
||||
@ -90,6 +72,17 @@ scrollMap:
|
||||
sta mapScrollRequested
|
||||
jmp mainGameLoop
|
||||
|
||||
changeAngle:
|
||||
ldy #0
|
||||
tax
|
||||
jsr playerDeltaAngle
|
||||
|
||||
ldy #0
|
||||
jsr renderPlayerHeader
|
||||
|
||||
stz angleDeltaRequested
|
||||
jmp mainGameLoop
|
||||
|
||||
reverseScroll:
|
||||
lda scrollV
|
||||
eor #$ffff
|
||||
@ -117,12 +110,14 @@ kbdScanLoop:
|
||||
|
||||
cmp #(8 + $80)
|
||||
beq kbdScanLeftArrow
|
||||
|
||||
cmp #(21 + $80)
|
||||
beq kbdScanRightArrow
|
||||
|
||||
cmp #(32 + $80)
|
||||
cmp #(' ' + $80)
|
||||
beq kbdScanSpace
|
||||
cmp #('a' + $80)
|
||||
beq kbdScanA
|
||||
cmp #('z' + $80)
|
||||
beq kbdScanZ
|
||||
|
||||
kbdScanDone:
|
||||
NATIVE
|
||||
@ -153,6 +148,17 @@ kbdScanSpace:
|
||||
sta quitRequested
|
||||
rts
|
||||
|
||||
kbdScanA:
|
||||
NATIVE
|
||||
lda #1
|
||||
sta angleDeltaRequested
|
||||
rts
|
||||
|
||||
kbdScanZ:
|
||||
NATIVE
|
||||
lda #-1
|
||||
sta angleDeltaRequested
|
||||
rts
|
||||
|
||||
|
||||
|
||||
@ -162,6 +168,8 @@ quitRequested:
|
||||
.word $0000
|
||||
mapScrollRequested:
|
||||
.word $FFFF
|
||||
angleDeltaRequested:
|
||||
.word $0000
|
||||
|
||||
|
||||
; Position of map viewing window. Can be visualized in two ways:
|
||||
|
53
player.s
53
player.s
@ -14,6 +14,48 @@ playerData:
|
||||
.word 45 ; Angle in degrees from +X
|
||||
.word 50 ; Power
|
||||
|
||||
PD_ANGLE = 4 ; Byte offsets into player data structure
|
||||
PD_POS = 6
|
||||
|
||||
.macro PLAYERPTR_Y
|
||||
tya ; Pointer to player structure from index
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
tay
|
||||
.endmacro
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; playerDeltaAngle
|
||||
;
|
||||
; Y = Player index
|
||||
; X = Delta
|
||||
;
|
||||
playerDeltaAngle:
|
||||
SAVE_AXY
|
||||
PLAYERPTR_Y
|
||||
|
||||
txa
|
||||
clc
|
||||
adc playerData+PD_ANGLE,y
|
||||
bmi playerDeltaAngleClampLow
|
||||
cmp #180
|
||||
bpl playerDeltaAngleClampHigh
|
||||
|
||||
playerDeltaAngleStore:
|
||||
sta playerData+PD_ANGLE,y
|
||||
RESTORE_AXY
|
||||
rts
|
||||
|
||||
playerDeltaAngleClampLow:
|
||||
lda #0
|
||||
bra playerDeltaAngleStore
|
||||
|
||||
playerDeltaAngleClampHigh:
|
||||
lda #180
|
||||
bra playerDeltaAngleStore
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; renderPlayerHeader
|
||||
@ -22,18 +64,13 @@ playerData:
|
||||
;
|
||||
renderPlayerHeader:
|
||||
SAVE_AXY
|
||||
|
||||
tya ; Index to player structure
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
tay
|
||||
PLAYERPTR_Y
|
||||
|
||||
ldx #0
|
||||
lda #angleStr
|
||||
jsr DrawString
|
||||
|
||||
lda playerData+4,y
|
||||
lda playerData+PD_ANGLE,y
|
||||
ldx #24
|
||||
jsr drawNumber
|
||||
|
||||
@ -41,4 +78,4 @@ renderPlayerHeader:
|
||||
rts
|
||||
|
||||
angleStr:
|
||||
pstring "ANGLE:"
|
||||
pstring "ANGLE: "
|
||||
|
Loading…
x
Reference in New Issue
Block a user