을에 다른 클래스에서 객체의 이름을 얻는 방법 보트 (어느 정도의 보트가 그림 인 &).내가 정의하는 생성자가 세계 클래스와 보트 클래스와 보트 클래스 안쪽 종료 클래스</p> <p>을 내가 Greenfoot IDE를 사용하고 그리고 난이 자바
보트 코드 : 종료 클래스 내부
public class Boat extends Actor
{
private int size;
private int speed;
private int slow = 1;
private boolean leeg = false;
private int id;
private int time;
public void act() {
MoveBoat();
MoveMouse();
ExitHarbor(time);
Dock();
Colission();
}
public Boat(int newSize, int i, int t) {
size = newSize;
id = i;
time = t;
setImage(id);
}
public void setImage(int i) {
if (!leeg) {
setImage(new GreenfootImage("Boat"+i+".png"));
}
else {
setImage(new GreenfootImage("Boatleeg"+i+".png"));
}
}
}
나는 다른 종료의
종료 정의하는 생성자가 : 월드 클래스에서
public class Exit extends Actor
{
private String color;
private int points;
/**
* Act - do whatever the Exit wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public Exit(String kleur) {
color = kleur;
setImage(kleur);
}
public void setImage(String kleur) {
//Game1 game = getWorld().getObjects(Boat.class);
setImage(new GreenfootImage("exit"+kleur+".png"));
}
public String getColor()
{
return color;
}
}
내가 추가 한 3 개 개의 보트를 & 다른 매개 변수를 가진 greenfoot의 소위 "세계"에 대한 3 가지 다른 종료. 지금 나는 3 개의 다른 보트를 가지고있다 & 3 개의 다른 출입구.
세계 :
public class Game1 extends World
{
/**
* Constructor for objects of class Game1.
*
*/
public Game1()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(900, 900, 1);
prepare();
}
public void prepare()
{
Exit exit1 = new Exit("paars");
addObject(exit1, 885, 615);
Exit exit2 = new Exit("groen");
addObject(exit2, 885, 472);
Exit exit3 = new Exit("geel");
addObject(exit3, 885, 340);
Boat boat1 = new Boat(10,1,700);
addObject(boat1, 500,61);
Boat boat2 = new Boat(20,2,500);
addObject(boat2, 800,61);
Boat boat3 = new Boat(30,3,300);
addObject(boat3, 650,61);
}
}
나는 순간에 데 문제는 내가 1 번 출구에 1 배를 지정할 수 wan't 것입니다. 더 명확하게하기 위해 보트 1은 "geel"Exit (또는 exit1)과 만 상호 작용할 수 있습니다.
이미 일부 코드를 시도했지만 제대로 작동하지 않습니다.
시도 코드 :
if (id == 1 && "geel".equals(exit.getColor()))
가 나는 경우이 작업을 할 수 있다고 생각하지만, 그것을 위해 내가 월드 클래스 또는 보트 클래스의 객체를 검색 할 필요가 나는 방법을 모른다 해? 내가
Actor boat = (Actor)getWorld().getObjects(Boat.class).get(0);
을 시도하지만 그
누구나 어떤 제안 (자신의 객체 (변수) 이름 포함) 3 개 가지 보트를 반환하지 않습니다?
PS 그것은 더 많은 코드입니다하지만 난 단지 내가 일부를 시도한 반응 후
이 문제에 대한 necesarry있는 코드를 보여하지만 난
public void ExitBoat(Exit exit, int size) {
this.exit = exit;
System.out.println(exit);
/* if(exit == exit1 && size == 10) {
System.out.println("jdjdf");
}*/
}
public Boat(Exit uitgang, int newSize, int i, int t) {
exit = uitgang;
size = newSize;
id = i;
time = t;
setImage(id);
}
가 지금은 붙어 again` 붙어 다시 내 공개 무효 행동에 올바른 매개 변수를 사용하여 메서드를 호출하는 방법을 모릅니다. 이 같은 보트 인스턴스를 만들 수 있도록