From 5b0358ada0a4e7d3664f9a3601d99b08f5b0b9ce Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sun, 17 Apr 2016 18:34:46 +1000 Subject: [PATCH] jumping pig --- 028.game2/Makefile | 15 ++++++++++++++- 028.game2/constants.i | 2 +- 028.game2/pig.s | 43 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/028.game2/Makefile b/028.game2/Makefile index a7d24e3..82fc201 100644 --- a/028.game2/Makefile +++ b/028.game2/Makefile @@ -11,7 +11,7 @@ NUM_COLORS=8 BOOTBLOCK_ASM=alpine_bootblock.s OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o out/pig.o -IMAGES=foreground.png background.png panel.png sprite_pig_up.png sprite_pig_down.png sprite_pig_left.png sprite_pig_right.png +IMAGES=foreground.png background.png panel.png sprite_pig_up.png sprite_pig_left_jump.png sprite_pig_up_jump.png sprite_pig_down_jump.png sprite_pig_right_jump.png sprite_pig_down.png sprite_pig_left.png sprite_pig_right.png IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) VASM_EXTRA_ARGS=-DNUM_COLORS=$(NUM_COLORS) @@ -53,6 +53,19 @@ out/sprite_pig_right.bin: assets/sprite_pig_right.png $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_right --palette-offset 16 --use-palette=assets/pig.pal +out/sprite_pig_right_jump.bin: assets/sprite_pig_right_jump.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_right_jump --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_down_jump.bin: assets/sprite_pig_down_jump.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_down_jump --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_up_jump.bin: assets/sprite_pig_up_jump.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_up_jump --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_left_jump.bin: assets/sprite_pig_left_jump.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_left_jump --palette-offset 16 --use-palette=assets/pig.pal + + out/foreground-map.s: foreground.tmx ../tools/mapgen/out/mapgen --depth=3 --input=foreground.tmx mv foreground-map.s out diff --git a/028.game2/constants.i b/028.game2/constants.i index 59997a8..7dc04d1 100644 --- a/028.game2/constants.i +++ b/028.game2/constants.i @@ -1,6 +1,6 @@ PIG_JUMP_PIXELS equ 8 -PIG_PAUSE_PIXELS equ 8 +PIG_PAUSE_PIXELS equ 16 PIG_MOVE_PIXELS equ 2 FOREGROUND_DELAY_BIT equ 0 diff --git a/028.game2/pig.s b/028.game2/pig.s index e80acb5..c54b95c 100644 --- a/028.game2/pig.s +++ b/028.game2/pig.s @@ -15,40 +15,55 @@ UpdatePig: cmp.w #PIG_PAUSE_PIXELS,spriteR ble .skipRight add.w #PIG_MOVE_PIXELS,spriteX + move.l #spritePigRightJump,currentSprite .skipRight cmp.w #0,spriteR beq .notRight sub.w #1,spriteR + cmp.w #PIG_PAUSE_PIXELS,spriteR + bge .notRight + move.l #spritePigRight,currentSprite .notRight: ;; up cmp.w #PIG_PAUSE_PIXELS,spriteU ble .skipUp sub.w #PIG_MOVE_PIXELS,spriteY sub.w #PIG_MOVE_PIXELS,spriteYEnd + move.l #spritePigUpJump,currentSprite .skipUp: cmp.w #0,spriteU beq .notUp sub.w #1,spriteU + cmp.w #PIG_PAUSE_PIXELS,spriteU + bge .notUp + move.l #spritePigUp,currentSprite .notUp: ;; down cmp.w #PIG_PAUSE_PIXELS,spriteD ble .skipDown add.w #PIG_MOVE_PIXELS,spriteY add.w #PIG_MOVE_PIXELS,spriteYEnd + move.l #spritePigDownJump,currentSprite .skipDown: cmp.w #0,spriteD beq .notDown sub.w #1,spriteD + cmp.w #PIG_PAUSE_PIXELS,spriteD + bge .notDown + move.l #spritePigDown,currentSprite .notDown: ;; left - cmp.w #PIG_PAUSE_PIXELS,spriteL ble .skipLeft sub.w #PIG_MOVE_PIXELS,spriteX + move.l #spritePigLeftJump,currentSprite .skipLeft cmp.w #0,spriteL beq .notLeft sub.w #1,spriteL + cmp.w #PIG_PAUSE_PIXELS,spriteL + bge .notLeft + move.l #spritePigLeft,currentSprite .notLeft: cmp.w #$cf,spriteX blt .noScroll @@ -75,7 +90,7 @@ ProcessJoystick: cmp.b #3,joystickpos bne .notRight move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteR - move.l #spritePigRight,currentSprite + move.l #spritePigRight,currentSprite .notRight: cmp.b #1,joystickpos bne .notUp @@ -126,22 +141,44 @@ spritePigUp: dc.w 0,0 incbin "out/sprite_pig_up.bin" dc.l 0 +spritePigUpJump: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_up_jump.bin" + dc.l 0 spritePigDown: dc.w 0,0 dc.w 0,0 incbin "out/sprite_pig_down.bin" dc.l 0 +spritePigDownJump: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_down_jump.bin" + dc.l 0 spritePigLeft: dc.w 0,0 dc.w 0,0 incbin "out/sprite_pig_left.bin" dc.l 0 +spritePigLeftJump: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_left_jump.bin" + dc.l 0 spritePigRight: dc.w 0,0 dc.w 0,0 incbin "out/sprite_pig_right.bin" - dc.l 0 + dc.l 0 +spritePigRightJump: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_right_jump.bin" + dc.l 0 +currentSpriteOffset: + dc.l 0 currentSprite: dc.l spritePigRight deadSprite: