package dynamic_beat_11;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class KeyListener extends KeyAdapter {
// 키보드 이벤트 클래스
@Override
public void keyPressed(KeyEvent e) { // 키 이벤트 감지
if(DynamicBeat.game == null) {// 현재 게임이 진행되지 않는다면 함수종료
return;
}
if(e.getKeyCode() == KeyEvent.VK_S) { // 누른 키 S 감지
DynamicBeat.game.pressS(); // pressS메소드 작동
}
.
.생략
.
}
@Override //키를 떼었을 때 이벤트 처리
public void keyReleased(KeyEvent e) {
if(DynamicBeat.game == null) {
return;
}
if(e.getKeyCode() == KeyEvent.VK_S) { // 떼는 키 S 감지
DynamicBeat.game.releaseS(); // releaseS메소드 작동
}
.
.생략
.
}
하나의 게임이 하나의 단위로 다뤄질 수 있도록 게임 클래스를 만들어서 관리합니다.
package dynamic_beat_11;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class Game extends Thread {
private Image noteBasicImage = new ImageIcon(Main.class.getResource("../images/noteBasic.png")).getImage();
private Image noteRouteLineImage = new ImageIcon(Main.class.getResource("../images/noteRouteLine.png")).getImage();
.
.생략
.
private Image noteRouteKImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteLImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
// 노트경로이미지 변수 생성
public void screenDraw(Graphics2D g) {
g.drawImage(noteRouteSImage, 228, 30, null);
.
.생략
.
g.drawString("000000", 565, 702);
}
public void pressS() { // 버튼 이벤트 기능 메소드
noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage(); // Press이미지 반응
new Music("drumSmall1.mp3", false).start(); // 버튼 효과음
}
public void releaseS() {// 버튼 해제 이벤트 기능 메소드
noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressD() {
noteRouteDImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
.
.생략
.
@Override // 쓰레드 메소드
public void run() {
}
}
'개인프로젝트 > 리듬게임만들기' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 13.노트 이동 애니메이션 (0) | 2024.02.17 |
---|---|
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 12.개별게임 곡 재생하기 (1) | 2024.02.16 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 10.게임화면 디자인 (1) | 2024.02.14 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 9.뒤로가기,리팩토링 (0) | 2024.02.13 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 8.게임화면으로 이동하기 (0) | 2024.02.13 |