i have created another class for my collisions. also i still need to add a couple of collisions. just need to know how the game will identify when a goal is scored by scoring it in a scoring system.
....
package assignmnet2AirHockey;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Color;
import javax.swing.border.MatteBorder;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JLabel;
import javax.swing.Timer;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
public class AirHockeyGame extends JFrame {
Timer timer;
int timerCount = 100;
int ballSpeedX = 2;
int ballSpeedY = 2;
private JPanel contentPane;
private JButton btnPuck;
private JButton btnRedPlayer;
private JButton btnBluePlayer;
private JButton btnRedGoal;
private JButton btnBlueGoal;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AirHockeyGame frame = new AirHockeyGame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AirHockeyGame() {
addComponentListener(new ComponentAdapter() {
public void componentShown(ComponentEvent e) {
timer.start();
}
});
{
};
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 400, 500);
contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
contentPane.setBorder(new MatteBorder(10, 10, 10, 10, (Color) Color.RED));
setContentPane(contentPane);
contentPane.setLayout(null);
btnPuck = new JButton("");
btnPuck.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/ImageBlackPuck.png")));
btnPuck.setBounds(197, 215, 30, 39);
contentPane.add(btnPuck);
btnRedPlayer = new JButton("");
btnRedPlayer.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent arg0) {
if (arg0.getKeyCode() == KeyEvent.VK_LEFT)
{
// Move Red Player Left
btnRedPlayer.setBounds(btnRedPlayer.getX() - 6, btnRedPlayer.getY(),
btnRedPlayer.getWidth(), btnRedPlayer.getHeight());
}
if (arg0.getKeyCode() == KeyEvent.VK_RIGHT)
{
// Move Red Player Right
btnRedPlayer.setBounds(btnRedPlayer.getX() + 6, btnRedPlayer.getY(),
btnRedPlayer.getWidth(), btnRedPlayer.getHeight());
}
}
});
btnRedPlayer.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/ImageRedPaddle.png")));
btnRedPlayer.setBounds(175, 373, 70, 71);
contentPane.add(btnRedPlayer);
btnBluePlayer = new JButton("");
btnBluePlayer.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/ImageBluePaddle.png")));
btnBluePlayer.setBounds(175, 34, 70, 71);
contentPane.add(btnBluePlayer);
btnRedGoal = new JButton("");
btnRedGoal.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/GoalRedSide.png")));
btnRedGoal.setBounds(108, 449, 196, 23);
contentPane.add(btnRedGoal);
btnBlueGoal = new JButton("");
btnBlueGoal.setVerticalAlignment(SwingConstants.TO P);
btnBlueGoal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
btnBlueGoal.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/GoalBlueSide.png")));
btnBlueGoal.setBounds(108, 6, 196, 23);
contentPane.add(btnBlueGoal);
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon(AirHockeyGame.class.getResource("/images/Middle of Pitch.png")));
lblNewLabel.setBounds(0, 154, 394, 167);
contentPane.add(lblNewLabel);
timer = new Timer (timerCount, new ActionListener() {
public void actionPerformed (ActionEvent count) {
btnPuck.setBounds(btnPuck.getX() + ballSpeedX, btnPuck.getY() + ballSpeedY,
btnPuck.getWidth(), btnPuck.getHeight());
if (LogicClass.collisionBotTop(btnPuck.getX(), btnPuck.getWidth(),
contentPane.getWidth(), 0) == true)
{
ballSpeedX *= -1;
}
}});
}
}
No comments:
Post a Comment