File: WALK.C | Size: 825 bytes | Download file | Back to directory listing | BWPOW's homepage
#include <allegro.h>
#include "main.h"
 
void trajectory(char x1,char y1,char x2,char y2)
{
  char x,y,ox,oy;
  int c=0;
 
  x=x1;y=y1;
  while((x!=x2)||(y!=y2))
  {
    ox=x;oy=y; // zachovanie starej pozicie
    if(x2<x) x-=1; // posuvanie
    if(x2>x) x+=1;
    if(y2<y) y-=1;
    if(y2>y) y+=1;
 
    if(pole[x][y]==0) // ked sa neda pohnut na policko
      if(pole[x][oy]!=0) y=oy; // skus ist spet o y
    if(pole[x][y]==0)
      if(pole[ox][y]!=0) x=ox; // alebo o x
 
    if(pole[x][y]==0){x=ox;y=oy;} // ak nic nepomaha tak zastan
 
    traj_xy[c][0]=x-ox; // zapisanie do trajektorie x
    traj_xy[c][1]=y-oy; // zapisanie do trajektorie y
 
    if(traj_xy[c][0]==0&&traj_xy[c][1]==0) break; // stoji na mieste?
    c++; // dalsi krok
    if(c>198) break; // out of trajectory
  }
  traj_xy[c][0]=0;
  traj_xy[c][1]=0;
}