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