완전히 처음부터 시작하는 보드 게임의 프로그래밍과 기계 학습 [6 일째]
마지막 회복
완전히 처음부터 시작하는 보드 게임 프로그래밍 및 기계 학습 [5 일] - Qiita
9개월 만에 프로젝트를 재개했습니다. 과연 어디까지 도달할 수 있을까…
PyCharm과 Github의 협력
본격적으로 프로그램을 써 가는 것으로 IDE는 PyCharm을 도입했습니다.
그리고는 버전 관리를 위해 Github와 연계시켜 보았습니다. 소스를 클라우드 관리하면 어떤 환경에서도 액세스할 수 있어 정말 편리하네요.
PyCharm에서 GitHub로 연결 - Qiita
조작은 특히 문제없이 직관적으로 가능하네요. 단지 처음은 Git가 메뉴에 보이지 않고 왕생했습니다. VCS 메뉴에서 활성화하고 Git 자체를 로컬에 설치하지 않으면 안됩니다. 당연하다면 당연한가. .
우선 화면에 타일을 표시해 본다
그럼, 막판 게임의 구현에 착수해 보겠습니다. 재현하는 게임은 「카르카손느」라고 불리는 타일과 말을 사용한 명작입니다. 타일을 표시하지 않으려면 시작되지 않으므로 먼저 시작 타일 한 장을 창에 표시해 보겠습니다.
이런 일은 없는 프로그램입니다만 이것만으로도 게임 같은 느낌이 있어 조금 감동합니다. 보드를 관리하기 쉽게 그리드를 당겨 각각 사각형의 도형 그리기를 실시하고 있습니다.
(x,y) = (2,2) #タイル座標
start_tile = pygame.image.load("tile.png").convert_alpha() # タイル画像読み込み
rect_start_tile = start_tile.get_rect() # 画像領域取得
rect_start_tile.center = (100*x+50, 100*y+50) # 座標からタイル位置補正
screen.blit(start_tile, rect_start_tile) # 画像の描画
왼쪽 상단의 그리드를 (0,0) 좌표로 보드를 관리하고 있습니다. 스타트 타일은 (2,2)로서 윈도우내의 좌표에 보정해 표시시키고 있습니다. 특히 어려운 일은 없다. 타일의 회전 등을 어떻게 관리해 나갈지는 향후의 과제군요.
타일의 클릭 판정
이어 간이 되는 타일의 클릭 판정도 만들어 보았습니다.
if (event.type == pygame.MOUSEBUTTONDOWN) and (event.button == 1) : #クリックイベント取得
if rect_start_tile.collidepoint(event.pos): # タイルの領域をクリック
print("hit")
else:
print("out") # タイル外をクリック
타일을 클릭하면 hit가 표시되고 타일 밖이면 out이 표시됩니다. 실제로 게임 안에 배치되어 있는 타일을 클릭하는 것은 없다고 생각합니다만, 게임의 조작으로서 유사한 처리는 필요하게 될 것이므로 시험해 본 느낌입니다. 아래를 참고로하겠습니다.
Python - pygame 이미지 범위 클릭 | teratail
향후 예정
그럼, 막판 게임의 구현에 착수해 보겠습니다. 재현하는 게임은 「카르카손느」라고 불리는 타일과 말을 사용한 명작입니다. 타일을 표시하지 않으려면 시작되지 않으므로 먼저 시작 타일 한 장을 창에 표시해 보겠습니다.
이런 일은 없는 프로그램입니다만 이것만으로도 게임 같은 느낌이 있어 조금 감동합니다. 보드를 관리하기 쉽게 그리드를 당겨 각각 사각형의 도형 그리기를 실시하고 있습니다.
(x,y) = (2,2) #タイル座標
start_tile = pygame.image.load("tile.png").convert_alpha() # タイル画像読み込み
rect_start_tile = start_tile.get_rect() # 画像領域取得
rect_start_tile.center = (100*x+50, 100*y+50) # 座標からタイル位置補正
screen.blit(start_tile, rect_start_tile) # 画像の描画
왼쪽 상단의 그리드를 (0,0) 좌표로 보드를 관리하고 있습니다. 스타트 타일은 (2,2)로서 윈도우내의 좌표에 보정해 표시시키고 있습니다. 특히 어려운 일은 없다. 타일의 회전 등을 어떻게 관리해 나갈지는 향후의 과제군요.
타일의 클릭 판정
이어 간이 되는 타일의 클릭 판정도 만들어 보았습니다.
if (event.type == pygame.MOUSEBUTTONDOWN) and (event.button == 1) : #クリックイベント取得
if rect_start_tile.collidepoint(event.pos): # タイルの領域をクリック
print("hit")
else:
print("out") # タイル外をクリック
타일을 클릭하면 hit가 표시되고 타일 밖이면 out이 표시됩니다. 실제로 게임 안에 배치되어 있는 타일을 클릭하는 것은 없다고 생각합니다만, 게임의 조작으로서 유사한 처리는 필요하게 될 것이므로 시험해 본 느낌입니다. 아래를 참고로하겠습니다.
Python - pygame 이미지 범위 클릭 | teratail
향후 예정
if (event.type == pygame.MOUSEBUTTONDOWN) and (event.button == 1) : #クリックイベント取得
if rect_start_tile.collidepoint(event.pos): # タイルの領域をクリック
print("hit")
else:
print("out") # タイル外をクリック
게임에 필요한 요소를 철저히 구현합니다.
이번 되돌아
Reference
이 문제에 관하여(완전히 처음부터 시작하는 보드 게임의 프로그래밍과 기계 학습 [6 일째]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Coshian23/items/7e67a7ec054a23860d1a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)