Недопустимая инструкция: 4 на MacOS High Sierra - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь создать окно, похожее на чат в pygame 3.6, я только что обновил свой MacBook до версии 10.13.6, до того, как я это сделал, он работал отлично, но после того, как я получил сообщение: Недопустимая инструкция: 4.
Код

import pygame
from pygame.locals import *
import pygame.gfxdraw

pygame.init()

window_width=360
window_height=640
animation_increment=10
clock_tick_rate=20
size = (window_width, window_height)
screen = pygame.display.set_mode(size)
black = (0,0,0)
grey = (220,220,220)
shadow = (0, 255, 0, 100)

pygame.display.set_caption("BrAIn")

dead=False

clock = pygame.time.Clock()
background_image = pygame.image.load("background.png").convert()
micro = pygame.image.load("microphone.png")
PF = pygame.image.load("BrAIn.png")


while(dead==False):
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            dead = True

    font = pygame.font.Font("Impact copy.ttf", 52)
    text = font.render('BrAIn', True, (0,0,0))

    screen.blit(background_image, [0, 0])
    pygame.gfxdraw.hline(screen, 0, 360, 40, shadow)
    pygame.draw.line(screen, black, [0,62], [360,62], 2)
    pygame.draw.line(screen, grey, [0,30], [360,30], 62)
    pygame.draw.line(screen, grey, [0,620],[360,620],75)
    pygame.draw.line(screen, black, [0,583], [360,583], 2)
    screen.blit(micro, [152, 587])
    screen.blit(PF, [-5, -7])
    screen.blit(text, [125,0])

    pygame.display.flip()
    clock.tick(clock_tick_rate)


Python 3.6 (и 2.7) также аварийно завершает работу после запуска этого.

1 Ответ

0 голосов
/ 07 октября 2018

Хотя «удаление pygame.init ()» на самом деле не очень хороший ответ, и я хотел бы знать, почему он это делает и как навсегда это исправить, я нашел способ «исправить» эту проблему.Я удалил команду pygame.init(), которая выдала мне ошибку: pygame.error: font not initialized.Это довольно очевидно, потому что тогда вы не инициализировали движок, в котором находятся шрифты.Есть другой способ без использования pygame.init() без получения этой ошибки (как многие из вас знают, я думаю), это использование pygame.font.init().Я попытался заменить pygame.init () на pygame.font.init () и, наконец, моя программа работала так, как раньше.Мне все еще очень хотелось бы знать, почему и как совершается эта ошибка, как навсегда избавиться от нее и какая разница между pygame.font.init() и pygame.init(), но для меня это временный ответ.

...