Question: This is java. I am having issues with getting random movement out of an enemy class. I need my enemies to be able to move

This is java.

I am having issues with getting random movement out of an enemy class. I need my enemies to be able to move randomly across the map. i'll post my two classes that this pertains too but if you need more code i can provide.

MainPanel.java

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.util.ArrayList;

import java.util.Random;

import java.util.Timer;

import javax.swing.JPanel;

public class MainPanel extends JPanel {

Player myPlayer;

Player myOtherPlayer;

private int WIDTH = 1000;

private int HEIGHT = 1000;

private int WALLWIDTH = 100;

private int WALLHEIGHT = 100;

private ArrayList walls = new ArrayList();

private ArrayList items = new ArrayList();

private ArrayList Obs = new ArrayList();

private int MAXITEMS = 5;

private int MAXOBS = 7;

int seconds = 30;

public MainPanel()

{

setPreferredSize(new Dimension(WIDTH,HEIGHT));

myPlayer = new Player(100,100, "./src/toad.png", KeyEvent.VK_UP, KeyEvent.VK_DOWN, KeyEvent.VK_LEFT, KeyEvent.VK_RIGHT,this, 50, 38);

myOtherPlayer = new Player(200,200, "./src/toad.png", KeyEvent.VK_W, KeyEvent.VK_S, KeyEvent.VK_A, KeyEvent.VK_D,this, 50, 38);

createWalls();

createItems();

createObs();

}

public ArrayList getWalls() {

return walls;

}

public ArrayList getItems() {

return items;

}

public ArrayList getObs() {

return Obs;

}

public void createWalls()

{

int j = 0;

for(int i = 0; i < HEIGHT/WALLHEIGHT; i++)

{

for(int k = 0; k < WIDTH/WALLWIDTH; k++)

{

if(i == 0 || i == (HEIGHT/WALLHEIGHT-1))

{

walls.add(new Wall(k*WALLWIDTH,j,"./src/brick.jpg", 100, 100));

}

else

{

if(k == 0 || k == (HEIGHT/WALLHEIGHT-1))

{

walls.add(new Wall(k*WALLWIDTH,j,"./src/brick.jpg", 100, 100));

}

}

}

j+=WALLHEIGHT;

}

}

public void createObs()

{

Random myRandom = new Random();

for(int i = 0; i < MAXOBS; i++)

{

Obs.add(new Obstacle(myRandom.nextInt(500) + 200,myRandom.nextInt(500)+200, "./src/bomb.png", 5, 5));

}

}

public void createItems()

{

Random myRandom = new Random();

for(int i = 0; i < MAXITEMS; i++)

{

items.add(new Item(myRandom.nextInt(500) + 200,myRandom.nextInt(500)+200, "./src/gem.png", 5, 5));

}

}

public void paintComponent(Graphics page)

{

super.paintComponent(page);

page.drawImage(myPlayer.getImageIcon().getImage(), myPlayer.getX(), myPlayer.getY(), null);

page.drawImage(myOtherPlayer.getImageIcon().getImage(), myOtherPlayer.getX(), myOtherPlayer.getY(), null);

for(int i = 0; i < Obs.size(); i++)

{

page.drawImage(Obs.get(i).getImageIcon().getImage(), Obs.get(i).getX(), Obs.get(i).getY(),null);

}

Obs.update();

for(int i = 0; i < walls.size(); i++)

{

page.drawImage(walls.get(i).getImageIcon().getImage(), walls.get(i).getX(), walls.get(i).getY(), null);

}

for(int i = 0; i < items.size(); i++)

{

page.drawImage(items.get(i).getImageIcon().getImage(), items.get(i).getX(), items.get(i).getY(),null);

}

page.setFont(new Font("Arial", Font.PLAIN,32));

page.drawString("Player 1 Score: " + myPlayer.getScore(), 100, 800);

page.drawString("Player 2 Score: " + myOtherPlayer.getScore(), 100, 850);

if(items.size() == 0)

{

page.drawString("GAME OVER", WIDTH/2-100, HEIGHT/2);

}

}

}

Obstacle.java

import javax.swing.ImageIcon;

public class Obstacle extends GameObject {

public Obstacle(int x, int y, String imagePath, int HEIGHT, int WIDTH)

{

super(x,y,imagePath, HEIGHT, WIDTH);

}

public void update () {

x +=5;

}

@Override

public ImageIcon getImageIcon() {

return new ImageIcon(imagePath);

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!