Illegal instruction: 4 on MacOS High Sierra

和自甴很熟 提交于 2019-12-11 04:07:25

问题


I am trying to make a chat-looking window in pygame 3.6, I just updated my MacBook to version 10.13.6, before I did this it worked perfectly but after I get the message: Illegal instruction: 4.
Code

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 (and 2.7) also crashes after running this.


回答1:


Although "removing pygame.init()" isn't really much of an answer and I would like to know why it does this and how to permanently fix this, I have found a way to 'fix' this problem. I removed the pygame.init() command, which gave me the error: pygame.error: font not initialized. This is pretty obvious because then you haven't initialized the engine where the fonts are. There is another way without using pygame.init() without getting this error (as many of you are aware I think), this is by using pygame.font.init(). I tried replacing pygame.init() by pygame.font.init() and finally my program worked like it used to. I would still very much like to know why and how this error is made, how to permanently get rid of it and what difference there is between pygame.font.init() and pygame.init() but this is a temporary answer for me.



来源:https://stackoverflow.com/questions/52681359/illegal-instruction-4-on-macos-high-sierra

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!