Files
american-identity-project/Enemy.java
2026-04-15 19:50:15 -05:00

53 lines
1.4 KiB
Java

import javax.swing.ImageIcon;
import java.util.*;
public class Enemy extends Collidable{
int xVelo, yVelo;
boolean alive;
public Enemy(int x, int y, int w, int h, int level){
super(x,y,w,h,new ImageIcon("Sprites/Enemies/" + level + ".png"));
xVelo = 2;
yVelo = 0;
alive = true;
}
public void moveX(int moveX){
this.x += moveX;
this.rect.x = this.x;
}
public void moveY(int moveY){
this.y += moveY;
this.rect.y = this.y;
}
public void patrol(ArrayList<Collidable> collidables){
moveX(xVelo);
for (Collidable c : collidables){
if (this.collidesWith(c)){
xVelo = -xVelo;
moveX(xVelo * 2);
break;
}
}
// check edge detection - is there ground below next step?
boolean edgeAhead = true;
int nextX = this.x + xVelo;
for (Collidable c : collidables) {
if (c instanceof Tile) {
Tile t = (Tile) c;
// check if tile is below enemy's next position
if (nextX + this.width > t.x && nextX < t.x + t.width &&
t.y == this.y + this.height) {
edgeAhead = false;
break;
}
}
}
if (edgeAhead) {
xVelo = -xVelo;
}
}
}