From 4e4657d14ff99157a42615d4733c1216e453dffb Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sun, 17 Apr 2016 17:47:11 +1000 Subject: [PATCH] working on pig movement --- 028.game2/Makefile | 2 +- 028.game2/constants.i | 5 +++++ 028.game2/game1.s | 49 +++++++++++++------------------------------ 028.game2/pig.s | 49 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 36 deletions(-) create mode 100644 028.game2/pig.s diff --git a/028.game2/Makefile b/028.game2/Makefile index 4b8bf91..a7d24e3 100644 --- a/028.game2/Makefile +++ b/028.game2/Makefile @@ -9,7 +9,7 @@ BASE_ADDRESS=4000 NUM_COLORS=8 BOOTBLOCK_ASM=alpine_bootblock.s -OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o +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 IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) diff --git a/028.game2/constants.i b/028.game2/constants.i index b1a631f..59997a8 100644 --- a/028.game2/constants.i +++ b/028.game2/constants.i @@ -1,3 +1,8 @@ + +PIG_JUMP_PIXELS equ 8 +PIG_PAUSE_PIXELS equ 8 +PIG_MOVE_PIXELS equ 2 + FOREGROUND_DELAY_BIT equ 0 FOREGROUND_SCROLL_SHIFT_CONVERT equ 4 diff --git a/028.game2/game1.s b/028.game2/game1.s index 573d154..82bbc17 100644 --- a/028.game2/game1.s +++ b/028.game2/game1.s @@ -12,6 +12,14 @@ xdef joystick xdef sprite xdef deadSprite + xdef spriteX + xdef spriteY + xdef spriteYEnd + xdef spriteR + xdef spriteL + xdef spriteU + xdef spriteD + xdef moving byteMap: dc.l Entry @@ -109,7 +117,6 @@ ProcessJoystick: ;; 812 ;; 7 3 ;; 654 - ;; move.w #1,moving jsr ReadJoystick cmp.w #0,spriteR bne .skip @@ -122,22 +129,22 @@ ProcessJoystick: cmp.b #3,joystickpos bne .notRight - move.w #8,spriteR + move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteR move.l #spritePigRight,currentSprite .notRight: cmp.b #1,joystickpos bne .notUp - move.w #8,spriteU + move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteU move.l #spritePigUp,currentSprite .notUp: cmp.b #5,joystickpos bne .notDown - move.w #8,spriteD + move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteD move.l #spritePigDown,currentSprite .notDown: cmp.b #7,joystickpos bne .notLeft - move.w #8,spriteL + move.w #PIG_JUMP_PIXELS+PIG_PAUSE_PIXELS,spriteL move.l #spritePigLeft,currentSprite .notLeft: .skip: @@ -149,36 +156,8 @@ ProcessJoystick: Update: ;; right - cmp.w #0,spriteR - beq .notRight - add.w #2,spriteX - sub.w #1,spriteR -.notRight: - ;; up - cmp.w #0,spriteU - beq .notUp - sub.w #2,spriteY - sub.w #2,spriteYEnd - sub.w #1,spriteU -.notUp: - ;; down - cmp.w #0,spriteD - beq .notDown - add.w #2,spriteY - add.w #2,spriteYEnd - sub.w #1,spriteD -.notDown: - ;; left - cmp.w #0,spriteL - beq .notLeft - sub.w #2,spriteX - sub.w #1,spriteL -.notLeft: - - cmp.w #$cf,spriteX - blt .noScroll - move.w #1,moving -.noScroll: + jsr UpdatePig + .backgroundUpdates: add.l #BACKGROUND_SCROLL_PIXELS,backgroundScrollX btst #FOREGROUND_DELAY_BIT,d6 diff --git a/028.game2/pig.s b/028.game2/pig.s new file mode 100644 index 0000000..c79426a --- /dev/null +++ b/028.game2/pig.s @@ -0,0 +1,49 @@ + include "includes.i" + + xdef UpdatePig + +UpdatePig: + ;; right + cmp.w #PIG_PAUSE_PIXELS,spriteR + ble .skipRight + add.w #PIG_MOVE_PIXELS,spriteX +.skipRight + cmp.w #0,spriteR + beq .notRight + sub.w #1,spriteR +.notRight: + ;; up + cmp.w #PIG_PAUSE_PIXELS,spriteU + ble .skipUp + sub.w #PIG_MOVE_PIXELS,spriteY + sub.w #PIG_MOVE_PIXELS,spriteYEnd +.skipUp: + cmp.w #0,spriteU + beq .notUp + sub.w #1,spriteU +.notUp: + ;; down + cmp.w #PIG_PAUSE_PIXELS,spriteD + ble .skipDown + add.w #PIG_MOVE_PIXELS,spriteY + add.w #PIG_MOVE_PIXELS,spriteYEnd +.skipDown: + cmp.w #0,spriteD + beq .notDown + sub.w #1,spriteD +.notDown: + ;; left + + cmp.w #PIG_PAUSE_PIXELS,spriteL + ble .skipLeft + sub.w #PIG_MOVE_PIXELS,spriteX +.skipLeft + cmp.w #0,spriteL + beq .notLeft + sub.w #1,spriteL +.notLeft: + cmp.w #$cf,spriteX + blt .noScroll + move.w #1,moving +.noScroll: + rts \ No newline at end of file