2016-11-20 86 views
0

我只想對如何在pygame中使用類和子類的一般性解釋?super()._ init_如何在pygame中工作?

+0

保持蛇作爲其片段/元素列表 - 每個元素保持其位置 - 第一個元素是蛇頭。當蛇移動時,你在列表開始處追加頭部的新位置,並移除最後一個元素 - 而蛇/列表具有相同的長度。當蛇吃東西時,一旦你不從列表中刪除最後一個元素。這種方式蛇更長。 – furas

回答

0

將蛇保留爲其分段/元素的列表。每個元素保持段位置(x,y)。第一個元素是蛇頭。即。

snake = [(10,10), (11,10), (12,10)] 

當蛇動作,那麼你在追加列表的開頭頭的新位置,並刪除最後一個元素 - 蛇/列表具有相同的長度。

# new head position 
snake.insert(0, (9,10)) 

# remove tail  
snake.pop() 

當蛇吃東西時,你不會從列表中刪除最後一個元素。這種方式蛇更長。

# init data 
make_longer = False 

... 

# snake eat sothing 
make_longer = True 

... 

# new head position 
snake.insert(0, (9,10)) 

# remove tail  
if make_longer: 
    # skip removing last element once 
    make_longer = False 
else: 
    snake.pop() 

如果您想讓更多的元素多於一個元素,那麼不要多次刪除最後一個元素。

# init data 
make_longer = 0 

... 

# snake eat sothing 
# make_longer = 3 
make_longer += 3 # better when snake eats more apples in short time 

... 

# new head position 
snake.insert(0, (9,10)) 

# remove tail  
if make_longer > 0: 
    make_longer -= 1 
else: 
    snake.pop()