프로젝트를위한 양면성 게임 맵을 만들려고합니다. 나는 일하는지도를 가지고있다.JavaFX를 사용한 인터랙티브 GoT지도
지도에서 특정 영역을 클릭하면 집과 같은 다양한 클릭 가능 영역이있는 다른 이미지가 열립니다.
이지도는 지금까지 모습입니다 : 나는 빨간색 사각형을 클릭하면
, 나는 그냥 특정 지역에 새로운 유사한 이미지를 열려면. 이 작업은 이미지 위에 버튼을 추가하여 수행 할 수 있으며 클릭하면 이미지와 물건을 대체 할 클래스가 호출됩니다. 어떻게해야 할지를 시도하고 검색 한 후에 이미지 상단에 단추를 얻는 방법을 모르겠습니다.
모든 조언을 주시면 감사하겠습니다. 나는 프로그래밍에 아주 익숙하다.
여기에 내가 지금까지 가지고있는 코드가 있습니다. 이미지의 원본 SVG 인 경우
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.event.*;
import java.util.*;
public class MapDemo extends Application {
public void start (Stage ps) {
ImageView img=new ImageView(getClass().getResource("map.jpg").toExternalForm());
List<County> alltowns = new ArrayList<County>();
alltowns.add(new County("The North",165,265));
alltowns.add(new County("The Vale",265,415));
alltowns.add(new County("Crownlands",280,520));
alltowns.add(new County("Stormlands",280,635));
alltowns.add(new County("Dorne",190,725));
alltowns.add(new County("The Reach",150,600));
alltowns.add(new County("Westerland",135,505));
alltowns.add(new County("Riverlands",180,440));
alltowns.add(new County("Iron Isles",80,400));
img.setOnMouseMoved(e->{
ps.setTitle(e.getX()+", "+e.getY());
});
img.setOnMousePressed(e->{
for(County t : alltowns)
{
double dist=Math.sqrt(Math.pow(t.getX()-e.getX(),2)+Math.pow(t.getY()-e.getY(),2));
if(dist<=20)
System.out.println(t.getName());
}
});
ps.setScene(new Scene(new Group(img),413,796));
ps.show();
}
public static void main(String[] args) {
launch(args);
}
}
//---------------------------------------------
class County {
String name;
double x,y;
public County(String n, double a, double b){
name=n;
x=a;
y=b;
}
public String getName() {
return name;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}