working on pig movement

This commit is contained in:
alpine9000
2016-04-17 17:47:11 +10:00
parent 5ddfd5bcdd
commit 4e4657d14f
4 changed files with 69 additions and 36 deletions
+1 -1
View File
@@ -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))
+5
View File
@@ -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
+13 -34
View File
@@ -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:
jsr UpdatePig
cmp.w #$cf,spriteX
blt .noScroll
move.w #1,moving
.noScroll:
.backgroundUpdates:
add.l #BACKGROUND_SCROLL_PIXELS,backgroundScrollX
btst #FOREGROUND_DELAY_BIT,d6
+49
View File
@@ -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