티스토리 뷰

파이썬 게임 만들기 8탄, 무기와 장애물의 충돌처리

 

파이썬 게임만들기 pygame 1탄

파이썬 게임만들기 2탄 배경넣기

파이썬 게임만들기 3탄, 캐릭터 움직이기

파이썬 게임만들기 4탄, 충돌처리하기

파이썬 게임만들기 5탄, 게임 기본 프레임만들기

파이썬 게임만들기 6탄, 무기 만드는 방법

파이썬 게임만들기 7탄, 장애물 이동하기

파이썬 게임만들기 8탄, 무기와 장애물의 충돌처리

파이썬 게임만들기 9탄, 종료하기

게임 종료(캐릭터가 공에 맞았을 때 종료, 모든 공을 없애는 경우, 시간을 99로 초과 시 게임 종료)

87 폰트 정보를 입력한다. 

91 게임 결과 



247 모든 공을 없애면 볼스의 길이는 0이 되고 그럼 게임 종료시킴




262 업데이트 위에서 시작함 경과 시간 계산 : 전체 시간에서 지난 시간 빼줌 

경과 시간은 지금 시간에서 시작 시간을 빼줌. 

그리고 타이머를 폰트 설정해주고 그려줌. 10,10 위치에 

 

272 시간 초과하면 게임 결과를 타임 오버라고 출력함. 

278 게임 오버 메시지를 빌트 시켜야 됨. 위치하고 색 정해주면 됨. 

인트로 바꾸는 이유는 소수점을 정수로 바꾸어 준다. 

그리고 업데이트를 해줘야지 반영이 된다. 

 

285 메시지 업데이트하고 꺼지는 것 방지하기 위해서 기다려준다. 

 

 

오류 




3번째 무기로 치면 왼쪽은 나오는데 오른쪽은 안 나오고 3번째 무기도 안 없어짐.











3번째가 충돌했을 때 

 

브레이크로 222에서 빠져나와야 되는데 안쪽의 반복문에서 빠져나온 것이라 2번 빠져나와 된다. 

그래서 if else 하는 것처럼 for else: 문도 있음, 포문에서 브레이크하고 그 밖에 것은 컨티뉴로 계속 반복 값이 있으면 브레이크하고 또 브레이크 하게 만듦. 

 

 

포문이 2개인데 브레이크가 1개이다. 즉 하나의 포문에서만 빠지게 된다. 그래서 작은 공이 3번째 크기 공 나뉘면 4번째 2개가 아니고 3번째 1개와 4번째 생김.



브레이크 되면 엘스도 실행 안 함. 포문 밖으로 나감!! 



끝.





그밖에 또 만들면 재밌을 것 같은 게임들

 

https://www.youtube.com/playlist?list=PLMsa_0kAjjrdqJ1rJba9MFWYv-GHluK4_

 

 

3개 더 만들어보기!

 

간단한 슈팅게임들도 만들어보기



https://www.youtube.com/watch?v=KCF2I0CyhD0&list=PLz2iXe7EqJOMp5LozvYa0qca9E4OBkevW&index=17

 




 



이건 클래스를 이용해서 만듦

 

 

참고하면 좋은 사이트

https://www.pygame.org/project/1045



무한 배경 있고

처음 세팅 화면 있고

다음 스테이지로 넘어가는 것도 있음

https://www.youtube.com/watch?v=pGC2lRAi65s