본문 바로가기
Java/Swing 미니프로젝트

[JAVA Project] 미니 프로젝트 리듬게임 만들기 1 - 창 생성과 배경화면 설정

by dev수니 2021. 4. 15.
반응형

 

 

 

 

자바 라이브러리만을 이용하여 리듬게임을 만들어 볼것이다.

 

 

 

창을 생성하고 창의 세부 설정을 해준 뒤 배경화면을 창 크기에 맞게 설정해 준 뒤 실행하는 동안 이미지가 계속 다시 불려와지도록 설정. (버퍼링방지)

 

 

게임을 실행하는 Main 클래스와 창을 생성할 DynamicBeat 클래스를 따로 만들어준다.

화면 크기는 1280 * 720 으로 설정,

 

해당 백그라운드 이미지는 아래에 첨부해놨다. 

 

 

 

Main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package beat;
 
public class Main {
    
    public static int SCREEN_WIDTH = 1280;
    public static int SCREEN_HEIGHT = 720;
    // 가로세로 세팅해준다.
    
    public static void main(String[] args) {
        new DynamicBeat();
        // DynamicBeat 객체세팅
    }
}
 
cs

DynamicBeat 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package beat1;
 
import java.awt.Graphics;
import java.awt.Image;
 
import javax.swing.ImageIcon;
import javax.swing.JFrame;
 
public class DynamicBeat extends JFrame {    // Jframe 라이브러리를 사용해준다.
    
    private Image screenImage;    
    private Graphics screenGraphic;
    // 더블 버퍼링을 위해 이미지를 화면에 담는 인스턴스
    
    private Image introbackground;
    // 이미지 파일을 담을 수 있는 객체 생성
    
    public DynamicBeat() {
        setTitle("DynamicBeat");
        // 타이틀 설정
        setSize(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
        // main에서 설정해준 가로세로 설정
        setResizable(false);
        // 한번 만들어진 게임창을 사용자가 줄이거나 늘릴수 없게함.
        setLocationRelativeTo(null);
        // 게임창이 컴퓨터의 정중장에 위치
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 게임창을 종료했을 때 프로그램 전체가 종료됨.
        setVisible(true);
        // 눈에 게임창이 보이게 함.
        
        introbackground = new ImageIcon(Main.class.getResource("../images/introbackground.jpg")).getImage();
        // main클래스 위치의 기반의 이미지 인스턴스를 변수에 초기화
    }
    
    public void paint(Graphics g) {    // 프로그램이 실행되는 순간 가장 첫번째로 화면에 그려지는 약속된 메서드
        screenImage = createImage(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);    // 크기만큼의 이미지를 만들고 변수에 넣어준다.
        screenGraphic = screenImage.getGraphics();    // 그래픽객체를 가져옴.
        screenDraw(screenGraphic);    
        g.drawImage(screenImage, 00null);    // 스크린 이미지가 화면 창에 그려짐
    }
    
    public void screenDraw(Graphics g) {
        g.drawImage(introbackground, 00null);  // 전체이미지에 그려질 수 있도록한다.
        this.repaint();    
        // 페인트함수를 다시 불러와 다시 화면에 그려줌. 프로그램이 실행되는 매 순간마다 프로그램이 종료되는 순간까지 반복됨.
        
    }
}
cs

 

 

 

자료 출처 : www.youtube.com/watch?v=WspD6v6CK4A&list=PLRx0vPvlEmdDySO3wDqMYGKMVH4Qa4QhR&index=3

www.wallpaperswide.com/

 

WallpapersWide.com - Free 4K & 8K UltraHD Desktop Backgound Wallpapers for UHD TV, Ultra Widescreen Desktop, Tablet, Smartphone

 

wallpaperswide.com

 

 

background.jpg
0.32MB

반응형

댓글