Это вопрос о пигмеях, и список в основном содержит позиции, в которых находился пользователь. Однако вместо того, чтобы быть змеей длины "x", он просто продолжается и продолжается с того места, где пользователь начинает.
Найдите код, размещенный ниже, я думаю, что проблема в основном в том, где размещается поп, но я не уверен. Если вы так думаете, просто нажмите CTRL + F "pop"
import pygame
running = 1
screen = pygame.display.set_mode((640,480))
clock = pygame.time.Clock()
UP = (0,-1)
DOWN = (0,1)
LEFT = (-1,0)
RIGHT = (1,0)
#Creating a worm
class WormFromTheFuture:
def __init__(self,initial_x,initial_y,wormlength):
self.x = initial_x
self.y = initial_y
self.length = wormlength
self.body = []
self.dirx = 1
self.diry = 1
def worm_assignment (self, arbtry):
self.dirx, self.diry = arbtry
def worm_moves (self):
self.x += self.dirx
self.y += self.diry
def worm_draw (self, surface):
self.body.insert(0, (self.x,self.y))
if len(self.body) > self.length:
self.body.pop()
for x,y in self.body:
surface.set_at((x,y), (255,255,255))
wormy = WormFromTheFuture (320,240,10)
while running:
wormy.worm_draw(screen)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = 0
pygame.quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP: wormy.worm_assignment (UP)
if event.key == pygame.K_DOWN: wormy.worm_assignment(DOWN)
if event.key == pygame.K_RIGHT: wormy.worm_assignment(RIGHT)
if event.key == pygame.K_LEFT: wormy.worm_assignment (LEFT)
wormy.worm_moves()
clock.tick(100)
pygame.display.flip()