주를 알아낼 수 없습니다 내 뱀 게임 버그 -이 게임은 내가이 뱀 게임을 한 모든 것을 한 가지를 제외하고 완벽하게 작동되는 파이 게임파이썬 - 내가
를 사용한다. 가끔 뱀이 사과를 먹으면 사과가 다시 산란하지 않습니다. 나는 이것이 사과가 뱀 내부에서 생성 될 때 일어날 것이라고 생각하지만 사과가 뱀에서 산란하는지 그리고 그렇게한다면 다른 위치를 선택 하는지를 확인하기위한 코드를 썼다. 어쩌면 내가 잘못 했니?!
주를 알아낼 수 없습니다 내 뱀 게임 버그 -이 게임은 내가이 뱀 게임을 한 모든 것을 한 가지를 제외하고 완벽하게 작동되는 파이 게임파이썬 - 내가
를 사용한다. 가끔 뱀이 사과를 먹으면 사과가 다시 산란하지 않습니다. 나는 이것이 사과가 뱀 내부에서 생성 될 때 일어날 것이라고 생각하지만 사과가 뱀에서 산란하는지 그리고 그렇게한다면 다른 위치를 선택 하는지를 확인하기위한 코드를 썼다. 어쩌면 내가 잘못 했니?!
버그는 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)
좌표로 사과를 배치했기 때문에이 문제가 발생하지 않습니다.
지난 밤에 내 자신을 위해이 사실을 알았지 만,보기에도 많이 감사합니다! :) – Tizer1000
사과를 먹었을 때 디버거를 사용하고 중단 한 다음 코드를 따라 사과가 다시 발생하지 않는 이유를 확인할 수 있습니다. – Trilarion
디버거를 사용하는 방법을 모르겠다. 누군가 코드에서 문제를 발견했지만 도움이된다면 좋을 것이다. :) – Tizer1000
디버깅 방법을 배우는 것이 좋습니다. 많은 IDE를 사용하면 정말 간단하며 앞으로 문제가 발생할 때 많은 도움이됩니다. – Trilarion