справка pygame о добавлении слоев

Я делаю проект в pygame. Я составляю меню еды. В каждом поле, когда я нахожу на него указатель мыши, его граница становится синей и появляется текст «Щелкните еще».

8 ящиков

Когда я нажимаю «Щелкните еще», я хочу, чтобы новый слой появился поверх ящиков, и я хочу, чтобы ко всем ящикам сзади не было доступа, пока я не закрою слой.

белый слой

Однако то, что я делаю прямо сейчас, это просто рисую простой прямоугольник, и, таким образом, все поля сзади можно щелкнуть как обычно, как это

задние поля становятся синими, если я наведу на них указатель мыши

Я немного читал о добавлении слоев в pygame, но не могу этого понять. Я работаю над pygame всего 2 недели.


person tad    schedule 06.11.2018    source источник


Ответы (1)


Есть много способов реализовать это.

Один из возможных способов - установить логическую переменную флага на False всякий раз, когда слой рисуется, и проверять значение переменной флага всякий раз, когда щелкают мышью: если оно ложно, то не позволяйте кликам доходить до их обработчиков.

Если вы реализуете это с помощью объектно-ориентированного программирования, вы можете пойти дальше, создав объект «LayerManager», который отслеживает различные слои, их положение и способы их перекрытия (если вы планируете иметь очень много слоев друг на друга).

Насколько мне известно, PyGame не позволяет вам использовать слои так, как вы хотели бы, поскольку это довольно специфическая функция, которую вам, возможно, придется реализовать самостоятельно. Если вы разместите код, мы будем рады вам помочь!

person Community    schedule 07.11.2018