본문 바로가기

개인프로젝트/리듬게임만들기

[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 2.게임 시작화면 개발하기

게임배경화면 이미지를 선정하고 images폴더를 생성해서 이미지를 저장합니다.

더블버퍼링은 예비버퍼를 사용하여 그래픽 데이터를 저장하여 필요한 부분을 끊어짐 없이 보여주는 것을 의미합니다. 이를 사용하여 게임 이미지를 깜빡임없이 그려낼 수 있습니다..

package dynamic_beat_2;

public class Main {
	public static final int SCREEN_WHIDTH = 1280;
	public static final int SCREEN_HEIGHT = 720;
	
	public static void main(String[] args) {
		new DynamicBeat();
	}
}

Main클래스

package dynamic_beat_2;

import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class DynamicBeat extends JFrame {
	
	private Image screenImage; // 더블버퍼링을 위한 인스턴스
	private Graphics screenGraphic; // 더블버퍼링을 위한 인스턴스
	
	private Image introBackground; // 배경이미지 객체
	
	public DynamicBeat() {
		setTitle("Dynamic Beat");
		setSize(Main.SCREEN_WHIDTH, Main.SCREEN_HEIGHT);
		setResizable(false);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
		introBackground = new ImageIcon(Main.class.getResource("../images/introBackground(Title).jpg")).getImage(); 
// 배경이미지를 가져온 후 인스턴스로 저장 후 초기화
	}
	
	public void paint(Graphics g) { 
		screenImage = createImage(Main.SCREEN_WHIDTH, Main.SCREEN_HEIGHT); // 화면창 이미지 생성
		screenGraphic = screenImage.getGraphics(); // 그래픽객체 가져오기
		screenDraw(screenGraphic);
		g.drawImage(screenImage, 0, 0, null);
	}
	
	public void screenDraw(Graphics g) { // 배경화면 그리는 메서드
		g.drawImage(introBackground, 0, 0, null);
		this.repaint(); //프로그램 종료 전 까지 반복생성 
	}
}

DynamicBeat클래스