You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

69 lines
892 B

INCLUDE "hardware.inc"
INCLUDE "input.inc"
Section "Player Data", WRAM0
playerWorldX: dw
playerWorldY: dw
; Sprite data
playerSprite:
playerScreenY: db
playerScreenX: db
playerTileIndex: db
playerFlags: db
Section "Player Code", ROM0
spriteData:
INCBIN "png/player.2bpp"
Player_Init::
ld a, 8
ld hl, _OAM + 1
ld [hl], a
ld bc, _VRAM8000
ld hl, spriteData
ld d, 16
call memcpy
ld hl, _OAM
ld a, 144-8
ld [hli], a
ld a, 8
ld [hli], a
xor a
ld [hli], a
ld [hli], a
ld bc, _OAMRAM
ld hl, _OAM
ld d, 4
call memcpy
ret
Player_Update::
ld hl, keys
ld b, [hl]
; check for move right
ld a, b
and BTN_RIGHT
jr z, .left
ld hl, _OAM + 1
inc [hl]
.left:
; check for move left
ld a, b
and BTN_LEFT
jr z, .done
ld hl, _OAM + 1
dec [hl]
.done:
ret