Я - Энди (автор книги, которую вы используете). Я ответил на ваше электронное письмо напрямую, но если кто-то еще читает, я опубликую здесь на благо SO сообщества.
Этовообще не проблема с OSX.
Все содержимое Mac - красная сельдь (извините, это была рыбная программа ... Я не смог устоять.)
Проблема в строке 42: allsprites.update
Должно читаться allsprites.update ()
Вот тонкое, но принципиальное отличие: в Python метод или функция также могут быть прочитаны как переменная.Это действительно мощная функция, но вы ее еще не используете.Если скобки сняты, они считываются как переменные (и ничего не делают.) Если скобки включены, функция выполняется.
Вы забыли скобки (на самом деле, некоторые редакторы, кажется, иногда удаляют их), и поэтому Python с радостью принял ваш код в качестве юридической инструкции.Тем не менее, он просто признал, что на самом деле существует метод с именем allsprites.update.Метод обновления никогда не вызывался, поэтому спрайт никогда не обновлялся, поэтому его позиция никогда не менялась.
Моя версия фактически вызывает метод обновления группы спрайтов, который, в свою очередь, вызывает методы обновления всех спрайтов-членов, ипрограмма работает просто отлично.Просто чтобы быть уверенным, я протестировал его на всех трех основных операционных системах (Ubuntu, Mac и Win 7), и он работает нормально.
Если у вас когда-нибудь возникают сомнения по поводу того, работает ли код в вашей ОС,Пожалуйста, загрузите мой оригинальный проверенный код с моего веб-сайта (http://www.aharrisbooks.net) и посмотрите, работает ли он.
Дайте мне знать, если вы застряли где-нибудь еще.
Кстати, я сейчас работаю надкнига по программированию игр для HTML5. Заходите на мой сайт за дополнительной информацией ....