python - 名称“播放器”未定义且游戏=游戏()
问题描述
我正在看一个用python编写游戏的教程。在 tuto 上一切都很顺利,但我的程序会产生错误。但是,我完全按照教程中的方式进行操作。由于错误消息,我试图自己找到错误,但我找不到解决方案,所以我求助于您找到解决我的问题的方法。所以,我的项目中有 3 个 .py 文件(main.py、player.py 和 game.py)和一个 .tmx 文件。错误在文件“main.py”和“game.py”中。(PS:这是我第一次使用 StackOverflow)。提前感谢大家。
我认为标题不是很相关,所以很抱歉。
错误:
主要.py:
import pygame
from game import Game
if __name__ == '__main__':
pygame.init()
game = Game()
game.run()
游戏.py:
import pygame
import pytmx
import pyscroll
class Game:
def __init__(self):
# fenetre du jeu
self.screen = pygame.display.set_mode((800, 800)) # taille de la fenetre
pygame.display.set_caption("Pygamon - By BenCorp") # nom de la fenetre
#charger la carte (tmx)
tmx_data = pytmx.util_pygame.load_pygame('map.tmx')
map_data = pyscroll.data.TiledMapData(tmx_data)
map_layer = pyscroll.orthographic.BufferedRenderer(map_data, self.screen.get_size())
#map_layer.zoom = 2
#generer le joueur
self.player = Player()
#dessiner le groupe de calques
self.group = pyscroll.PyscrollGroup(map_layer=map_layer, default_layer=1)
self.group.add(self.player)
def run(self):
# boucle du jeu
running = True
while running:
self.group.draw(self.screen)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
播放器.py:
import pygame
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.sprite_sheet = pygame.image.load('player.png')
self.image = self.get_image(0, 0)
self.rect = self.image.get_rect()
def get_imaged(self, x, y):
image = pygame.Surface([32, 32])
image.blit(self.sprite_sheet, (0, 0), (x, y, 32, 32))
return image
解决方案
您必须player
在game.py中导入模块:
import player
所以你可以使用Player
模块中的类player
:
self.player = player.Player()
推荐阅读
- python - 具有空变量和 0 维对象数据框的 xarray 和 netCDF 文件
- c++ - 尝试运行 NVIDIA FleX 时出现“检测到缓冲区溢出”
- php - 排队的工作卡住了,表可能锁定在 Laravel
- php - 访问。将排除的子文件夹重定向到域的 https 版本,其他所有内容都被重定向到另一个域
- c# - 将动态对象列表转换为字典
- sonarqube - api/issues/search 响应仅在登录时具有“作者”字段
- c# - WPF 如何使用 MVVM 从 ICommand 正确修改视图
- c++ - 无法创建包含日志文件的文件夹
- python - 如何将 Count Morgan 指纹计算为 numpy.array?
- azure-digital-twins - 如何在 Azure 数字孪生中获取 IoT 中心的连接字符串