A89: Programming Problem
[Prev][Next][Index][Thread]
A89: Programming Problem
I wrote the program below just to see if I could get a ball to bounce
around the screen. Everything works except for when the ball hits the
left side of the screen: it looks like it hits 8 pixels too soon. Can
someone please tell me what I'm doing wrong? I think it has something
to do with the way Sprite16 processes the sprite, but I'm not sure.
Thanks in advance,
Nathaniel Gibson
ngibson@ptd.net
----------------------------CODE--------------------------
#define SAVE_SCREEN
#include <nostub.h>
#include <graph.h>
#include <system.h>
#include <sprites.h>
int _ti89;
int _main()
{
static unsigned int ball [] = {0x3c, 0x7e, 0xff, 0xff, 0xff,
0xff, 0x7e, 0x3c};
int key, x = 50, y = 50, xChange = 1, yChange = 1;
void *kbq = kbd_queue ();
long int j;
ClrScr ();
while (OSdequeue (&key, kbq)) {
if ((x == 0) || (x == 143)) xChange *= -1;
if ((y == 0) || (y == 91)) yChange *= -1;
x += xChange;
y += yChange;
Sprite16(x, y, 8, ball, LCD_MEM, SPRT_XOR);
for ( j = 0; j <= 50000; j++) ;
Sprite16(x, y, 8, ball, LCD_MEM, SPRT_XOR);
}
return 0;
}
Follow-Ups: