mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-13 15:32:12 +00:00
new scoring system
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
Reference in New Issue
Block a user