私は現在、フラッフィーな鳥のような単純な2次元ゲームを作っています。これに慣れていない人にとっては、ゲームはサイド・スクローラーで、プレーヤーはオブジェクトをコントロールし、ネオン・パイプの行間を飛行しようとします。この中でExampleあなたはUFO(initFrog)がネオンパイプに全く触れていないことが分かります。しかし、ネオンパイプのグロー効果は.pngファイルの一部なので、UFOはそれを交点として認識します。 2つが交差するときに停止するように設定されたタイマーがあります(下のコードの最後のブロックを表示)。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;
} }
ありがとうございます!非常に役立ちます –