EASY7

Java Swing :: 공튀기기 버전1 본문

Portfolio

Java Swing :: 공튀기기 버전1

E.asiest 2016. 12. 23. 22:34

설명:

위, 좌, 우 벽에 닿으면 반사되고

아래 벽에 닿으면 게임에서 지는 게임입니다.

막대기에 닿으면 공이 반사되므로 막대기를 좌우로 움직여 공을 살려내야합니다.


응용:

공의 스피드 조정하는 버튼 만들기


원리:

1. 공 움직이기

TimerListener timerListener = new TimerListener();  
_timer = new Timer(20, timerListener);


private class TimerListener implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   _ball.move();
   repaint();
  }
 }

1000=1초로 보고

20=0.02초마다 timerListener의 actionPerformed를 실행시킨다.

즉, 0.02초마다 ball을 move시킨다



2. 막대기 움직이기

private class MoveKeyListener implements KeyListener {
  private DrawingPanel _drawingPanel;
  public MoveKeyListener(DrawingPanel drawingPanel){
   _drawingPanel= drawingPanel; 
  }
  @Override
  public void keyPressed(KeyEvent e) {
   int keyPressed = e.getKeyCode();
   if (keyPressed == KeyEvent.VK_LEFT) {
    _block.moveLeft(); 
   }
   if (keyPressed == KeyEvent.VK_RIGHT) {
    _block.moveRight();
   } 
   _drawingPanel.repaint();
  }


오른쪽 방향키와 왼쪽 방향키를 누르면 block(막대기)를 오른쪽 또는 왼쪽으로 움직인다.

public void moveLeft(){
  int newX=_currentLocation-Constant.D_X;
  if (newX<0){
   _currentLocation=0;
  }else{
   _currentLocation=newX;
  }
  _movingBlock.setLocation(_currentLocation, _blockY);
 }

Comments