개발공부

스타크래프트 제작

pumaclass 2024. 7. 17. 22:42

 

그냥 갑자기 유사 게임을 만들어보고 싶어졌다.

진짜 게임에 비하면 터무니없이 허접하지만 그래도 흥미가 동했다.

 

그래서 chatgpt랑 씨름을 했다

class를 활용해 시즈탱크와 마린의 이름, 체력, 공격력을 각각 정의한뒤 gpt의 지성을 기반으로 내 추측을 가미하여 제작했다.

 

우선 처음부터 되짚어보자.

public static void main 얘는 일단 이해하는것을 포기했다.

특강때는 이해할 수 있길 바라며...

 

Sigetank sigetank = new Sigetank 이 친구는 찬찬히 보니까 그냥 대문자든 소문자든

새로운 Sigetank 객체를 만들어 통합한다는 말 같다.

class에서 sigetank를 정의할때 하위 데이터들도 통합되는건 덤

 

while는 찾아보니 반복문이라던데 마린의 hp가 0이 될때까지 줘 팬다는건가? 이건 조금 무섭네

반복 안해도 되는데.. 굉장히 피곤하므로 다른 명령은 내일 찾아봐야지.

 

나를 괴롭히는 void가 또 나왔다.

gpt에게 물어보니까 또 외계어를 한다.

이해해보려 노력해봤지만 피곤에 쩌든 두뇌는 회복이 필요해요.

 

아무튼 void를 통해 attack이 정의되고 이 보이드는 시즈탱크 클래스에 묶여있으므로

누가는 필요없고 누구에게라는 정보만 필요한듯했다.

그래서 공격대상(Marine marine)만 정하면 되는거고

 

여기서 궁금한건 시즈탱크 class에 묶이지 않은 상태라면 "누가" 값을 어떻게 지정해줘야 하는걸까?

Sigetank -> Marine 이렇게?

 

marine.hp -= att;

마린의 체력 값을 가져와서 시즈탱크의 att값의 차를 구한다.

마린의 체력은 16, 시즈탱크의 공격력은 30이므로 -14라는 값이 나온다.

 

사실은 그 아래 if문에서 끝내려고 했다.

마린의 남은 체력이 0보다 크면 메세지 출력을 안하려 했고 0보다 낮거나 같으면 마린이 죽었다고 출력하려 했으나

저~ 위에 while문을 꼭 적어야 하더라.

안적으니까 오류 뿜뿜..

더 파보고 싶었는데 내 두뇌는 휴식이 필요해.

 

마무리

요즘 연습할때 복붙없이 무조건 손코딩으로 하다보니 발전하는게 느껴지긴한다.

막힐때만 gpt의 도움을 받는데 덕분에 while문을 알게되었다.

아직 이해는 못했지만..

 

그래도 이제 괄호를 빼먹는다던지 세미콜론 실수는 확실히 줄었다.

만세

 

만약 내가 게임 개발자였으면 온갖 커뮤니티에서 욕을 얻어먹었을것 같다.

시즈 한방에 마린이 명을 달리하는걸 보니 상상만으로 실소가 터져나온다.

 

실은 이 프로젝트 이후에 질럿으로 새로 만들다가 일단은 포기했다.

방어력 같은 복잡한 수식은 차치한다 해도 실드와 체력이 따로 있고

실드를 먼저 깎은 후 잉여 데미지로 체력을 깎는다는 발상을 당장은 실현하기 힘들기 때문

 

어떻게 하는걸까?

'개발공부' 카테고리의 다른 글

가위바위보  (5) 2024.07.22
스타 제작기  (0) 2024.07.20
와이어프레임과 css  (0) 2024.07.15
두번째 독학  (0) 2024.07.07
첫 독학  (1) 2024.07.04