Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Выдаёт ошибку line 62, in <module> self.Game.run() ^^^^ NameError: name 'self' is not defined

Алiксiй Мафиозник Ученик (70), на голосовании 1 месяц назад
Сам код для того чтобы было понятнее

import pygame as pg
import sys
from sceneCache import SceneCache
from settings import GameData
from eventHandler import EventHandler
from inventory import Inventory

class Game:
def __init__(self):
pg.init()

windowSize = (700,500)
self.window = pg.display.set_mode(windowSize)

self.FPS = 60

self.clock = pg.time.Clock()
pg.display.set_caption("PyUndertale")

self.gameData = {
GameData.CurrentEnemy : None,
GameData.PlayerInventory : Inventory()
}

self.sceneCache = SceneCache(self)
self.currentScene = self.sceneCache.overWorld()

self.fpsFont = pg.font.Font("Fonts/DeterminationMonoWebRegular-Z5oq.ttf",18)


def displayFPS(self):
fontColor = (255,255,255)
fps = self.fpsFont.render(f"{round(self.clock.get_fps())}",True,fontColor)
pos = (670,10)
self.window.blit(fps,pos)

def run(self):
while True:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()
if event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
pg.quit()
sys.exit()


EventHandler.handlePlayerInput()
self.window.fill("black")

self.currentScene.update()

self.sceneCache.battle().buttonPressedTimer.update()
self.displayFPS()
pg.display.update()
self.clock.tick(self.FPS)



if __name__ == '__main__':
Game.run()
Голосование за лучший ответ
Александ Гуру (2593) 2 месяца назад
Ник Английский постаьв
Ttt Гуру (4116) 2 месяца назад
спрашивай у интерпретатора а не у нас
Игорь Кузнецов Мастер (1163) 2 месяца назад
import pygame as pg
import sys
from sceneCache import SceneCache
from settings import GameData
from eventHandler import EventHandler
from inventory import Inventory

class Game:
def __init__(self):
pg.init()

windowSize = (700, 500)
self.window = pg.display.set_mode(windowSize)

self.FPS = 60

self.clock = pg.time.Clock()
pg.display.set_caption("PyUndertale")

self.gameData = {
GameData.CurrentEnemy: None,
GameData.PlayerInventory: Inventory()
}

self.sceneCache = SceneCache(self)
self.currentScene = self.sceneCache.overWorld()

self.fpsFont = pg.font.Font("Fonts/DeterminationMonoWebRegular-Z5oq.ttf", 18)

def displayFPS(self):
fontColor = (255, 255, 255)
fps = self.fpsFont.render(f"{round(self.clock.get_fps())}", True, fontColor)
pos = (670, 10)
self.window.blit(fps, pos)

def run(self):
while True:
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()
if event.type == pg.KEYDOWN:
if event.key == pg.K_ESCAPE:
pg.quit()
sys.exit()

EventHandler.handlePlayerInput()
self.window.fill("black")

self.currentScene.update()

self.sceneCache.battle().buttonPressedTimer.update()
self.displayFPS()
pg.display.update()
self.clock.tick(self.FPS)
Игорь КузнецовМастер (1163) 2 месяца назад
Теперь код создает экземпляр класса Game и вызывает метод run у этого экземпляра, что должно устранить ошибку NameError.
DER |-2SH-| KA Мыслитель (9622) 2 месяца назад
Пожалуйста, вставляйте код как КОД. Потому что так удобнее читать и Python сильно придирается к табуляциям (пробелам), а тут их нету, и мы хз как должно выглядеть в коде
 def foo(a: int) -> int:
print("cockMaster")
Edited 1: Попробуйте вместо
 Game.run() 
Использовать
 game = Game()
game.run()
Хотя откуда у Game вообще есть run() - понятия не имею
ХлебушекОракул (76344) 2 месяца назад
ctrl+f и в поиске:
 def run(self):  
DER |-2SH-| KA Мыслитель (9622) Хлебушек, а. Я конч. Я не полностью каким-то образом скопировал код и PyCharm говорил, что "метод run() не существует"
Похожие вопросы