Difference between revisions of "Historical Velocity Recall"
Jump to navigation
Jump to search
m (removing "Targeting" category) |
|||
Line 1: | Line 1: | ||
− | A method of targeting that uses the most common enemy velocity as input to a [[linear targeting]] or [[circular targeting]] algorithm. | + | A method of targeting that uses the most common enemy velocity as input to a [[linear targeting]] or [[circular targeting]] algorithm. The effectiveness of this targeting strategy can be greatly increased by implementing [[Segmentation]]. |
== Example using linear targeting== | == Example using linear targeting== |
Revision as of 16:55, 16 May 2009
A method of targeting that uses the most common enemy velocity as input to a linear targeting or circular targeting algorithm. The effectiveness of this targeting strategy can be greatly increased by implementing Segmentation.
Example using linear targeting
int[] _velocityCounts = new int[9]; public void onScannedRobot(ScannedRobotEvent e) { int goingBackwardsMultiplier = (e.getVelocity() < 0 ? -1 : 1); int enemyAbsVelocity = (int)Math.round(Math.abs(e.getVelocity())); _velocityCounts[enemyAbsVelocity]++; int mostCommonVelocity = 0; int mostCommonVelocityCount = _velocityCounts[0]; for (int x = 1; x < 9; x++) { if (_velocityCounts[x] > mostCommonVelocityCount) { mostCommonVelocityCount = _velocityCounts[x]; mostCommonVelocity = x; } } fireWithLinearTargeting(e.getHeadingRadians(), mostCommonVelocity * goingBackwardsMultiplier); }