2016-11-20 7 views
0

私はpygameでクラスとサブクラスを使用する方法の一般的な説明が欲しいですか?pygameでsuper()._ init_はどのように動作しますか?

+0

スネークをセグメント/要素のリストとして保持する - すべての要素がその位置を保持する - 最初の要素はスネークヘッドです。蛇が動くと、リストの先頭に頭の新しい位置が追加され、最後の要素が削除され、蛇/リストの長さは同じになります。蛇が何かを食べると、リストから最後の要素を削除しないでください。この方法でヘビは長くなります。 – furas

答えて

0

セグメント/要素のリストとしてヘビを保持します。すべての要素はセグメント位置(x,y)を保持します。最初の要素はヘビの頭です。すなわち、

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

ヘビの動きは、あなたがリストの先頭にヘッドの新しい位置を追加し、あなたが最後の要素を削除する - と蛇/リストは、同じ長さを持っています。

蛇が何かを食べると、最後の要素をリストから削除しません。この方法でヘビは長くなります。

# 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() 
関連する問題