Я новичок в Java и в настоящее время пытаюсь создать простую текстовую игру.Используя 4 класса: Main
, Character
, World
и Constructor
, я настроил систему карт, в которой 5 ArrayList<Point>
s определены как:
public class Constructor {
//Make Worlds
World desktopSize = new World(15, 15);
World laptopSize = new World(10,10);
World routerSize = new World(10, 5);
World dlTravelSpace = new World(3,1);
World dlrTravelSpace = new World(1, 3);
}
И World
s создается как:
public class World {
private int x, y;
private String direction;
private int index;
ArrayList<Point> mapSize = new ArrayList();
Scanner scan = new Scanner(System.in);
public World(int x, int y){
this.x = x;
this.y = y;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
mapSize.add(new Point(i + 1, j + 1));
}
}
}
}
В классе Character
я устанавливаю все атрибуты, используя метод:
public void setCharacter(String charClass, Point currentPoint) {
if (charClass.equals("warrior")) {
setName("Sparky");
setLevel(1);
setHp(100);
setAttack(50);
setDefense(20);
setSpeed(10);
//setSkills();
setBackPackSpace(15);
//setInventory();
setCredits(1000);
setCurrentPoint(10, 8);
} else if (charClass.equals("ranged")) {
setName("Sparky");
setLevel(1);
setHp(90);
setAttack(60);
setDefense(10);
setSpeed(12);
//setSkills();
setBackPackSpace(14);
//setInventory();
setCredits(950);
setCurrentPoint(10, 8);
} else if (charClass.equals("tank")) {
setName("Sparky");
setLevel(1);
setHp(110);
setAttack(40);
setDefense(30);
setSpeed(9);
//setSkills();
setBackPackSpace(16);
//setInventory();
setCredits(1050);
setCurrentPoint(10, 8);
}
}
Когда я вызываю метод setCharacter
, я использую:
if (player.getCharClass().equals("warrior") ||
player.getCharClass().equals("ranged") ||
player.getCharClass().equals("tank")) {
System.out.println("Class " + player.getCharClass() + " selected!");
System.out.println("");
player.setCharacter(player.getCharClass(),
player.getCurrentPoint());
} else {
System.out.println("Invalid class selected. Please restart and try
again.");
System.exit(0);
}
Однако, когда я запускаю код, он возвращает следующую ошибку:
Error:(34, 13) java: method setCurrentPoint in class Character cannot be
applied to given types;
required: java.awt.Point
found: int,int
reason: actual and formal argument lists differ in length
Ошибка, кажется, происходит в
public void setCharacter(String charClass, Point currentPoint) {
if (charClass.equals("warrior")) {
setName("Sparky");
setLevel(1);
setHp(100);
setAttack(50);
setDefense(20);
setSpeed(10);
//setSkills();
setBackPackSpace(15);
//setInventory();
setCredits(1000);
setCurrentPoint(10, 8);
В
setCurrentPoint(10, 8);
Метод setCurrentPoint имеет вид
public void setCurrentPoint(Point currentPoint) {
this.currentPoint = currentPoint;
}
Моя проблема заключается в следующем: как установить атрибут точки персонажа, чтобы он был в (10, 8) в мире desktopSize.На создание