super()._ init_如何在pygame中工作?

时间:2016-11-20 05:18:45

标签: pygame

我想要一个关于如何在pygame中使用类和子类的一般解释?

1 个答案:

答案 0 :(得分: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()