- [Java] 70. Swing: 버블버블 게임 만들기(1)2024년 05월 02일
- Song hyun
- 작성자
- 2024.05.02.:53
728x90반응형[Java] 70. Swing: 버블버블 게임 만들기(1)
자바의 GUI Swing을 사용해 버블버블 게임을 구현해보자.
1. 목차
(1) Moveable 인터페이스 구현하기
(2) Player 클래스 및 메서드 구현하기
(3) BubbleFrame 내에서 배경 및 캐릭터 동작 구현하기 (좌,우,상 움직임)
(4) GameTest1에서 시험해보기
*Player 클래스와 BubbleFrame 클래스는 포함 관계이다.
2. 구현해야 할 동작들
(1) Moveable 인터페이스 구현하기
-Player 클래스(플레이어 캐릭터)에서 필수적으로 구현해야 하는 메서드들을 선언해보자.
-right()/left()/up()
(2) Player 클래스 및 메서드 구현하기
-
(3) BubbleFrame 내에서 배경 및 캐릭터 동작 구현하기 (좌,우,상 움직임)
-생성자: 객체 생성시 initData()/setInitLayout()/addEventListener() 동작하도록 메서드 선언
-initData() 메서드:
-setInitLayout() 메서드:
-addEventListener() 메서드:
(4) GameTest1에서 시험해보기
-new BubbleFrame();을 통해 작성한 코드들을 실행해보자.
3. 코드 블록
(1) GameTest1 : 코드 실행
(2) BubbleFrame : 프레임
(3) Player : player 객체 및 메서드 생성 (moveable 구현)
(4) Moveable : 인터페이스
package BubbleBubble.test.ex01; public class GameTest1 { public static void main(String[] args) { new BubbleFrame(); } }
package BubbleBubble.test.ex01; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class BubbleFrame extends JFrame { private JLabel backgroundMap; private Player player; public BubbleFrame() { initData(); setInitLayout(); addEventListener(); } private void initData() { backgroundMap=new JLabel(new ImageIcon("img/backgroundMap.png")); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Frame --> root Panel setContentPane(backgroundMap); setSize(1000,640); player = new Player(); } private void setInitLayout() { // 좌표값으로 배치 setLayout(null); setResizable(false); // 프레임 조절 불가 setLocationRelativeTo(null); // JFrame을 여러분 모니터 가운데에 자동 배치 setVisible(true); add(player); } private void addEventListener() { this.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { System.out.println("key code : "+e.getKeyCode()); switch(e.getKeyCode()) { case KeyEvent.VK_LEFT: player.left(); break; case KeyEvent.VK_RIGHT: player.right(); break; case KeyEvent.VK_UP: player.up(); break; } } //end of key pressed }); // end of keyAdapter } }
package BubbleBubble.test.ex01; import javax.swing.ImageIcon; import javax.swing.JLabel; public class Player extends JLabel implements Moveable { private int x; private int y; private ImageIcon playerR, playerL; public Player() { initData(); setInitLayout(); } private void initData() { playerR=new ImageIcon("img/playerR.png"); playerL=new ImageIcon("img/playerL.png"); // 처음 실행 시 초기 값 셋팅 x = 55; y = 535; setIcon(playerR); this.setSize(50,50); setLocation(x,y); } private void setInitLayout() { } @Override public void left() { setIcon(playerL); x=x-10; setLocation(x,y); } @Override public void right() { setIcon(playerR); x=x+10; setLocation(x,y); } @Override public void up() { setIcon(playerR); y=y-10; setLocation(x,y); } @Override public void down() { // TODO Auto-generated method stub } }
package BubbleBubble.test.ex01; public interface Moveable { // public abstract 생략 가능 public abstract void left(); public abstract void right(); public abstract void up(); public abstract void down(); }
728x90반응형'Java > 자바 Swing' 카테고리의 다른 글
[java] 72. Swing: 버블버블 게임 만들기(3) (0) 2024.05.02 [Java] 71. Swing: 버블버블 게임 만들기(2) (0) 2024.05.02 [Java] 66. Swing: 랜덤 숫자 게임 만들기 (0) 2024.04.30 [Java] 65. Swing: 키보드 리스너 응용하기 (0) 2024.04.30 [Java] 64. Swing: 키보드 리스너 (0) 2024.04.30 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)