Question
I want an mp3 audio file onto my code when the game starts up use whatever png file you want to see that my code
I want an mp3 audio file onto my code when the game starts up use whatever png file you want to see that my code works I just need an audio file
package Images;
import javafx.animation.Animation;
import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Game extends Application {
// set constants
static final int CANVAS_WIDTH = 600;
static final int CANVAS_HEIGHT = 600;
public static final String TITLE = "Naruto Maze Game";
// image variables
private Image maze = new Image("images/gamebackground.png");
private Image hero = new Image("images/naruto.png");
private Image Villain=new Image("images/sasuke_stone.png");
private Image food= new Image("images/sparkle_tomato.png");
private Image food1= new Image("images/sparkle_tomato.png");
// player variables
private int playerOffsetX = 0;
private int playerOffsetY = 0;
private int playerWidth = 40;
private int playerHeight = 30;
private int villainHeight=30;
private int villainWidth=32;
private int villainoffsetX=0;
private int villainoffsetY=0;
private int foodoffsetx=0;
private int foodoffsety=0;
private int foodheight=40;
private int foodwidth=40;
// wall rectangles
private Rectangle Wall, Wall2, Wall3, Wall4, Wall5, Wall6, Wall7, Wall8, Wall9, Wall10;
private Rectangle Wall11, Wall12, Wall13, Wall14, Wall15, Wall16, Wall17, Wall18, Wall19, Wall20, food2;
@Override
public void start(Stage primaryStage) throws Exception {
Pane pane = new Pane();
StackPane stackPane = new StackPane();
Scene scene = new Scene(pane, CANVAS_WIDTH, CANVAS_HEIGHT);
Canvas canvas = new Canvas(CANVAS_WIDTH, CANVAS_HEIGHT);
stackPane.getChildren().add(canvas);
pane.getChildren().add(stackPane);
// text for collision
Text text = new Text();
text.setFill(Color.RED);
text.setFont(Font.font("Arial", FontWeight.BOLD, 12));
final ImageView mazeView = new ImageView(maze);
Wall = new Rectangle(237, 477, 125, 44);
Wall2 = new Rectangle(0, 357, 43, 204);
Wall3 = new Rectangle(0, 560, 600, 40);
Wall4 = new Rectangle(557, 358, 43, 202);
Wall5 = new Rectangle(117, 398, 44, 82);
Wall6 = new Rectangle(159, 438, 43, 42);
Wall7 = new Rectangle(438, 398, 45, 83);
Wall8 = new Rectangle(397, 437, 43, 45);
Wall9 = new Rectangle(238, 199, 44, 163);
Wall10 = new Rectangle(280, 199, 40, 41);
Wall11 = new Rectangle(318, 199, 44, 164);
Wall12 = new Rectangle(78, 78, 84, 44);
Wall13 = new Rectangle(117, 78, 45, 163);
Wall14 = new Rectangle(238, 78, 124, 43);
Wall15 = new Rectangle(117, 398, 44, 82);
Wall16 = new Rectangle(439, 77, 43, 165);
Wall17 = new Rectangle(439, 77, 82, 44);
Wall18 = new Rectangle(557, 0, 43, 280);
Wall19 = new Rectangle(0, 0, 600, 42);
Wall20 = new Rectangle(0, 0, 42, 281);
food2=new Rectangle(40,30); // set animation for player
final ImageView playerImageView = new ImageView(hero);
playerImageView.setViewport(new Rectangle2D(playerOffsetX, playerOffsetY, playerWidth, playerHeight));
final ImageView VillainImageView= new ImageView(Villain);
VillainImageView.setViewport(new Rectangle2D(villainoffsetX, villainoffsetY, villainWidth, villainHeight));
final ImageView foodImageView=new ImageView(food);
foodImageView.setViewport(new Rectangle2D(foodoffsetx,foodoffsety,foodwidth,foodheight));
pane.getChildren().add(mazeView);
pane.getChildren().add(playerImageView);
pane.getChildren().add(VillainImageView);
pane.getChildren().add(foodImageView);
// pane.getChildren().add(food1ImageView);
playerImageView.requestFocus();
// place into scene
primaryStage.setTitle(TITLE);
primaryStage.setScene(scene);
primaryStage.show();
// start location of player
playerImageView.setX(280);
playerImageView.setY(400);
//start location of villain
VillainImageView.setX(200);
VillainImageView.setY(280);
foodImageView.setX(40);
foodImageView.setY(30);
// food1ImageView.setX(80);
//food1ImageView.setY(30);
playerImageView.setOnKeyPressed(e -> {
switch (e.getCode()) {
case UP:
case W:
playerImageView.setX(playerImageView.getX());
playerImageView.setY(playerImageView.getY() - 10);
break;
case DOWN:
case S:
playerImageView.setX(playerImageView.getX());
playerImageView.setY(playerImageView.getY() + 10);
break;
case LEFT:
case A:
playerImageView.setX(playerImageView.getX() - 10);
playerImageView.setY(playerImageView.getY());
break;
case RIGHT:
case D:
playerImageView.setX(playerImageView.getX() + 10);
playerImageView.setY(playerImageView.getY());
break;
default:
break;
}
});
AnimationTimer game = new AnimationTimer() {
@Override
public void handle(long now) {
checkCollision(playerImageView, Wall, Wall2, Wall3, Wall4, Wall5, Wall6, Wall7, Wall8, Wall9, Wall10,
Wall11, Wall12, Wall13, Wall14, Wall15, Wall16, Wall17, Wall18, Wall19, Wall20, pane, text,
playerImageView);
}
};
game.start();
}
private void checkCollision(Node player, Rectangle wall1, Rectangle wall2, Rectangle wall3, Rectangle wall4,
Rectangle wall5, Rectangle wall6, Rectangle wall7, Rectangle wall8, Rectangle wall9, Rectangle wall10,
Rectangle wall11, Rectangle wall12, Rectangle wall13, Rectangle wall14, Rectangle wall15, Rectangle wall16,
Rectangle wall17, Rectangle wall18, Rectangle wall19, Rectangle wall20, Pane pane, Text text,
ImageView playerImageView) {
boolean collisionDetected = false;
if ((player.getBoundsInParent().intersects(wall1.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall2.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall3.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall4.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall5.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall6.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall7.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall8.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall9.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall10.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall11.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall12.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall13.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall14.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall15.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall16.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall17.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall18.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall19.getBoundsInParent()))
|| (player.getBoundsInParent().intersects(wall20.getBoundsInParent())))
collisionDetected = true;
if (collisionDetected) {
text.setText("Collision!");
text.setX(((ImageView) player).getX() -20);
text.setY(((ImageView) player).getY() - 20);
playerImageView.setX(((ImageView) player).getX() - 20);
playerImageView.setY(((ImageView) player).getY() -20);
} else {
text.setText("Wall");
}
}
private void checkscore(Node player, Rectangle Food2, Pane pane, Text text,
ImageView playerImageView) {
boolean checkscore=false;
if((player.getBoundsInParent().intersects(food2.getBoundsInParent())))
checkscore=true;
if(checkscore) {
text.setText("score=50");
}
}
// main method
public static void main(String[] args) {
launch(args);
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started