Organize game files into their project directory and ensure proper build configuration
Moves all game source files and assets into the 'American-Identity-Project' directory and updates the manifest to point to the 'Display' class as the main entry point. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f6819c21-e85d-45ac-acde-604db2cfa4fe Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: a9500e48-7f68-408f-a5c6-28df9f59fe00 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
53
American-Identity-Project/Enemy.java
Normal file
53
American-Identity-Project/Enemy.java
Normal file
@@ -0,0 +1,53 @@
|
||||
import java.util.*;
|
||||
import javax.swing.ImageIcon;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user