pygame(6)
-
Python) 골드 마이너 게임 만들어보기 (2) (pygame frame 이용)
집게의 움직임에 대해서 이해하는 데 정말 어려웠던 것 같아. 먼저 자연스러워 보이기 위해서 math.Vector2 를 이용해 거리를 두었어. 캐드의 offset 기능과 똑같아. 집게를 좌우로 회전시키기 위해서는 먼저 기준점이 필요해. 따라서 rect_center = self.position + self.offset 을 통해 기준점을 잡아줬어. update 함수 내에 self.rect 를 포함시키고, 그리고 self.rect = self.image.get_rect(center=rect_center)를 이용해 네모를 계속 업데이트해주는거지. 집게를 돌려주기 위해서 집게가 흔들리는 각도값을 임의로 10~170도 사이로 정해줬어. direction 함수 내에 LEFT=-1, RIGHT=1 을 정의해줌으로써 임의..
2022.07.11 -
Python) 골드 마이너 게임 만들어보기 (1) (pygame frame 이용)
안녕하세요. 이제부터는 출근해서 코딩도 하루에 많이는 못할 것 같네요. 그래도 꾸준히 할겁니다. 아자아자! 이번에는 캐릭터 등 스크린에 나오는 객체들을 class 함수로 정의하고 Spirte 를 상속받아 만드는 과정을 해봤어요. 기존 객체를 생성하는 방법은 character_size 를 통해 get_rect()함수를 통해 사이즈를 불러오고, 이 사이즈에서 나오는 튜플값을 바탕으로 캐릭터의 가로세로, 그리고 가로세로를 기반으로 xy 좌표를 그려줘서 객체를 생성했습니다. 또한 기존에는 이미지들을 불러올 때, 경로를 모두 써주었는데 이번에는 current_path 라는 변수값을 os.path.dirname(__file__) 로 할당시켜줬습니다. 즉 현재 파일 위치에 있는 이미지들을 불러오기 때문에, 더욱 편하..
2022.07.06 -
Python) 팡게임(Pang Game) 만들어보기 (pygame frame 이용)
팡게임이란 아래 이미지처럼, 끊임없이 튕겨지는 공들을 무기로 없애주는 게임입니다. 공들은 무기에 의해 타격될 때마다 이전 공의 반 사이즈로 줄어들며, 2개로 분열합니다. 그리고 세 번째로 분열된 공이 부서지면 공은 아예 없어지게 됩니다. 따라서 기존에 만들어 두었던 pygame frame 을 이용해서 만들어보겠습니다. 이 게임의 핵심은 무기와 공입니다. 무기가 '발사'되며, 발사된 무기에 타격된 공들은 두 개로 분열되며 좌우로 튕겨져나옵니다. 크기와 떨어지는 속도를 제외한 공들의 특성은 대부분 비슷합니다. 첫 번째 공을 포함해, 분열되는 네 번째 공까지 리스트로 묶습니다. 공들을 balls = [] 로 빈 리스트로 정의한 뒤, append 를 통해 공의 특성값들을 dictionary 로 정의해줍니다. 무..
2022.07.04 -
Python) 똥 피하기 게임 만들기 (pygame frame 이용)
앞서 만들었던 코드를 응용하여, 하늘에서 내리는 똥을 피하는 게임을 만들어보자. 말그대로 똥 피하기 게임이다. 기존 코드의 enemy란 변수값은 수정하지 않았으니, 이를 '똥'으로 생각해주자. random의 randrange 함수를 사용해서, 똥은 x 좌표 랜덤에서 생성되게 바꿔주었다. y 좌표는 0으로 두어 하늘에서 떨어지는 듯한 출력을 줄 수 있다. (pygame 좌표는 왼쪽 위가 0,0 이다) 또한 캐릭터는 좌우로밖에 이동하면 안되므로, y좌표를 아래에 고정시키고 아예 K_UP, K_DOWN 관련 함수를 모두 삭제하여 움직일 수 없게 만들었다. 또한 똥이 내리는 효과를 연출하기 위해서 enemy_y_pos에 프레임 수마다 y좌표값을 더해줌으로써 똥이 내리는듯한 연출을 표출할 수 있다. 그럼 이제 이..
2022.07.03 -
Python) 파이 게임 틀 만들기 2 (FPS, 타이머, 프레임, 텍스트)
https://sdcoding.tistory.com/60 Python) 파이 게임 틀 만들기 (프레임, 배경, 캐릭터, 키보드 설정) 유튜브 동영상을 참조해서 파이 게임 모듈을 갖고 프레임, 배경, 캐릭터, 키보드 설정까지 완료한 코드다. 파이게임 툴의 가장 신기한 것은 좌표값이다. 대부분 왼쪽 아래를 기준으로 (0,0)를 잡 sdcoding.tistory.com 저번에 쓴 글과 이어지는 내용이다. enemy 라는 객체를 추가했다. enemy 객체는 기존 character 의 코드를 그대로 따와서 만들었다. 수정한 값은 position 좌표값 정도다. 또한 충돌 처리를 위해 character와 enemy의 rect 정보를 업데이트한다. 그리고 두 객체가 충돌한다는 가정인 colliderect 함수를 이용..
2022.07.03 -
Python) 파이 게임 틀 만들기 (프레임, 배경, 캐릭터, 키보드 설정)
유튜브 동영상을 참조해서 파이 게임 모듈을 갖고 프레임, 배경, 캐릭터, 키보드 설정까지 완료한 코드다. 파이게임 툴의 가장 신기한 것은 좌표값이다. 대부분 왼쪽 아래를 기준으로 (0,0)를 잡는 것이 통상적이다. 하지만 여기서는 왼쪽 위를 (0,0)으로 잡고 y축 값이 증가할수록 우측 아래로 내려간다. 그래서 기존의 알고 있는 틀을 깨야되기 때문에 어려웠다. 기억하자 왼쪽 위가 (0,0)이고 오른쪽 그리고 아래로 갈수록 +값으로 증가한다. pygame.KEYDOWN 밑 pygame.K_LEFT / RIGHT / UP / DOWN 을 통해 각 방향키를 누를 때 일정 속도로 움직일 수 있게 두었다. 속도값을 5로 준 모습. 어.. 네모가 완전 정신없이 움직인다. 각 속도값을 1로 내리고 다시 시도해보니 그..
2022.07.03