현재 flappy bird와 같은 간단한 2 차원 게임을 만들고 있습니다. 이 게임에 익숙하지 않은 사람들을 위해 게임은 플레이어가 개체를 제어하고 네온 파이프 행을 타격하지 않고 횡단하려고 시도하는 측면 스크롤러입니다. 이 Example에서 UFO (initFrog)가 네온 파이프를 완전히 만지지 않는다는 것을 알 수 있습니다. 그러나 네온 파이프의 광선 효과는 .png 파일의 일부이므로 UFO는이를 교차점으로 인식합니다. 타이머가 두 개가 교차 할 때 멈추도록 설정되어 있습니다 (아래 마지막 코드 블록보기).JavaFX 게임의 그래픽 :이 문제를 해결할 수 있습니다.
그렇다면 UFO가 네온 자체에 닿으면 타이머를 멈추게하려면 어떻게해야합니까?
private Node initFrog() {
ImageView falc = new ImageView();
falc.setImage(milFalc);
falc.setTranslateY(300-39);
falc.setTranslateX(240);
falc.setScaleX(.3);
falc.setScaleY(.3);
return falc;
}
private Node ships() {
int haut = (int)(Math.random()*600);
ImageView sheep = new ImageView();
sheep.setImage(Orbs);
sheep.setTranslateY(haut-500);
sheep.setTranslateX(800);
sheep.setScaleX(.017);
sheep.setScaleY(.017);
root.getChildren().add(sheep);
return sheep;
}
private Node initNeon() {
int haut = (int)(Math.random()*260);
ImageView neona = new ImageView();
neona.setImage(neon1);
neona.setTranslateY(haut-200);
neona.setTranslateX(800);
neona.setRotate(90);
neona.setScaleX(1.);
neona.setScaleY(.8);
root.getChildren().add(neona);
return neona;
}
private Node SpawnzCar() {
int hauts = (int)(Math.random() *280);
ImageView neona = new ImageView();
neona.setImage(neon2);
neona.setTranslateY(hauts+520);
neona.setTranslateX(800);
neona.setRotate(90);
neona.setScaleX(1.);
neona.setScaleY(.8);
root.getChildren().add(neona);
return neona;
} private void onUpdate() {
for (Node car : cars)
car.setTranslateX(car.getTranslateX() - 11);
if (Math.random() <= 0.07) {
cars.add(SpawnzCar());
// cars.add(ships());
cars.add(initNeon());}
checkState();
}
private void checkState() {
for (Node car : cars) {
if (car.getBoundsInParent().intersects(frog.getBoundsInParent())) {
frog.setTranslateX(frog.getTranslateX());
timer.stop();
frog.setTranslateY(frog.getTranslateY());
return;
} }
감사합니다. 매우 도움이되는 –