Содержание
- Pygame error cannot convert without pygame display initialized
- Вопрос:
- Ответ №1:
- Ответ №2:
- Ответ №3:
- Ответ №4:
- Комментарии:
- Ответ №5:
- Ответ №6:
- Ответ №7:
- Ответ №8:
- Python-сообщество
- Уведомления
- #1 Апрель 13, 2016 16:17:47
- video system not initialized
- video system not initialized
- #3 Апрель 13, 2016 16:26:20
- video system not initialized
- #4 Апрель 13, 2016 16:30:43
- video system not initialized
- #5 Апрель 13, 2016 16:43:41
- video system not initialized
- #6 Апрель 13, 2016 17:55:11
- video system not initialized
- #7 Апрель 16, 2016 10:26:50
- video system not initialized
Pygame error cannot convert without pygame display initialized
#python #pygame
Вопрос:
Я получаю эту ошибку всякий раз, когда пытаюсь выполнить свой pygame код: pygame.error: video system not initialized
Ответ №1:
Ты никуда не звонил pygame.init() .
См. Основное руководство по вводной части или специальное руководство по импорту и инициализации, в котором объясняется:
Прежде чем вы сможете многое сделать с pygame, вам нужно будет его инициализировать. Самый распространенный способ сделать это-просто сделать один звонок.
Это будет попытка инициализировать все модули pygame для вас. Не все модули pygame необходимо инициализировать, но это автоматически инициализирует те, которые это делают. Вы также можете легко инициализировать каждый модуль pygame вручную. Например, чтобы только инициализировать модуль шрифта, вы просто вызовете.
В вашем конкретном случае, вероятно pygame.display , это жалоба на то, что вы позвонили либо its set_caption , либо its flip , не позвонив init сначала. Но на самом деле, как говорится в руководстве, лучше просто init все наверху, чем пытаться выяснить, что именно нужно инициализировать, когда.
Ответ №2:
Изменение кода на этот позволяет избежать этой ошибки. во время работы: clock.tick(fps_cap)
Ответ №3:
Вы получаете ошибку, потому что пытаетесь установить заголовок окна (с set_caption() ), но вы не создали окно pygame, поэтому ваша screen переменная-это просто кортеж, содержащий размер вашего будущего окна.
Чтобы создать окно pygame, вам нужно позвонить pygame.display.set_mode(windowSize) .
Ответ №4:
Недавно у меня возникла эта проблема, и я обнаружил странную и необычную ошибку в написанном мной коде-только после того, как прочитал его и перечитал дюжину раз в течение 10 минут, пытаясь запустить файл (который выглядел идеально) дюжину раз.
Там был pygame.init() . Там была screen = pygame.display.set_mode((size)) переменная размера, доступная в глобальном пространстве имен.
Оказывается, это был основной игровой цикл.
P.S. Проблема заключается в слишком большом отступе всего, что приведено ниже RUNNING = False .
Комментарии:
1. Это отличная история, Тим, и спасибо, что поделился с нами, но она не отвечает на вопрос и описывает другую проблему.
Ответ №5:
- Если вы это сделаете pygame.init() , то решите проблему с инициализацией видеосистемы. но вы получаете следующую ошибку, например:
( AttributeError: tuple object has no attribute ‘fill’ ) это.
- эта проблема решается, когда вы делаете это
но не делать так, как
- Тогда вся проблема будет решена.
Ответ №6:
Я внес некоторые изменения в ваш код:
Ответ №7:
Вам просто нужно добавить
Чтобы остановить выполнение
примера кода :
Ответ №8:
Вы должны добавить:
Прежде чем выйти из дисплея, вы должны остановить цикл while.
Источник
Python-сообщество
Уведомления
#1 Апрель 13, 2016 16:17:47
video system not initialized
video system not initialized
Pygame нет, но попробуй вот так код поправить :
Отредактировано Lestoroer (Апрель 13, 2016 16:30:15)
#3 Апрель 13, 2016 16:26:20
video system not initialized
Traceback (most recent call last):
File “
”, line 2, in
for event in pygame.event.get():
pygame.error: video system not initialized
не знаю как отступы сделать.. Полная ошибка выглядит так..
Отредактировано kapaky (Апрель 13, 2016 16:27:20)
#4 Апрель 13, 2016 16:30:43
video system not initialized
”, line 2, in for event in pygame.event.get():pygame.error: video system not initializedне знаю как отступы сделать.. Полная ошибка выглядит так..
#5 Апрель 13, 2016 16:43:41
video system not initialized
pygame.display.set_caption(‘My Game’)
screen.fill(WHITE)
если вобще убрать эти строчки, та же ошибка
#6 Апрель 13, 2016 17:55:11
video system not initialized
все перепробовал, даже от имени администратора запускал. Та же ошибка.
мне кажется что, когда я скачивал “pygame” он был не полный. Если такое бывает.?
#7 Апрель 16, 2016 10:26:50
video system not initialized
может после, когда сам во всем разберусь, то объясню, почему именно так. Но пока работает следующая схема.
Источник
0 / 0 / 0
Регистрация: 12.10.2019
Сообщений: 17
1
15.02.2020, 19:15. Показов 14221. Ответов 2
Только начал изучать спрайты
Выдаёт ошибку:
Traceback (most recent call last):
File «D:/project1/OCode.py», line 18, in <module>
class Bomb(pygame.sprite.Sprite):
File «D:/project1/OCode.py», line 19, in Bomb
image = load_image(«arrow.png»)
File «D:/project1/OCode.py», line 8, in load_image
image = pygame.image.load(fullname).convert()
pygame.error: cannot convert without pygame.display initialized
Вот код:
Python | ||
|
Что нужно сделать, чтобы исправить это?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Вот эту строку:
player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert()
Надо перенести после инициализации pygame и установки экрана.
Например сюда:
...
# Создаем игру и окно
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert()
...
UPDATE
Код файла main.py:
import pygame
import random
import os
from player import *
# настройка папки ассетов
game_folder = os.path.dirname(__file__)
img_folder = os.path.join(game_folder, 'img')
WIDTH = 800
HEIGHT = 650
FPS = 30
# Задаем цвета
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
# Создаем игру и окно
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert()
player = Player(player_img, BLACK, WIDTH, HEIGHT)
all_sprites = pygame.sprite.Group()
all_sprites.add(player)
# Цикл игры
running = True
while running:
# Держим цикл на правильной скорости
clock.tick(FPS)
# Ввод процесса (события)
for event in pygame.event.get():
# check for closing window
if event.type == pygame.QUIT:
running = False
# Обновление
all_sprites.update()
# Рендеринг
screen.fill(BLACK)
all_sprites.draw(screen)
# После отрисовки всего, переворачиваем экран
pygame.display.flip()
pygame.quit()
Код файла player.py:
import pygame
import random
import os
class Player(pygame.sprite.Sprite):
def __init__(self, player_img, color, w, h):
pygame.sprite.Sprite.__init__(self)
self.image = player_img
self.image.set_colorkey(color)
self.rect = self.image.get_rect()
self.w = w
self.h = h
self.rect.center = (self.w / 2, self.h / 2)
def update(self):
self.rect.x += 5
if self.rect.left > self.w:
self.rect.right = 0
I’m working on making a game for a project at my university using pygame. All I’m trying to get done right now is create a ball that can be controlled to go back and forth on the screen when the user presses the left and right arrow keys. Honestly I don’t really know what I’m doing, so I’m using the code in the pygame documentation that was used for pong as the base for my game. My code is below, and if someone knows why I’m getting the error that’s in the title, please let me know.
try:
import sys
import random
import math
import os
import getopt
import pygame
from socket import *
from pygame.locals import *
except ImportError, err:
print "couldn't load module. %s" % (err)
sys.exit(2)
def load_png(name):
""" Load image and return image object"""
fullname = name
try:
image = pygame.image.load(fullname)
if image.get_alpha() is None:
image = image.convert()
else:
image = image.convert_alpha()
except pygame.error, message:
print 'Cannot load image:', fullname
raise SystemExit, message
return image, image.get_rect()
class Ball(pygame.sprite.Sprite):
def __init__(self, (xy)):
pygame.sprite.Sprite.__init__(self)
self.image, self.rect = load_png('ball.png')
screen = pygame.display.get_surface()
self.area = screen.get_rect()
self.hit = 0
self.speed = 10
self.state = "still"
def reinit(self):
self.state = "still"
self.movepos = [0,0]
if self.side == "left":
self.rect.midleft = self.area.midleft
def update(self):
newpos = self.rect.move(self.movepos)
if self.area.contains(newpos):
self.rect = newpos
pygame.event.pump()
def moveleft(self):
self.movepos[1] = self.movepos[1] - (self.speed)
self.state = "moveleft"
def moveright(self):
self.movepos[1] = self.movepos[1] + (self.speed)
self.state = "moveright"
def main():
running = True
pygame.init()
(width, height) = (800, 600)
screen = pygame.display.set_mode((width, height))
# Fill background
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((0, 0, 0))
screen.blit(background, (0, 0))
pygame.display.flip()
global player
player = Ball("left")
playersprite = pygame.sprite.RenderPlain(player)
playersprite.draw(screen)
player.update()
while running:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_q:
running = False
if event.key == K_LEFT:
player.moveleft()
if event.key == K_RIGHT:
player.moveright()
elif event.type == KEYUP:
if event.key == K_UP or event.key == K_DOWN:
player.movepos = [0,0]
player.state = "still"
#screen.blit(background, ball.rect, ball.rect)
screen.blit(background, player.rect, player.rect)
#screen.blit(background, player2.rect, player2.rect)
#ballsprite.update()
playersprite.update()
#ballsprite.draw(screen)
playersprite.draw(screen)
if __name__ == '__main__': main()
Уведомления
- Начало
- » Python для новичков
- » AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
#1 Янв. 31, 2020 21:58:14
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
Всем здравствуйте!
Сегодня в процессе практического изучения библиотеки “pygame” столкнулся с такой проблемой:
“ AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ ”
Это произошло до того, как я добавил ещё одну строку в свой код:
“ self.image.set_colorkey(BLACK) ”
После добавления этого участка кода появляется та же ошибка, но чуть видоизменённая:
“ AttributeError: ‘builtin_function_or_method’ object has no attribute ‘set_colorkey’ ”
Комментирую добавленную строку и снова вижу первую ошибку!
Что я делаю не так? Разве библиотека “pygame” не содержит эти атрибуты???
Свой код прилагаю к настоящей теме:
Прикреплённый файлы:
game.py (4,9 KБ)
Офлайн
- Пожаловаться
#2 Фев. 1, 2020 23:48:23
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
Очевидно, что self.image это метод. Метод — это функция, её надо сначала вызвать.
Офлайн
- Пожаловаться
#3 Фев. 2, 2020 09:33:44
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
FishHook
Очевидно, что self.image это метод. Метод — это функция, её надо сначала вызвать.
В смысле вызвать, если у меня за пределами функции нигде нет никаких упоминаний об этом атрибуте?…
Интерпретатор ругается на атрибут, который, как я полагаю, должен где-то вне классов, объектов, функций и прочей байды находиться (ну раз интерпретатор ругается).
А здесь я этот атрибут даже через поиск искал.
Его нигде, кроме как в теле метода (“ def __init__(self): ”), нету!
Отредактировано garrip91 (Фев. 2, 2020 10:06:36)
Офлайн
- Пожаловаться
#4 Фев. 3, 2020 14:29:17
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
предполагаю что виной всему вот эта строка
player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert
convert() это метод. Метод — это функция, её надо вызвать. А у вас в player_img в таком виде попадает не объект Surface а функция(метод) convert. Естественно у функции нету ни атрибута get_rect() ни set_colorkey()
==============================
Помещайте код в теги:
Бериегите свое и чужое время.
Отредактировано PEHDOM (Фев. 3, 2020 14:31:30)
Офлайн
- Пожаловаться
#5 Фев. 3, 2020 20:43:07
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
PEHDOM
предполагаю что виной всему вот эта строка
Я понял, что я в данной строке скобки в конце упустил (спасибо, что обратили моё внимание на это, кстати!).
Я эти скобки поставил, но теперь я вижу другую ошибку:
“ pygame.error: cannot convert without pygame.display initialized ”
Ну что это ещё за бред такой???
Отредактировано garrip91 (Фев. 3, 2020 21:01:00)
Офлайн
- Пожаловаться
#6 Фев. 3, 2020 21:14:49
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
garrip91
Я эти скобки поставил, но теперь я вижу другую ошибку:
“ pygame.error: cannot convert without pygame.display initialized ”
Ну очевидно, программа вам сообщает, что перед тем как делать convert() нужно инициализировать pygame.display
https://www.pygame.org/docs/ref/display.html
==============================
Помещайте код в теги:
Бериегите свое и чужое время.
Отредактировано PEHDOM (Фев. 3, 2020 21:15:13)
Офлайн
- Пожаловаться
- Начало
- » Python для новичков
- » AttributeError: ‘builtin_function_or_method’ object has no attribute ‘get_rect’ в библиотеке «pygame»
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.