2014-11-16 23 views
0

注 - 這個遊戲是使用pygame的Python的 - 我的蛇遊戲中的錯誤,我想不通

我有此蛇遊戲和除了一件事一切工作完全製造。 有時,當蛇吃蘋果時,蘋果不會重新產卵。我認爲這可能發生在蘋果在蛇內產卵時,但我寫了一些代碼來檢查蘋果是否會在蛇中產卵,如果是這樣,請選擇不同的位置。也許我做錯了?!

+1

你可以使用調試器,並在蘋果被吃掉時停下來,然後按照代碼看看爲什麼沒有蘋果重新生成。 – Trilarion

+0

我不知道如何去使用調試器,如果有人在代碼中發現問題會更好,但是謝謝! :) – Tizer1000

+0

我真的可以推薦學習如何調試。有了許多IDE,它非常簡單,它將在未來幫助你解決很多問題。 – Trilarion

回答

0

該錯誤發生在get_food_position()函數的food.py源代碼文件中。具體有以下行導致你的錯誤:

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

當你觀察蘋果不會重新產卵,那是因爲你設置的元組self.apple_pos是你的可視區域之外。你必須記住,蘋果有高度和寬度,所以它不能被繪製在你的可視區域的極端。您可以通過強制設置self.apple_pos = (1280,720),然後再次將其設置爲(1260,700)來證明這一點。

以下修正你的代碼解決了這個問題:

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

我選擇了一個神奇的數字20,因爲你的蘋果似乎有面積20×20像素。

你會注意到在(0,0)處繪製蘋果沒有這個問題,因爲蘋果是由它自己的(0,0)座標放置的,這是它的左上角。

+0

昨晚我實際上已經想到了我自己,但也非常感謝您的關注! :) – Tizer1000