だから私はpygameモジュールを使ってpythonでゲームを作ることを学ぼうとしていて、複数のスクリプトを使ってプログラムを構築できるようにしたいJavaScriptのバックグラウンドから来ています。そこで、別のスクリプトをロードして、その関数の 1 つと、そのスクリプトで宣言された変数を使用しようとしました。私ができるようにしたいのは、他のスクリプトから「更新」機能を呼び出すことですが、このスクリプトで宣言された変数を使用します。助言がありますか?
編集:わかりました、それで、私は明らかに私の質問をあまり明確にしていません。スクリプトのインポートは私の問題ではありません。問題なくインポートできます。私が抱えている問題は、それをインポートした後、このスクリプトの変数を使用するメイン スクリプトからこのスクリプトの関数を呼び出せるようにする必要があることです。
今起こっていることは、このスクリプトで更新関数を呼び出すと、変数「animTimer」が宣言される前に呼び出されているというエラーが表示されることです。それは私が修正する必要があるものです。
import pygame, sys, time, random
from pygame.locals import *
# Create animation class
class animation2D:
"a class for creating animations"
frames = []
speed = 3
cFrame = 0
player = pygame.Rect(300, 100, 40, 40)
playerImg1 = pygame.image.load('player1.png')
playerImgS = pygame.transform.scale(playerImg1, (40,40))
playerImg2 = pygame.image.load('player2.png')
playerImg3 = pygame.image.load('player3.png')
playerImg4 = pygame.image.load('player4.png')
playerImg5 = pygame.image.load('player5.png')
playerImg6 = pygame.image.load('player6.png')
playerAnim = animation2D
playerAnim.frames = [playerImg1, playerImg2, playerImg3, playerImg4, playerImg5, playerImg6]
animTimer = 0
print(animTimer)
def Update():
# Draw Player
if animTimer < playerAnim.speed:
animTimer += 1
else:
animTimer = 0
playerImgS = pygame.transform.scale((playerAnim.frames[playerAnim.cFrame]), (40,40))
if playerAnim.cFrame < len(playerAnim.frames)-1:
playerAnim.cFrame += 1
else:
playerAnim.cFrame = 0
windowSurface.blit(playerImgS, player)
import pygame, sys, time, random
from pygame.locals import *
import animationScript
# Set up pygame
pygame.init()
mainClock = pygame.time.Clock()
# Set up window
screenW = 400
screenH = 400
windowSurface = pygame.display.set_mode((screenW, screenH), 0, 32)
pygame.display.set_caption('Sprites and sound')
# Set up the colors
black = (0,0,200)
# Set up music
pygame.mixer.music.load('testmidi.mid')
#pygame.mixer.music.play(-1,0.0)
# Run the game loop
while True:
# Check for the QUIT event
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYUP:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
# Draw the background onto the surface
windowSurface.fill(black)
# Draw Player
animationScript.Update()
# Draw the window onto the screen
pygame.display.update()
mainClock.tick(40)