개발/Python

python 첫번째 게임 cave - 캐릭터 조작 게임로직

huiyu 2020. 3. 22. 17:00


https://huiyu.tistory.com/entry/python-첫번째-게임-만들기-cave-pythonpygame-기초-코드이해

 

python 첫번째 게임 만들기 - cave, python/pygame 기초 코드이해

python + pygame 환경구축 https://huiyu.tistory.com/entry/Python-Pygame-환경구축-Window10-VS-code?category=767379 Python + Pygame 환경구축 (Window10 / VS code) 시작->cmd로 명령 프롬프트 실행, python..

huiyu.tistory.com

기본적인 python/pygame 코드설명은 위 링크에 설명되어 있습니다. 

게임을 구성하는 큰 로직은 크게 두개로 나눠져있다.
실제 사용자가 캐릭터를 컨트롤하는 부분과 사용자가 컨트롤하는 맵을 생성하는 부분.

이 두개를 구현하고 score 계산과 둘이 충돌 날때 게임 종료조건을 추가하면 된다.

게임코드->
https://github.com/huiyueun/PythonGame/blob/master/cave.py

 

huiyueun/PythonGame

Contribute to huiyueun/PythonGame development by creating an account on GitHub.

github.com

Player 로직

우선 Player의 캐릭터는 두개의 이미지로 구성되어 있다. 캐릭터 이동시 모습과 충돌시 폭팔하는 이미지.

위 두이미지를  pygame image load 함수를 사용하여 로드한다.

다음 불러온 이미지를 화면에 그려준다.
blit api를 사용하면 생성해둔 SURFACE에 이미지를 원하는 위치에 그릴 수 있다(ship_y=250, 화면 중간)

여기까지 구현하면 쉽게 화면에 이미지를 그릴 수 있다.

게임에서 캐릭터의 로직은 기본 입력이 없을때 바닥으로 추락한다는 것이다. 기본 화면 갱신할때 y값을 증가시켜주면 된다. (좌측상단이 0,0이며, y값이 커질수록 이미지는 아래로 내려간다.)

메인루프에서 아래 코드를 추가한다.

ship_y += 3

위와같이 코드를 작성하면 캐릭터는 아래로 내려가게 된다.
아래로만 이동하던 캐릭터를 키 입력이 들어오면 위로 이동하게 바꾸자.

지난 포스팅에서 설명했던 키입력코드에서 K_SPACE(스페이스키)입력이 들어왔음을 알수 있는 is_space_down 변수를 선언한다. 이 변수는 아무런 입력이 없으면 false, 키 입력이 들어오면 true로 설정되어 캐릭터의 움직임값에 변화를 주도록 한다.

이제 이 변수로 캐릭터 움직임 설정.
is_space_down이 true(키 입력이 들어오면)이면, -3값을 설정하여 캐릭터가 위로 올라가고 아무런 입력이 상태인 false이면 3이 설정되어 캐릭터가 아래로 내려가게 된다. 이로써 캐릭터 움직임 설정하는 로직은 구현 끝! 엄청간단하다.

y = value1 if (조건문) else value2
 -> 조건문이 참이면 value1설정, 아니면 2를 설정한다.

 

 

728x90
반응형