なんらかのゲームを作っているのですが、スタート画面しかできませんでした。今、私は最初のレベルのイントロを作ろうとしています (そのため、いくつかの説明と続行するためのボタンが表示された画面です)。プログラムのこの部分は別のファイルに書かれているので、数千行のファイルを取得することはできません。
しかし今、私には問題があります。以下を使用してレベルを開始します。
import level1 # here is my code of the level
level1.level(screen) # "level" is the class and screen is used so pygame
# uses the same screen and doesn't start a new one
これは level1.py です:
class level():
def __init__(self,originalscreen):
screen = originalscreen
self.levelintro()
def levelintro(self):
# Setting some variables
levelintro = True
# Background
background = pygame.Surface(screen.get_size()) # Change this
background = background.convert()
background.fill((255,0,0))
# "Got it" button
gotitbutton = pygbutton.PygButton((350, 450, 300, 40))
while levelintro:
screen.fill(0)
# Blitting
screen.blit(background, (0,0))
gotitbutton.draw(screen)
# Refreshing screen
pygame.display.flip()
だから今私の問題:元の.pyで、pygameをインポートしました。しかし今、level1.py に pygame をインポートしようとしましたが、うまくいきません。どうすればインポートできますか?
助けてくれてありがとう!ルーカス
ps: 下手な英語でごめんなさい、私はオランダ人です...
編集:「import pygame」をクラスの前に置くと:
Traceback (most recent call last):
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 17, in <module>
class startscreen():
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 51, in startscreen
level1.level(screen)
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 8, in __init__
self.levelintro()
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 15, in levelintro
background = pygame.Surface(screen.get_size()) # Change this
NameError: global name 'screen' is not defined
level1.level(screen) でメソッド「レベル」を呼び出して画面を渡し、 screen = originalscreen を設定するため、これを理解できません (魔女は元のファイルの画面と同じです)
クラス内に「import pygame」を配置すると、次のようになります。
Warning (from warnings module):
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 3
class level():
SyntaxWarning: import * only allowed at module level
Traceback (most recent call last):
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 17, in <module>
class startscreen():
File "C:\Users\Lukas\Google Drive\Project\0.1\Project.py", line 51, in startscreen
level1.level(screen)
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 9, in __init__
self.levelintro()
File "C:\Users\Lukas\Google Drive\Project\0.1\level1.py", line 16, in levelintro
background = pygame.Surface(screen.get_size()) # Change this
NameError: global name 'pygame' is not defined
>>>