유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다.
IDE : IntelliJ
언어 : Java 8
스프링부트 버전 : 2.7.13
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
캐릭터를 좌우로 움직이게 해봤으니 이제 점프를 하게 해보자
player 클래스에서 속도와 점프속도를 상수로 만들어준다.
left/right에서 x좌표를 x=x-SPEED로 수정해준다.
이제 up을 수정해줄 건데 아래와 같이 수정해준다.
boolean 인 up을 false 에서 true 로 값을 변경해주고
while 문이 아닌 for 문으로 점프 했을때 적정값을 찾아서 지정해주어야 하는데 이번 프로젝트에선 130을 기준으로 하고
130을 JUMPSPEED로 나눈 값으로 i 를 반복해준다.
그 후 변경된 y값을 setLocation으로 지정해주고 각 스레드별로 0.01초의 텀을 준다.
for 문이 종료된 후 true였던 up을 다시 false로 변경한 후 down 메서드를 호출해준다.
@Override
public void up() {
System.out.println("up");
up = true;
new Thread(()->{
for (int i = 0; i < 130/JUMPSPEED; i++) {
y = y-JUMPSPEED;
setLocation(x,y);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
up = false;
down();
}).start();
}
같은 방법으로 down 메서드도 작성해준다.
y값을 + 해준다는 것과 for 문 종료 후 up 메서드를 호출하지 않는다는 것을 제외하고는 up메서드와 동일하다
@Override
public void down() {
System.out.println("down");
new Thread(()->{
for (int i = 0; i < 130/JUMPSPEED; i++) {
y = y+JUMPSPEED;
setLocation(x,y);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
down = false;
}).start();
}
BubbleFrame으로 이동해서 키를 눌렀을때 메서드인 keyPressed 메서드에서 up부분을 아래와 같이 수정해준다.
캐릭터가 점프하고 있지 않거나 / 아래로 떨어지고 있는 경우가 아닐때 캐릭터를 점프하도록 작성해준다.
프로그램을 실행해보면 캐릭터가 점프하고 자연스럽게 아래로 떨어지는걸 확인할 수 있다.
'프로젝트 > 버블버블게임 만들기' 카테고리의 다른 글
[버블버블게임만들기] 6. 스레드로 벽 감지해서 충돌방지하기(2) (0) | 2023.08.01 |
---|---|
[버블버블게임만들기] 5. 스레드로 벽 감지해서 충돌방지하기(1) (0) | 2023.08.01 |
[버블버블게임만들기] 3. 스레드를 사용해서 캐릭터 좌우로 움직이게하기 (0) | 2023.07.31 |
[버블버블게임만들기] 2. 캐릭터 좌우로 움직이게하기 (0) | 2023.07.29 |
[버블버블게임만들기] 1. 게임맵과 케릭터 넣기 (0) | 2023.07.29 |
댓글