Last active
August 29, 2015 14:15
-
-
Save tiborsimon/2010aea0694736e8e9fa to your computer and use it in GitHub Desktop.
Java Shooter Game - FiledDirector :: findClosestEnemy - http://tibor-simon.com/programming/auto-aiming-logic-for-games/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private boolean findClosestEnemy() { | |
if (enemyList.isEmpty()) { | |
targetEnemy = null; | |
System.out.println("Target enemy NOT found!"); | |
return false; | |
} | |
if (enemyList.size() == 1) { | |
targetEnemy = enemyList.get(0); | |
// System.out.println("Target enemy found!"); | |
return true; | |
} | |
int targetIndex = 0; | |
float min = 800.0f; | |
Circle pC = playerCircle(); | |
float px = pC.getCenterX(); | |
float py = pC.getCenterY(); | |
for (int i = 0; i < enemyList.size(); i++) { | |
Enemy enemy = enemyList.get(i); | |
Circle eC = enemy.outline(); | |
float ex = eC.getCenterX(); | |
float ey = eC.getCenterY(); | |
float tempMin = (float) Math.sqrt(Math.pow(Math.abs(ex - px), 2) | |
+ Math.pow(Math.abs(ey - py), 2)); | |
if (tempMin < min) { | |
min = tempMin; | |
targetIndex = i; | |
} | |
} | |
targetEnemy = enemyList.get(targetIndex); | |
// System.out.println("Target enemy found!"); | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment