From: cbroo AT iafrica DOT com (Chris Brooker) Newsgroups: comp.os.msdos.djgpp Subject: Tank Movement Date: Fri, 02 Oct 1998 07:14:39 GMT Organization: UUNET Internet Africa Lines: 46 Message-ID: <36147a32.10039817@ct-news.iafrica.com> NNTP-Posting-Host: 196-31-19-231.iafrica.com X-Newsreader: Forte Free Agent 1.11/32.235 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Hi, Sorry if my code sucks, I a mquite new to C. I am busy writing a Real Time Strategy with DJGPP and allegro and have hit a problem, here it is: I have a selected tank and would like to move it somewhere else by clicking there, i do this and it either: moves there properly, moves in the opposite direction or just sits and vibrates. Can someone please tell me what is wrong. Here are the functions: double dir_degrees(int x1, int y1, int y2, int x2) { int v1, v2; double dir; v1 = y1 - y2; v2 = x1 - x2; if (v2 == 0) v2++; //Stops division by zero errors dir = 57 * atan(v1 / v2); return dir; } void move_tank() { double dir; int angle; dir = dir_degrees(tank.x, tank.y, tank.targetx, tank.targety); if (dir <= 90) { tank.x += 5; angle = (((dir - 90) / 180) * 5); //On a scale of -5 to 5 tank.y += angle; } if (dir > 90) { tank.x -= 5; angle = (((dir - 270) / 180) * 5); tank.y += angle; } } Thanks in advance. Marc