1576
News / Re: Version 1.17 has been released!
« on: December 11, 2008, 07:27:56 pm »
Thanks a lot, buddy, I appreciate your efforts. Now, for that Math class... : )
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
if (instance.firing) {
SimpleVector firingVector1 = instance.targetCone.getTransformedCenter().calcSub(instance.laserDummy1.getTransformedCenter());
SimpleVector firingVector2 = instance.targetCone.getTransformedCenter().calcSub(instance.laserDummy2.getTransformedCenter());
SimpleVector target1 = instance.targetCone.getTransformedCenter();
target1.add(firingVector1);
SimpleVector target2 = instance.targetCone.getTransformedCenter();
target2.add(firingVector2);
System.out.println("Target2 vector length: "+target2.length());
instance.moveTowards(instance.laser2, target1, .2f);
instance.moveTowards(instance.laser1, target2, .2f);
}
private void align(Object3D from, Object3D to) {
// THIS IS EGON'S: As Javadocs state: The default align method doesn't take parent objects into
// account...This method takes parents into account.
float scale = from.getScale();
from.setScale(1);
Matrix matrix = to.getWorldTransformation();
float[] dm = matrix.getDump();
for (int i = 12; i < 15; i++) {
dm[i] = 0;
}
dm[15]=1;
matrix.setDump(dm);
from.setRotationMatrix(matrix);
from.setScale(scale);
}
protected void moveTowards(Object3D toMove, SimpleVector direction, float amount) {
SimpleVector origin = toMove.getTransformedCenter();
float deltaX = (direction.x -origin.x)*amount;
float deltaY = (direction.y -origin.y)*amount;
float deltaZ = (direction.z -origin.z)*amount;
toMove.translate(deltaX, deltaY, deltaZ);
}
private void fireLasers() {//SETS IT UP, THEN FLIPS firing TO TRUE SO THAT THE GAME LOOP TAKES IT FROM THERE
targetCone.calcCenter();
laser1 = Primitives.getCylinder(16, 4f, 20f);
laser1.build();
laser1.translate(laserDummy1.getTransformedCenter());
align(laser1, wing1);
// laserTarget1 = Object3D.createDummyObj();
laserTarget1 = Primitives.getBox(10, 1);
align(laserTarget1, targetCone);
moveTowards(laserTarget1, targetCone.getTransformedCenter(), 1f);
theWorld.addObject(laser1);
laser2 = Primitives.getCylinder(16, 4f, 20f);
laser2.build();
laser2.translate(laserDummy2.getTransformedCenter());
align(laser2, wing2);
theWorld.addObject(laser2);
// laserTarget2 = Object3D.createDummyObj();
laserTarget2 = Primitives.getBox(10, 1);
laserTarget2.build();
moveTowards(laserTarget2, targetCone.getTransformedCenter(), 1f);
laser1.addChild(laserTarget2);
laser2.addChild(laserTarget1);
theWorld.addObject(laserTarget1);
theWorld.addObject(laserTarget2);
laser1.setAdditionalColor(Color.red);
laser2.setAdditionalColor(Color.red);
System.out.println("Laser to Ship Distance: "+calculateDistance(xWing, laser1));
firing = true;
}