mirror of
https://github.com/jwinterm/SpaceShooter.git
synced 2026-10-17 05:51:30 +02:00
49 lines
1.3 KiB
Java
49 lines
1.3 KiB
Java
package com.spaceshooter;
|
|
|
|
import com.badlogic.gdx.Gdx;
|
|
|
|
public class EnemyTurret extends Enemy {
|
|
private float shootTimer;
|
|
private float degrees;
|
|
EnemyTurret() {
|
|
super(5);
|
|
shootTimer = 0;
|
|
setOrigin(getWidth()/2,getHeight()/2);
|
|
degrees = 0.0f;
|
|
}
|
|
|
|
public void updateEnemy(Player player, BulletManager bulletManager) {
|
|
|
|
if (player != null) {
|
|
// Point the enemy towards the player.
|
|
float angle = (float) Math.atan2(getY() - player.getY(), getX()
|
|
- player.getX());
|
|
float degrees = (float) (angle * (180 / Math.PI));
|
|
setRotation(degrees - 90);
|
|
super.updateEnemy(player, bulletManager);
|
|
|
|
// Make a bullet
|
|
shootTimer += (Gdx.graphics.getDeltaTime() / 5);
|
|
if (shootTimer > 0.4f) {
|
|
|
|
float directionX = getX() - player.getX();
|
|
float directionY = getY() - player.getY();
|
|
double sq = Math
|
|
.sqrt(directionX * directionX + directionY * directionY);
|
|
|
|
float velocityX = (float) (directionX
|
|
* (SpaceShooter.getBulletSpeed()) / sq);
|
|
float velocityY = (float) (directionY
|
|
* (SpaceShooter.getBulletSpeed()) / sq);
|
|
|
|
bulletManager.getList().add(new EnemyBulletBasic(getX(), getY(),velocityX,velocityY,
|
|
0));
|
|
shootTimer = 0f;
|
|
}
|
|
}
|
|
else {
|
|
setRotation(degrees - 90);
|
|
super.updateEnemy(player, bulletManager);
|
|
}
|
|
}
|
|
} |