두더지 잡기

2023. 9. 4. 15:38java

개발 기간 : 2021.08 ~ 2021.10

 

 

java를 사용하여 Android 게임인 두더지 잡기를 개발하여 출시까지 해보았습니다

 

게임 로직 부분 :
private void enejwlmove() {
    if (delaytimesw == true) {
        enejwlm();
    }
}

private void enejwlmove1() {
    if (delaytime1sw == true) {
        enejwlm();
    }
}

private void enejwlmove2() {
    if (delaytime2sw == true) {
        enejwlm();
    }
}

// ...

private void enejwlm() {
    enejwl[rnum1] -= 70;
    enejwl[rnum2] -= 70;
    enejwl[rnum3] -= 70;
    cnt0 = 0;
    cnt1 = 0;
    cnt2 = 0;
    // ... (이하 생략)
}

private void enejwlmove1(int n) {
    enejwl[n] += 70;
}

private void timecheck() {
    time++;
}

private void countdown() {
    ctime--;
    if (stage == 1 || stage == 2 || stage == 3) {
        if (X >= -400) {
            X -= 0.2;
        } else {
            X = -400;
        }
        if (X <= 170) {
            X -= 0.2;
        } else {
            X = 170;
        }
    }
}

private void pluscount() {
    if (spe == 1) {
        X += 30;
        point += 30;
    }
    if (spe == 2) {
        X += 40;
        point += 40;
    }
    if (spe == 3) {
        X += 40;
        point += 60;
    }
}

게임 UI 및 사용자 입력 처리:

@Override
public boolean onTouchEvent(MotionEvent event) {
    // ... (터치 이벤트 처리 코드)

    return true;
}

백그라운드 스레드 관련 코드:

class BackThread extends Thread {
    public void run() {
        while (retry) {
            try {
                Handler1.sendEmptyMessage(0);
                Thread.sleep(5);
            } catch (InterruptedException e) {
                // ...
            }
        }
    }
}

Handler Handler1 = new Handler() {
    public void handleMessage(Message msg) {
        if (msg.what == 0) {
            // 게임 상태 업데이트 및 화면 다시 그리기
            invalidate();
        }
    }
};

 

해당 게임을 개발할때 가장 어려웠던 부분은 코드 부분이 아닌 이미지를 구하는 것이 가장 어려웠다고 생각합니다 왜냐하면 이미지를 구할때 해당 이미지 및 배경 음악에 대한 저작권이 가장 고려해야하는 부분이었기 때문에 이부분에서 자유로우면서 제가 생각하는 두더지에 맞는 이미지를 구하는 것이 많은 시간이 걸렸습니다

따라서 이 프로젝트를 하면서 제가 예전에 생각했던 두더지 게임이 작은 프로젝트임에도 불구하고 혼자서 하기에는 고려해야하는 상황이 적지 않게 발생하였기 때문에 다음에 다른 프로젝트를 할 때에도 이런 상황을 미리 생각하고 보완을 할 수 있을것같습니다