Pygame error cannot convert without pygame display initialized

Pygame error cannot convert without pygame display initialized #python #pygame Вопрос: Я получаю эту ошибку всякий раз, когда пытаюсь выполнить свой pygame код: pygame.error: video system not initialized Ответ №1: Ты никуда не звонил pygame.init() . См. Основное руководство по вводной части или специальное руководство по импорту и инициализации, в котором объясняется: Прежде чем […]

Содержание

  1. Pygame error cannot convert without pygame display initialized
  2. Вопрос:
  3. Ответ №1:
  4. Ответ №2:
  5. Ответ №3:
  6. Ответ №4:
  7. Комментарии:
  8. Ответ №5:
  9. Ответ №6:
  10. Ответ №7:
  11. Ответ №8:
  12. Python-сообщество
  13. Уведомления
  14. #1 Апрель 13, 2016 16:17:47
  15. video system not initialized
  16. video system not initialized
  17. #3 Апрель 13, 2016 16:26:20
  18. video system not initialized
  19. #4 Апрель 13, 2016 16:30:43
  20. video system not initialized
  21. #5 Апрель 13, 2016 16:43:41
  22. video system not initialized
  23. #6 Апрель 13, 2016 17:55:11
  24. video system not initialized
  25. #7 Апрель 16, 2016 10:26:50
  26. 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:

  1. Если вы это сделаете pygame.init() , то решите проблему с инициализацией видеосистемы. но вы получаете следующую ошибку, например:

( AttributeError: tuple object has no attribute ‘fill’ ) это.

  1. эта проблема решается, когда вы делаете это

но не делать так, как

  1. Тогда вся проблема будет решена.

Ответ №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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import pygame
import os
import random
 
 
def load_image(name, colorkey=-1):
    fullname = os.path.join('data', name)
    image = pygame.image.load(fullname).convert()
    if colorkey is not None:
        if colorkey == -1:
            colorkey = image.get_at((0, 0))
        image.set_colorkey(colorkey)
    else:
        image = image.convert_alpha()
    return image
 
 
class Bomb(pygame.sprite.Sprite):
    image = load_image("arrow.png")
 
    def __init__(self, group):
        # НЕОБХОДИМО вызвать конструктор родительского класса Sprite. Это очень важно!!!
        super().__init__(group)
        self.image = Bomb.image
        self.rect = self.image.get_rect()
        self.rect.x = random.randrange(width)
        self.rect.y = random.randrange(height)
 
    def update(self):
        self.rect = self.rect.move(random.randrange(3) - 1, random.randrange(3) - 1)
 
pygame.init()
size = width, height = 501, 501
screen = pygame.display.set_mode(size)
screen.fill((255, 255, 255))
clock = pygame.time.Clock()
fps = 60
running = True
# создадим группу, содержащую все спрайты
all_sprites = pygame.sprite.Group()
 
for _ in range(50):
    Bomb(all_sprites)
 
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    pygame.display.flip()
    all_sprites.draw(screen)
    all_sprites.update()
 
    clock.tick(fps)
 
pygame.quit()

Что нужно сделать, чтобы исправить это?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



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” не содержит эти атрибуты???

Свой код прилагаю к настоящей теме:

Прикреплённый файлы:
attachment 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 photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    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 photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:
  • Pycrypto python ошибка
  • Pycharm ошибка при установке библиотеки
  • Pycharm ошибка при запуске
  • Putty error writing to serial device
  • Putty error unable to open connection to com