Ball Mover File Source Code


// C Source File
// Created 1/10/2001; 04:10:31 PM

#define RETURN_VALUE          // Return Pushed Expression

#define OPTIMIZE_ROM_CALLS    // Use ROM Call Optimization

#define SAVE_SCREEN           // Save/Restore LCD Contents

#include <tigcclib.h>         // Include All Header Files

#define SPRITE_HEIGHT   8

short _ti89;                  // Produce .89Z File

static unsigned char sprite1[] =
{0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C};

void intro(void) {
 clrscr();
 DrawStr(1,1,"Press ESC to exit",A_NORMAL);
 DrawStr(1,9,"Hold Buttons Up, Down,",A_NORMAL);
 DrawStr(1,17,"Left, and Right for",A_NORMAL);
 DrawStr(1,25,"movement.",A_NORMAL);
 DrawStr(1,60,"Press Enter",A_NORMAL);
 ngetchx();
}

inline void draw(int x, int y) {
 Sprite8(x, y, SPRITE_HEIGHT, sprite1, LCD_MEM, SPRT_XOR);
}

inline void erase(int x, int y) {
 draw(x,y);
}

void moveUp(int *y) {
 *y-=7;

 if (*y < 1) {
  *y=92;
 }

 if (*y > 92) {
  *y=1;
 }
}

void moveDown(int *y) {
 *y+=7;

 if (*y < 1) {
  *y=92;
 }

 if (*y > 92) {
  *y=1;
 }
}

void moveLeft(int *x) {
 *x-=7;

 if (*x < 1) {
  *x=152;
 }

 if (*x > 152) {
  *x=1;
 }
}

void moveRight(int *x) {
 *x+=7;

 if (*x < 1) {
  *x=152;
 }

 if (*x > 152) {
  *x=1;
 }
}

// Main Function
void _main(void)
{
 int x=1,y=1,key;

 intro();

 clrscr();
 draw(x,y);

 while ((key = ngetchx()) != KEY_ESC) {
  erase(x,y);

  if (key == KEY_UP) {
   moveUp(&y);
  } else if (key == KEY_DOWN) {
   moveDown(&y);
  } else if (key == KEY_LEFT) {
   moveLeft(&x);
  } else if (key == KEY_RIGHT) {
   moveRight(&x);
  } else if (key == KEY_UPRIGHT) {
   moveUp(&y);
   moveRight(&x);
  } else if (key == KEY_DOWNLEFT) {
   moveDown(&y);
   moveLeft(&x);
  }

  draw(x,y);
 }

 push_quantum(0xE9);
}

/* This Project possible by:
 David Ratliff: For his tutorials
 Xavier Vassor: For the almighty TIGCC environment
 Nick P.: I made it. */

Top