класаСлој(аркада. СпритеЛист):
деф__у томе__(селф, скрол_брзина):
супер().__инит__()
селф.сцролл_спеед = брзина_сцролл_спеед

класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина)
арцаде.сет_бацкгроунд_цолор (арцаде.цолор. БЕО)
селф.плаиер = Ниједан
селф.платформс = Ниједан
селф.лаиерс = []

дефподесити(сам):
селф.плаиер = Плаиер()
селф.платформс = аркада. СпритеЛист()
сива = аркада.боја. ГРЕИ
црвена = аркада.боја. РЕД
браон = аркада.боја. БРОВН
жута = аркада.боја. ИЕЛЛОВ

в = СЦРЕЕН_ВИДТХ // 2
х = СЦРЕЕН_ХЕИГХТ // 2

селф.платформс.аппенд (Платформа (в, х - 100, 200, 20, жути))
селф.платформс.аппенд (Платформа (в, х + 100, 200, 20, жути))

подаци_слојева = [
(Слој(0.2), платформа (ш, в, 800, 600, сива)),
(Слој(0.5), платформа (ш, в - 200, 400, 20, црвена)),
(Слој(0.5), Платформа (ш, х + 200, 400, 20, црвена)),
(Слој(1.0), платформа (ш, в - 300, 200, 20, браон)),
(Слој(1.0), Платформа (ш, х + 300, 200, 20, браон))
]

за слој, платформа ин подаци_слојева:
лаиер.аппенд (платформа)
селф.лаиерс.аппенд (лаиер)

instagram viewer
класаМиГаме(аркада. прозор):
# ...

дефподесити(сам):

# ...

подаци_слојева = [
(Слој(1.2), платформа (ш, в, 800, 600, сива)),
(Слој(2.5), платформа (ш, в - 200, 400, 20, црвена)),
(Слој(3.0), Платформа (ш, х + 200, 400, 20, црвена)),
(Слој(4.0), платформа (ш, в - 300, 200, 20, браон)),
(Слој(5.0), Платформа (ш, х + 300, 200, 20, браон))
]

# ...

класаРаиндроп(аркада. Сприте):
деф__у томе__(сам, к, и):
супер().__инит__()

селф.тектуре = арцаде.маке_софт_скуаре_тектуре(
3, плава, спољашња_алфа=100)

селф.центер_к = к
селф.центер_и = и

класаБацкгроундЛаиер(аркада. СпритеЛист):
деф__у томе__(селф, скрол_брзина):
супер().__инит__()
селф.сцролл_спеед = брзина_сцролл_спеед
селф.раиндропс = аркада. СпритеЛист()

дефажурирање(сам):
за кишна кап ин селф.капи кише:
раиндроп.центер_и -= селф.сцролл_спеед * 5

ако раиндроп.центер_и < -10:
раиндроп.ремове_фром_сприте_листс()

дефцртати(сам):
супер().драв()
селф.раиндропс.драв()

класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина)
арцаде.сет_бацкгроунд_цолор (арцаде.цолор. БЕО)
селф.бацкгроунд_лаиер = БацкгроундЛаиер(0.2)
# ...

дефподесити(сам):
# ...
селф.бацкгроунд_лаиер.раиндропс.аппенд(
Кап кише (СЦРЕЕН_ВИДТХ // 2, СЦРЕЕН_ХЕИГХТ + 10))

дефажурирање(селф, делта_тиме):
селф.плаиер.упдате()
селф.бацкгроунд_лаиер.упдате()

дефон_драв(сам):
арцаде.старт_рендер()
селф.бацкгроунд_лаиер.драв()
селф.платформс.драв()
селф.плаиер.драв()

Имран је писац у МУО са 3 године искуства у писању техничког садржаја. Такође је радио са многим стартапима као фулл-стацк програмер. Он је страствен у писању и помагању другима да науче о технологији. У слободно време ужива у истраживању нових програмских језика.