A83: sprite problems


[Prev][Next][Index][Thread]

A83: sprite problems




First I want to say thank you to everyone who has helped me on this list so 
far.

I am now trying to write my first game in ASM for the ti-83+ using movax's 
XOR sprite routines.

Now I am having a bit of a problem with my game loop section.
The game loop is currently as follows:

; GAME LOOP BEGIN
startgame:
B_CALL clrlcdfull

ld d,47 ;initial ship x
ld e,50 ; initial ship y
ld bc,sprship ;ship sprite

ld a,d ;move d to a for drawing
push de ;push x y coordinates

CALL SPRXOR
B_CALL grbufcpy

; GAME LOOP INPUT
gameinput:

;get input
ld a,0FFh ;reset
out (1),a
ld a,0FEh
out (1),a
in a,(1) ;input arrow keys

cp 253 ;left
jr z,shipleft

cp 251 ;right
jr z,shipright

cp 254 ;up
jr z,shipup

cp 247 ;down
jr z,shipdown

ld a,0FFh ;input clear key
out (1),a
ld a,0FDh
out(1),a
in a,(1)

cp 191 ;clear
jp z,finish

; GAME LOOP LOGIC
gamelogic:
jp gameinput

As far as I can see there are no problems with this code, but I am including 
it for background.  Notice I pushed the de register at the beginning.  This 
is to save the ship's x,y coordinates during the input section.  If the 
input section decides an arrow key has been pressed, the code for that key 
will pop de, erase the ship, modify the x,y coordinates and redraw the ship. 
  After that, it pushes de back and continues the game loop.  Below is the 
code for the left key,  I am only including it because the others are almost 
identical.

shipleft:
pop de;
ld a,d
ld bc,sprship
push de

CALL SPRXOR
B_CALL grbufcpy

pop de
ld a,d
dec a;
ld d,a
push de

CALL SPRXOR
B_CALL grbufcpy

jp gamelogic

I know I went a bit overboard with the pushes/pops but I did that to try to 
figure out what was going wrong.  When I move left/right in the game, the 
sip will move, but it leaves a trail of jibberish pixels behind it.  I have 
looked at my code over and over, and don't see why this is happening.  Do I 
need to clear the screen each loop iteration? If so, how much of a 
performance decrease will this be?  Also, when I press the clear key to 
quit, the screen goes blank and the run indicator comes on, and the calc 
just sits there.  I have to reset in order to get back to TI-OS.  Does 
anybody know how to fix either of these problems?

Thanks,

Andrew Friedley
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at 
http://profiles.msn.com.




Follow-Ups: