총알 쏘기, 점수 획득

지난 2회차에 chatGPT로 갤러그 게임만들기 이어가 보겠습니다. 플레이어가 적에게 총알을 쏘면 총알이 화면에 표시되고 적에게 맞으면 점수를 더해주는 코드를 만들어 보도록 하겠습니다. 안 보신 분들은 아래 링크를 클릭하여 보고 오세요

이번 코드를 작성하기 위해서는 bullet이미지가 필요합니다. 저는 그림판을 이용하여 그려보았습니다.

이미지는 코드파일이 있는 디렉토리에 같이 저장해줍니다.

bullet.png

지난 회에 코드는 모두 나왔으나 일부 오류가 있어 총알에 화면에 표시되지 않았습니다.

코드를 자세히 들여다 보니 답이 나왔습니다.

bullet 화면에 그리는 부분

bullet을 화면에 그리는 부분 코드는 아무 문제가 없어보입니다.

그 다음 코드를 보니 문제가 확인되었습니다.

게임 객체 그리는 부분

여기서

screen.fill((0, 0, 0))

screen.blit(background_img, (0, 0))

이 코드는 화면을 검게 칠하고 배경이미지를 그려 주는 부분입니다

loop가 도는 동안 이부분이 반복되면서 화면을 지우고 다시 그려주는 것을 구현한 것인데

위에서 총알이 그려지자 마자 이 부분이 실행되며 화면이 지워지는게 문제였습니다.

그래서 총알을 그려주는 부분을 이 코드 밑으로 옮겨주었습니다.

bullet 그리는 코드 위치 변경

코드 위치를 바꿔주었더니 총알이 정상적으로 발사되었습니다.

스코어도 정상적으로 표시가 되었습니다.

전체코드를 첨부해 드립니다.

코드를 실행하여 게임을 테스트 해보겠습니다.

chatGPT게임

문제점을 찾자면…

chatGPT는 코드를 붙여넣기하면 검증해주는 기능이 있습니다. 하지만 코드의 구조적 문제만 검증해 줄 뿐이런 경우에는 사람이 직접 문제를 파악하고 코드를 수정해주어야 함을 알 수 있습니다.

지금 코드의 경우도 총알이 적과 충돌 후 사라지지 않는 문제가 있는데 그 부분은 보완하여 다음회에 이어서 작성토록하겠습니다.

http://deer.cafe24.com/?p=239

http://deer.cafe24.com/?p=260

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다