new scoring system

This commit is contained in:
alpine9000
2016-05-21 14:47:13 +10:00
parent c4d31ae990
commit dc6b302cb7
7 changed files with 110 additions and 28 deletions
+2
View File
@@ -84,6 +84,8 @@ BEE_COLLIDE_SIZE equ 5
BIGBANG_ANIM_DELAY equ 4
BIGBANG_POST_DELAY equ 15
SCORE_COINS_ADDITION equ 100
SCREEN_WIDTH equ 320
SCREEN_HEIGHT equ 256
SCREEN_WIDTH_BYTES equ (SCREEN_WIDTH/8)
+49
View File
@@ -2,13 +2,28 @@
xdef ResetCounter
xdef IncrementCounter
xdef DecrementCounter
xdef RenderNumber4
RenderCounter:
;; d0.w x position
;; a1.l text
lea panel,a0
move.w #20,d1
jsr DrawText8
rts
RenderNumber4:
;; d0.l number
;; d1.w x position
move.l d1,d3
move.l #4,d2
bsr ToAscii
move.l a0,a1
lea panel,a0
move.w #20,d1
move.w d3,d0
jsr DrawText8
rts
ResetCounter:
move.l #"0000",(a0)
@@ -57,3 +72,37 @@ DecrementCounter:
move.b d0,(a0)
.startOfText:
rts
ToAscii:
;; d0.l number
;; d2.l numb chars
;; a0.l buffer
;; movem.l d0-d2/a1,-(a7)
lea staticBuffer,a0
move.l a0,a1
add.l d2,a0
moveq #10,d2
.loop:
divu.w d2,d0
swap d0
addi.b #"0",d0
move.b d0,-(a0)
move.b #0,d0
swap d0
tst.w d0
bne.s .loop
.loop2:
cmp.l a0,a1
beq .done
move.b #'0',-(a0)
bra .loop2
.done:
;; movem.l (a7)+,d0-d2/a1
rts
staticBuffer:
dc.b "0000"
dc.b 0
+16 -13
View File
@@ -88,7 +88,9 @@ Reset:
lea player1Text,a1
move.w #192,d0
jsr RenderCounter
move.l playerXColumnLastSafe,playerXColumn
jsr RenderPlayerScore
move.l startForegroundMapPtr,foregroundMapPtr
move.l startPathwayMapPtr,pathwayMapPtr
@@ -159,7 +161,6 @@ FadeInLoop:
bne .c1
jsr ResetPlayer
jsr EnableItemSprites
move.l #0,verticalBlankCount
move.l #1,frameCount
move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels
@@ -183,8 +184,10 @@ GameLoop:
lea skippedFramesCounterText,a0
jsr IncrementCounter
lea skippedFramesCounterText,a1
if 0
move.w #110,d0
jsr RenderCounter
jsr RenderCounter
endif
.noSkippedFrames:
add.l #1,frameCount
jsr WaitVerticalBlank
@@ -805,19 +808,19 @@ InstallFlagGreyPalette:
;; frames after jump before player miss is checked
;; level complete name
;; palette
Level 1,"STAY ON THE PATHWAYS!",100,2*2,12,10,"LEVEL 1",A
Level 2,"COLLECT COINS!",100,2*2,12,10,"LEVEL 2",A
Level 3,"ARROWS ARE YOUR FRIEND!",100,2*2,12,10,"LEVEL 3",A
Level 4,"WATCH OUT FOR BEES!",100,2*2,12,10,"LEVEL 4",A
Level 5,"REMEMBER THE PATHWAYS BEFORE THEY FADE!",75,2*2,12,10,"LEVEL 5",A
Level 1,"STAY ON THE PATHWAYS!",100,2*2,12,10,"LEVEL 1",A,21
Level 2,"COLLECT COINS!",100,2*2,12,10,"LEVEL 2",A,21
Level 3,"ARROWS ARE YOUR FRIEND!",100,2*2,12,10,"LEVEL 3",A,21
Level 4,"WATCH OUT FOR BEES!",100,2*2,12,10,"LEVEL 4",A,21
Level 5,"REMEMBER THE PATHWAYS BEFORE THEY FADE!",75,2*2,12,10,"LEVEL 5",A,21
Level 6,"LET'S TRY A LONGER LEVEL!",75,2*2,12,10,"PHEW!, LEVEL 6",B
Level 7,"HAVING FUN YET?",70,2*2,12,10,"LEVEL 7",B
Level 6,"LET'S TRY A LONGER LEVEL!",75,2*2,12,10,"PHEW!, LEVEL 6",B,98
Level 7,"HAVING FUN YET?",70,2*2,12,10,"LEVEL 7",B,98
Level 8,"GIDDY UP!",50,4*2,8,6,"GETTING FASTER!, LEVEL 8",C
Level 9,"LETS GO?",25,4*2,8,6,"LEVEL 9",C
Level 8,"GIDDY UP!",50,4*2,8,6,"GETTING FASTER!, LEVEL 8",C,98
Level 9,"LETS GO?",25,4*2,8,6,"LEVEL 9",C,98
Level 10,"WHAT? WHAT?!",50,4*2,8,6,"NICE! LEVEL 10",A
Level 10,"WHAT? WHAT?!",50,4*2,8,6,"NICE! LEVEL 10",A,98
;; Level 10,"WHAT? WHAT?!",15,4*2,8,6,"YOU'RE GOOD, LEVEL 10",C
;; Level 7,"LEVEL 3",50,4*2,8,6,"3",C
+14 -13
View File
@@ -1,5 +1,7 @@
include "includes.i"
xdef score
xdef SetupItemSpriteData
xdef ScrollItemSprites
xdef RenderItemSprite
@@ -11,7 +13,8 @@
xdef PrepareItemSpriteData
xdef VerticalScrollBees
xdef DetectBeeCollisions
xdef RenderScore
DetectBeeCollisions:
bsr DetectDownBeeCollisions
@@ -141,9 +144,8 @@ DetectItemCollisions:
bge .arrowCollision
.coinCollision:
bsr DeleteItemSprite
lea coinCounterText,a0
jsr IncrementCounter
bsr RenderCoinScore
add.l #SCORE_COINS_ADDITION,score
bsr RenderScore
PlaySound Chaching
rts
@@ -251,16 +253,16 @@ DetectUpBeeCollisions:
rts
RenderCoinScore:
lea coinCounterText,a1
move.w #31,d0
jsr RenderCounter
RenderScore:
move.l score,d0
move.w #31,d1
jsr RenderNumber4
rts
InitialiseItems:
move.l #"0000",coinCounterText
bsr RenderCoinScore
move.l #0,score
bsr RenderScore
ResetItems:
lea item1,a1
@@ -612,7 +614,6 @@ nextSpriteSlot:
dc.w 0
coinCounterText:
dc.b "0000"
dc.b 0
score:
dc.l 0
align 4
+2
View File
@@ -14,6 +14,8 @@ InstallLevel\1:
move.l #\4,pathwayFadeRate
move.w #\5,playerLevelPausePixels
move.w #\6,playerLevelMissPixels
move.l #\9,playerXColumnLastSafe,
move.l #\9,playerXColumn
rts
align 4
+6
View File
@@ -129,6 +129,8 @@ PlayerMoveRight: macro
move.w d1,spriteR
move.w #PLAYER_MOVE_RIGHT,spriteLastMove
PlaySound Jump
sub.l #1,playerXColumn
jsr UpdatePlayerScore
endm
PlayerMoveUp: macro
@@ -137,6 +139,7 @@ PlayerMoveUp: macro
move.w d1,spriteU
move.w #PLAYER_MOVE_UP,spriteLastMove
PlaySound Jump
jsr UpdatePlayerScore
endm
PlayerMoveDown: macro
@@ -145,6 +148,7 @@ PlayerMoveDown: macro
move.w d1,spriteD
move.w #PLAYER_MOVE_DOWN,spriteLastMove
PlaySound Jump
jsr UpdatePlayerScore
endm
PlayerMoveLeft: macro
@@ -163,4 +167,6 @@ PlayerMoveLeft: macro
move.w d1,spriteL
move.w #PLAYER_MOVE_LEFT,spriteLastMove
PlaySound Jump
add.l #1,playerXColumn
jsr UpdatePlayerScore
endm
+21 -2
View File
@@ -9,6 +9,7 @@
xdef HidePlayer
xdef SetupSpriteData
xdef ScrollSprites
xdef RenderPlayerScore
xdef deadSprite ; used in items
xdef UpdatePlayerFallingAnimation
xdef InstallPlayerColorPalette
@@ -18,7 +19,9 @@
xdef spriteLagX
xdef spriteY
xdef spriteX
xdef playerXColumn
xdef playerXColumnLastSafe
xdef playerLevelPausePixels
xdef playerLevelMissPixels
@@ -379,6 +382,7 @@ CheckPlayerMiss:
bra .dontClearPathway
.clearPathway:
move.w #2,pathwayClearPending
move.l playerXColumn,playerXColumnLastSafe
move.l #PLAYER_BOTTOM_Y,d0
@@ -554,6 +558,18 @@ SelectNextPlayerSprite:
.done:
bsr InstallPlayerColorPalette
rts
UpdatePlayerScore:
add.l #10,score
RenderPlayerScore:
jsr RenderScore
move.l playerXColumn,d0
move.w #110,d1
jsr RenderNumber4
rts
pigPlayerSpriteConfig:
dc.l InstallPigColorPalette
@@ -621,4 +637,7 @@ pathwayLastConfig:
dc.w PATHWAY_CONFIG_FREE
pathwayMissPending:
dc.w 0
playerXColumn:
dc.l 0
playerXColumnLastSafe:
dc.l 0