I am working on a game that’s similar to Missile Command (in fact, it was supposed to be Missile Command, but I got stuck in a loop that wouldn’t let me do anything else until the missile was done being drawn, and I’d have to re-do the whole game to fix that and I don’t have time. If anyone wants to help me with that instead, that’d be awesome :P). Essentially, you click and a line appears, and everything that runs into it blows up. I’m not exactly sure how to do the collision there, because you need to follow up the slope of the line and I find the slope by y2-y1/x2-x1. By the end, the whole slope is found, but I’m not sure how to have it actually know where the line is, as opposed to a box with the line in it.
Here’s my draw method:
public void draw(int _x3,int x, int y, Graphics g)
{
double x3=(double)_x3;
MissileCommand Commander = new MissileCommand();
Graphics2D g2D=(Graphics2D)g;
if(x>=x3)
{
m=((double)y/((double)x-x3)); //I have to parse it to a double for a true fraction.
System.out.println("Slope: "+m+"X change?: "+x);
double m2=m;
// m+=100;
x2=x3+1;
x+=x3;
while(m<=y && x2<=x )
{
//System.out.println("Slope: "+m+", "+m2+"\nX value: "+x+"\nY value: "+y);
Shape liney = new Line2D.Double(x3,0,x2,m); //I draw to a double. Yay²! I saved Seth from having to do an algorithm.
g2D.draw(liney);
Commander.delay();
x2++;
m+=m2;
System.out.println("Far: "+Far);
}
x-=x3;
}
if(x><x3) {
m=(Math.abs((double)y/((double)x-x3))); if(m==0) m++;
double m2=m; // m+=100; x2=x3; // x+=100; while(m><=y && x2>=x)
{
//system.out.println("slope: "+m+", "+m2+"\nx value: "+x+"\ny value: "+y);
shape liney = new line2d.double(x3,0,x2,m);
g2d.draw(liney);
commander.delay();
//repaint();
x2--;
m+=m2;
system.out.println("other far: "+far);
}
}
}
any help would be greatly appreciated, thanks.>