Thursday, April 3, 2014

Problems with moving computer controlled Jbutton


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