これはpygameの質問です。リストは基本的にユーザーのいる位置を保持しますが、長さが「x」のスネークではなく、ユーザーがどこからでも移動します。list.pop()メソッドを使用してリストの最後の項目を切り捨てると、インスタンスが「ポップ」しないのはなぜですか?
以下のコードを見つけてください。私はこの問題は主にポップが置かれている場所だと思いますが、私は確信が持てません。あなたがそう思うなら、単にCTRL + F「ポップ」
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()
あなたは私がポップをundraw勧めしますどのように、ありがとうワームの一部? – Louis93
元々あったものはすべて再描画できます。 – MRAB