私はゲームを作ろうとしていましたが、アニメーションを動かすことができません。ゲームを起動すると、すべての画像がその上にロードされ、アニメーション化されません。 は、ここに私のコードです:PythonでPythonでアニメーションを作成する
import pygame
import os
pygame.init()
width = 800
height = 600
ship_width = 56
ship_height = 64
disp = pygame.display.set_mode((width,height))
pygame.display.set_caption("space_game")
clock = pygame.time.Clock()
background = pygame.image.load(os.path.join("Backgrounds", "Space.png"))
img_names = ["sprite_00.png", "sprite_01.png", "sprite_02.png", "sprite_03.png", "sprite_04.png", "sprite_05.png", "sprite_06.png", "sprite_07.png", "sprite_08.png", "sprite_09.png"] #i load all the images here
all_imgs = {}
for img in img_names:
all_imgs[img] = pygame.image.load(img)
def gameLoop():
x = (width * 0.45)
y = (height * 0.8)
x_ch = 0
y_ch = 0
x_bg = 0
gameExit = False
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
if event.type == pygame.KEYDOWN:
if event.key == ord("a"):
x_ch = -5
elif event.key == ord("d"):
x_ch = 5
elif event.key == ord("w"):
y_ch = -5
elif event.key == ord("s"):
y_ch = 5
if event.type == pygame.KEYUP:
if event.key == ord("a") or event.key == ord("d"):
x_ch = 0
if event.key == ord("w") or event.key == ord("s"):
y_ch = 0
x += x_ch
y += y_ch
if x > width - ship_width or x < 0:
x_ch = 0
if y > height - ship_height or y < 0:
y_ch = 0
x_loop = x_bg % background.get_rect().height
disp.blit(background, (0, x_loop - background.get_rect().height))
if x_loop < height:
disp.blit(background, (0, x_loop))
x_bg += 5
for img in img_names:
disp.blit(all_imgs[img], (x, y)) #but this part doesnt work it blits
#all the images on top of eachother
pygame.display.update()
clock.tick(60)
gameLoop()
pygame.quit()
quit()
何らかの理由で、それはそれだけでお互いの上のすべての画像は、私を助けてくださいロードアニメーションdoes notの。ありがとう。
必要に応じて、フレームレートの独立したバージョンも表示できます。 – skrx
私はこのエラーが発生します:UnboundLocalError:割り当て前にローカル変数 'index'が参照されています –
これは、関数内で変数 'index'を定義していないことを意味します。 – skrx