Illegal instruction: 4 on MacOS High Sierra

2019-07-14 19:42发布

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条回答
地球回转人心会变
2楼-- · 2019-07-14 20:15

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.

查看更多
登录 后发表回答