Код: Выделить всё
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
class GamePanel extends JPanel {
// Game parameters
int squareSize = 100;
int squareX;
int squareY;
int health = 10;
boolean showHealthBar = false;
boolean gameOver = false;
boolean gameStarted = false;
Random random = new Random();
Timer hideHealthBarTimer;
Timer gameTimer;
boolean paused = false;
int counter = 0;
Timer counterTimer;
// Variables for square shaking
boolean isShaking = true; // Start shaking immediately
int originalSquareX;
int originalSquareY;
Timer shakeTimer;
int shakeAmplitude = 2; // Amplitude of shaking
// Difficulty settings
String difficulty = "Normal"; // Default difficulty
int selectedDifficulty = -1;
int shakeDelay = 20; // Delay for the shake timer
public GamePanel() {
// Timer for shaking
shakeTimer = new Timer(shakeDelay, e -> {
if (isShaking) {
squareX = originalSquareX + (random.nextBoolean() ?
shakeAmplitude : -shakeAmplitude);
squareY = originalSquareY + (random.nextBoolean() ?
shakeAmplitude : -shakeAmplitude);
repaint(); // Repaint on each shake
}
});
shakeTimer.start(); // Start the shake timer immediately
hideHealthBarTimer = new Timer(500, e -> {
showHealthBar = false;
repaint();
});
hideHealthBarTimer.setRepeats(false);
gameTimer = new Timer(30, e -> {
if (paused || !gameStarted || gameOver) return;
if (health { // Slower counter
increase
if (!paused && gameStarted && !gameOver) {
counter++;
repaint();
}
});
counterTimer.start();
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (!gameStarted) {
// ... (difficulty selection logic - unchanged)
} else if (gameStarted && !paused && !gameOver) {
if (e.getX() >= squareX && e.getX() = squareY && e.getY()
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class menu_introduttivo {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
System.out.println("Starting application...");
JFrame frame = new JFrame("Test Frame");
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBackground(Color.BLACK);
JPanel panel = new JPanel() {
// ... (Existing variables)
@Override
protected void paintComponent(Graphics g) {
// ... (Existing drawing code)
}
// ... (Existing drawOptionsPanel method)
@Override
public void addNotify() {
super.addNotify();
// ... (Existing mouseMoved listener)
addMouseListener(new MouseAdapter() {
// ... (Existing mousePressed code for START and MODES)
@Override
public void mousePressed(MouseEvent e) {
// ... (Existing "OPTIONS" and "Did" click handling)
if (optionsMenuOpen) {
// ... (Existing volume circle click handling)
// Check if the sound circle is clicked
// ... (sound circle click handling - unchanged)
}
}
@Override
public void mouseReleased(MouseEvent e) {
// ... (mouseReleased - unchanged)
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if (optionsMenuOpen) {
// ... [Existing dragging logic]
}
}
});
// Add mouse listener for click handling
addMouseListener(new MouseAdapter() {
// ... [mousePressed method - unchanged]
});
}
};
frame.add(panel);
frame.setVisible(true); // Make the frame visible after adding components
});
}
}
< /code>
Попытка собрать эти два файла вместе: < /p>
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
// ... (GamePanel and Game classes remain unchanged)
public class menu_introduttivo {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
// ... (Existing setup code)
JPanel panel = new JPanel() {
// ... (Existing variables)
@Override
protected void paintComponent(Graphics g) {
// ... (Existing drawing code)
}
// ... (Existing drawOptionsPanel method)
@Override
public void addNotify() {
super.addNotify();
MouseInputAdapter mouseAdapter = new
MouseInputAdapter() { // Combined listener
@Override
public void mouseMoved(MouseEvent e) {
// ... (Existing mouseMoved logic -
unchanged)
}
@Override
public void mousePressed(MouseEvent e) {
// ... (Existing mousePressed logic -
unchanged)
}
@Override
public void mouseDragged(MouseEvent e) {
if (optionsMenuOpen) {
if (draggingVolume) {
// ... (volume dragging logic -
unchanged)
}
if (draggingSound) {
// ... (sound dragging logic -
unchanged)
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
draggingVolume = false;
draggingSound = false;
}
};
addMouseListener(mouseAdapter); // Add
combined listener
addMouseMotionListener(mouseAdapter); // Add
combined listener
}
};
frame.add(panel);
frame.setVisible(true); // Make the frame visible
*after* adding the panel
});
}
}
Это 2 разных кодовых файла
Введите описание изображения здесь
Это меню. Это должно быть первое, что открывается в игре, и если я нажму запуск, он должен запустить другой файл в игру, которая открывает сначала сложность меню, и после того, как игрок выбрал сложность, игра начинается Введите описание изображения здесь < /p>
Если вы нажмете одну из трудностей, начинается игра: < /p>
Введите описание изображения здесь < /p >
В этом случае файлы были разделены. Если вы сложите код вместе, он может запустить только один из них, или он запустит только меню или только игру с его меню. Вместе: открывает игру, первое, что вы видите, это меню с параметрами, режимом и запуска, если вы нажмете запуск>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ves-errors