티스토리 뷰

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

 

파이썬 게임만들기 pygame 1탄

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

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

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

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

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

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

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

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

 

지난 시간에는 무기를 만드는 방법을 해봤는데 이번에는 무기가 이동하는 것을 표현해보겠다. 그리고 장애물인 공도 이동하는 것을 표현하겠다.

 

 

100 무기는 여러개기 때문에 반복문을 해줘야 한다. 

즉 웨폰스에서 엑스좌표 와이 좌표를 가지고 와서 그려줘라.

 

87 무기가 위로 올라가는 것을 표현한다. 

화면에 그려지는 순서대로 표현이 되기 때문에 for웨폰  스테이지 위로 순서를 위로 올려준다. 

 

한줄 반복 표현을 통해서 한다. 웨폰스에 있는 값들을 하나씩 가지고와서 w에 저장해서 w의 기존 값을 0번째(엑스 좌표) 인덱스는 그대로 두고 1 인덱스(와이 좌표)-속도로 해준다. 즉 엑스 좌표는 놔두고 와이 좌표는 속도만큼 빼 줘라. 그리고  아래로 내려가면 블릿 함수가 있으니 속도만큼 빼 진 것이 다시 그려지게 되는 것 

 

93 대신 조건이 천장에 닿은것은 없애야 한다. 그래서 w [1]인 와이 좌표가 0보다 큰 것만 새로운 웨폰스에 웨폰스에 저장해서 화면을 나간 무기는 없애준다.  0보다 작은 것은 이미 화면 밖으로 나간 것이다. 그것은 표현하지 않는다. 

 

 

 

공만들기

 

 

57 공을 리스트로 만들어준다

64 그리고 공들의 크기별로 스피드가 다르므로 스피드로 리스트에 저장해준다

67 공들이 나뉘기 때문에 공들을 리스트로 정의해준다.

 

 

70 최초로 나오는 공을 볼스 리스트에 추가해준다. 공은 딕셔너리 형태로 저장이 된다. 공의 위치와 인덱스 그리고 이동방향과 속도를 설정해준다.

 

73 0번째 인덱스 공이 발생하는 위치를 정의해줌. 거 것이 포지션 엑스 와이이고 공의 이미지 인덱스는 0 가장 큰 것이니까 그리고 투엑스 투와이 이동방향을 정해줌.  

74 이동방향은 왼쪽 위에서 시작해서 오른쪽 아래로 내려오는 것으로 설정해준다.

76 스피드는 가장 큰 공이기 때문에 0번째 스피드를 가지고 온다. 



공 튀기기 : 공은 바닥

118 반복문에서 이뉴 얼 레이트는 볼스에 있는 볼들을 하나씩 가지고 와서 현재 몇번째 인덱스 인지와 그값을 출력해주는 것이다.

이뉴얼레이트는 출력이 인덱스와 값으로 나온다. 첫 번째 두 번째 인덱스 값은 아무렇게 나 써도 된다 어쨌건 첫 번째 변수 인덱스 값과 두번째변수 값에는 값이 나온다. 

공의 인덱스 번호 필요해서 이렇게 씀. 

 

 

119 그리고 볼의 엑스와이 좌표를 볼 포지션에 넣고 이미지 인덱스를 볼 이미지 인덱스에 넣어준다.

 

123 볼의 사이즈를 가지고 온다 볼마다 다르기 때문에 인덱스를 가지고 왔기 때문에 인덱스로 이미지를 가지고 와서 그것의 팩트 정보와 사이즈를 가지고 온다. 그럼 볼의 높이 넓이 가지고 올 수 있다. 

 

127 왼쪽 오른쪽 벽(가로 벽?)에 닿으면 볼이 밖으로 나가는지 확인한다. 그리고 벽에 부딪히면 반대로 튕겨져나가야 한다. 그럼 -1을 곱해줘서 표현한다. 

 

131 위아래(세로 벽?)에 닿으면 즉 공이 스테이지에 튕길 경우 (공 위벽에 튕기지는 않는다 위에서 와이 좌표 마이너스해주었기 때문에)  최초 속도를 와이 좌표(튕겨 올라가는 것을 그냥 이렇게 설정해준 듯)로 설정해준다는 것은 튕겨서 올라간다는 것이다. 그리고 +0.5 되면서 올라가는 양이 줄어들다가 0이 되면 내려오게 된다 

 

 

 

135 튕기지 않을 경우 플러스 0.5를 해줘서 처음에는 -18이었다가 0이 되었다가 +가되면서 포물선을 그리게 된다. 

 

138 엑스 좌표 와이 좌표를 수정해준다.



 

149 볼을 그려준다.