2014-11-16 5 views
0

주를 알아낼 수 없습니다 내 뱀 게임 버그 -이 게임은 내가이 뱀 게임을 한 모든 것을 한 가지를 제외하고 완벽하게 작동되는 파이 게임파이썬 - 내가

를 사용한다. 가끔 뱀이 사과를 먹으면 사과가 다시 산란하지 않습니다. 나는 이것이 사과가 뱀 내부에서 생성 될 때 일어날 것이라고 생각하지만 사과가 뱀에서 산란하는지 그리고 그렇게한다면 다른 위치를 선택 하는지를 확인하기위한 코드를 썼다. 어쩌면 내가 잘못 했니?!

+1

사과를 먹었을 때 디버거를 사용하고 중단 한 다음 코드를 따라 사과가 다시 발생하지 않는 이유를 확인할 수 있습니다. – Trilarion

+0

디버거를 사용하는 방법을 모르겠다. 누군가 코드에서 문제를 발견했지만 도움이된다면 좋을 것이다. :) – Tizer1000

+0

디버깅 방법을 배우는 것이 좋습니다. 많은 IDE를 사용하면 정말 간단하며 앞으로 문제가 발생할 때 많은 도움이됩니다. – Trilarion

답변

0

버그는 food.py 소스 코드 파일의 get_food_position() 함수에 있습니다. 특히 다음 줄이 버그의 원인이되는 : 당신이 볼 수있는 영역 외부로 튜플 self.apple_pos를 설정하고 있기 때문에 당신이 사과하지 다시 산란을 관찰 할 때

self.apple_pos = (random.randint(self.WIDTH-self.WIDTH, self.WIDTH), random.randint(self.HEIGHT-self.HEIGHT, self.HEIGHT)) 

, 즉이다. 사과는 높이와 너비가 있다는 것을 기억해야하므로 볼 수있는 영역의 가장 극단적 인 곳에서는 그릴 수 없습니다. self.apple_pos = (1280,720)을 강제로 설정 한 다음 (1260,700)으로 다시 설정하여이를 증명할 수 있습니다.

코드에 다음의 보정 문제를 해결 : 당신의 사과 영역을 20 × 20 픽셀을 갖고있는 것 같아요 때문에

self.apple_pos = (random.randint(0, self.WIDTH-20), random.randint(0, self.HEIGHT-20)) 

내가 매직 넘버 20을 선택했다.

애플은 (0,0)에 사과를 그리는 데 왼쪽 상단 구석 인 (0,0) 좌표로 사과를 배치했기 때문에이 문제가 발생하지 않습니다.

+0

지난 밤에 내 자신을 위해이 사실을 알았지 만,보기에도 많이 감사합니다! :) – Tizer1000