2012-06-26 3 views
0

Я пытаюсь нарисовать простую систему строк, но когда я пытаюсь запустить код в терминале (работает OS X Lion) или DrPython, я получаю сообщение об ошибке (CGContextRestoreGState: недопустимый контекст 0x0). Я запускаю python 2.7.CGContextRestoreGState: недопустимый контекст 0x0

import pygame as pg 
pg.init() 
screen = pg.display.set_mode((640,480)) 
l1 = 1.0 * L 
l2 = 0.5377 * L 
l3 = 0.2867 * L 
hip = (100,100) 
knee = (hip[0] + math.sqrt(2) * l1, hip[1] + math.sqrt(2) * l1) 
ankle = (knee[0] + math.sqrt(2) * l2, knee[1] + math.sqrt(2) * l2) 
toe = (ankle[0] + l3, ankle[1]) 
pg.draw.lines(screen, (0, 0, 0), False, [hip, knee, ankle, toe], 1) 
while True: 
for event in pg.event.get(): 
if event.type == pg.QUIT: 
raise SystemExit 

ответ

0

Количество дополнительных вопросов:

  • Что такое "L"? Вы, вероятно, отредактировали его.
  • Вам необходимо вызвать pygame.display.flip() внутри основного цикла, или вы ничего не увидите.
  • Рекомендуется, чтобы список кортежей, переданных в pygame.draw.lines, был кортежами целыми числами. К вашим услугам кортежи поплавков.
  • Отступы. Я предполагаю, что это правильно в вашем исходном источнике.

Основная проблема заключается в том, что создаваемый контекст недействителен. Я предполагаю, что это происходит при вызове pygame.display.set_mode. Быстрый поиск Google показывает, что CGContextRestoreGState устанавливает контекст в NULL, если произошла ошибка. Ответы, которые вы найдете там, помогут вам устранить проблему.

В частности, ключевыми вопросами являются: , где (какая строка) имеет место ошибка? Работают ли образцы PyGame?

Смежные вопросы