노트가 떨어지는 애니메이션을 구현하기 위해 노트 클래스를 만듭니다.
ArrayList<Note> noteList = new ArrayList<Note>(); // 노트 배열 생성
for(int i = 0; i < noteList.size(); i++) // 노트리스트 노트 출력
{
Note note = noteList.get(i);
note.screenDraw(g);
}
public void dropNotes(String titleName) { // 떨어지는 노트 메소드
Note note = new Note(228, "Space");
note.start();
noteList.add(note);
}
package dynamic_beat_13;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
public class Note extends Thread {
private Image noteBasicImage = new ImageIcon(Main.class.getResource("../images/noteBasic")).getImage(); // 노트이미지
private int x, y = 580 - 1000 / Main.SLEEP_TIME * Main.NOTE_SPEED;
// 1초뒤에 판정 라인에 노트 이미지 위치
private String noteType;
public Note(int x, String noteType) { // 노트 생성자
this.x = x; // 좌표 초기화
this.noteType = noteType;
}
public void screenDraw(Graphics2D g) { // 노트 이미지
if(!noteType.equals("Space")) {
g.drawImage(noteBasicImage, x, y, null);
}
else { // Space 노트 이미지
g.drawImage(noteBasicImage, x, y, null);
g.drawImage(noteBasicImage, x + 100, y, null);
}
}
public void drop( ) {
y += Main.NOTE_SPEED; // y좌표 변경으로 떨어지는 노트 속도
}
@Override
public void run() { // 1초에 100번 실행되는 쓰레드
try {
while (true) { // 무한반복
drop();
Thread.sleep(Main.SLEEP_TIME); // 0.01초 주기
}
} catch(Exception e) {
System.err.println(e.getMessage());
}
}
}
'개인프로젝트 > 리듬게임만들기' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 15.노트 판정 함수 (0) | 2024.02.19 |
---|---|
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 14. 박자에 맞추어 노트 찍기 (1) | 2024.02.18 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 12.개별게임 곡 재생하기 (1) | 2024.02.16 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 11.키보드 입력 이벤트 리스너 (1) | 2024.02.15 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 10.게임화면 디자인 (1) | 2024.02.14 |