Я сейчас занимаюсь написанием игровой программы. Это копия игры lines.
(На игровом поле появляются шарики которые нужно поставить по 5 в ряд и т.д.) Дело не в этом.
Я не могу понять принцип написания такого вида программ.
Конкретно:
у меня есть несколько спрайтов(класс Ball). Они объединены в группу. Предположим я кликнул по одному спрайту(шарику).
Я хочу, чтобы он начал немного подпрыгивать. Что я делаю?
Я просматриваю всю группу спрайтов(шариков), определяю спрайт по которому я кликнул и его атрибуту
(например, self.activ) присваиваю значение True.
При этом у меня постоянно “выполняется” цикл while (50раз/сек), который рисует фон, спрайты и (главное) выполняет для всех спрайтов группы метод update().
Мне приходится в методе update класса Ball вставить условный оператор (if self.activ
, который рассчитывает сдвиг координат спрайта(шарика) Это у меня всё работает. Но возникает вопрос: я, вообще, правильно понял принцип программирования подобных программ. Мне казалось, что принцип программирование ООП в том, что я должен вызвать нужный мне метод(тот который отвечает за подпрыгивание) и забыть о нём(пусть сам выполняется).
А в моей программе получается, что всё выполняет метод update!!!
С этим можно смериться пока действия спрайта(шарика) простые. А дальше спрайту нужно будет подпрыгивать и двигаться при этом!
У меня вопрос:
я правильно или не правильно использую возможности pygame?
как нужно правильно использовать возможности pygame?