Ако сте програмер игара који користи библиотеку Пигаме, вероватно сте наишли на класу Сприте. Сприте класа је моћан алат за креирање ликова у игри које можете лако да померате, ротирате и скалирате на екрану.
Са једноставним Питхон програмом, можете научити о процесу креирања ликова игре заснованих на сприте-у у Пигаме-у. Сазнајте како да креирате основну Сприте класу, а затим додајте атрибуте и методе за контролу понашања.
Увод у Пигамеов Сприте Цласс
Сприте класа у Пигаме-у је класа контејнера која садржи све атрибуте и понашања карактера игре. Потиче од Пигамеове класе Сурфаце, која представља слику са фиксном ширином и висином.
Да бисте радили са њим, мораћете да креирате нову класу која наслеђује класу Сприте и дефинишете све атрибуте и методе које желите да ваш лик игре има.
Креирање основне класе Сприте за лик игре
Први, инсталирајте пигаме модул користећи пип. Урадите то са овом командом:
пип инсталирај пигаме
Да бисте креирали основни сприте, мораћете да увезете класу Сприте из Пигаме-а и креирате нову класу која ће наследити од ње. Затим можете дефинисати све атрибуте и методе које желите да ваш лик игре има.
На пример, можда бисте желели да направите класу Сприте за лик играча који може да се креће лево и десно по екрану. Да бисте то урадили, можете дефинисати следеће атрибуте:
- позиција: Точка која садржи к и и координате сприте-а на екрану.
- брзина: Тупле који одржава брзину којом се сприте креће хоризонтално и вертикално.
И следеће методе:
- ажурирање(): Метода која ажурира позицију сприте-а на основу његове брзине.
- цртање(): Метода која извлачи срајт на екран.
Ево примера основне Сприте класе која имплементира ове атрибуте и методе:
увоз пигаме
класаПлаиер(пигаме.сприте. Сприте):
деф__у томе__(селф, к, и, велоцити_к, велоцити_и):
супер().__у томе__()
селф.поситион = (к, и)
селф.велоцити = (велоцити_к, велоцити_и)
дефажурирање(сам):
селф.поситион = (селф.поситион[0] + селф.велоцити[0], селф.поситион[1] + селф.велоцити[1])
дефцртати(сам, површина):
пигаме.драв.круг(површине, (255, 0, 0), селф.позиција, 10)
Метода __инит__ је посебна метод у Питхон класама који се покреће када креирате инстанцу класе. Можете га користити за иницијализацију атрибута инстанце.
У овом коду, метода __инит__ класе Плаиер узима четири аргумента: к, и, велоцити_к и велоцити_и. Ови аргументи одређују почетну позицију и брзину сприте-а играча.
Метода __инит__ такође позива методу супер().__инит__(), која је метода __инит__ родитељске класе Сприте. Ово је неопходно јер је класа Плаиер подкласа класе Сприте, а __инит__ метода класе Сприте поставља неке атрибуте који су потребни свим спријтовима.
Додавање атрибута и метода за контролу понашања
Сада када имате основну класу Сприте, можете додати атрибуте и методе за контролу понашања вашег лика у игри. Ово може укључивати ствари попут кретања, напада, скакања и још много тога.
Да бисте додали ове атрибуте и методе, мораћете да размислите о томе које акције желите да играте карактер који можете да изведете и дефинишете одговарајуће атрибуте и методе у вашем Сприте-у класа.
На пример, можда ћете желети да додате метод за контролу кретања духа, као што је мове_лефт() метод који смањује брзину духа на к-оси.
Ево примера модификоване класе Сприте која укључује ове додатне атрибуте и методе:
класаПлаиер(пигаме.сприте. Сприте):
деф__у томе__(селф, к, и, велоцити_к, велоцити_и):
супер().__у томе__()
селф.поситион = (к, и)
селф.велоцити = (велоцити_к, велоцити_и)
дефажурирање(сам):
селф.поситион = (селф.поситион[0] + селф.велоцити[0], селф.поситион[1] + селф.велоцити[1])
дефцртати(сам, површина):
пигаме.драв.круг(површине, (255, 0, 0), селф.позиција, 10)
дефпомери се лево(сам):
селф.велоцити = (-1, селф.велоцити[1])
дефмове_ригхт(сам):
селф.велоцити = (1, селф.велоцити[1])
Да бисте користили класу Плаиер у својој игри Пигаме, мораћете да креирате инстанцу класе и по потреби позовете њене методе.
Почните тако што ћете креирати прозор и инстанцу сприте-а Плаиер:
# Иницијализујте Пигаме
пигаме.инит()# Подесите величину прозора
величина_прозора = (640, 480)# Направите прозор
прозор = пигаме.дисплаи.сет_моде (величина_прозора)
# Креирајте сприте играча
играч = Играч(320, 240, 0, 0)
Затим дефинишите главну петљу игре која обрађује догађаје на тастатури и ажурирања и црта сприте. Када притиснете тастере са стрелицом лево или десно, срајт ће се померити у одговарајућем смеру.
# Главна петља игре
докИстина:
# Руковати догађајима
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
пигаме.куит()
сис.екит()
ако евент.типе == пигаме. КЕИДОВН:
ако евент.кеи == пигаме. К_ЛЕФТ:
плаиер.мове_лефт()
елиф евент.кеи == пигаме. К_ДЕСНО:
плаиер.мове_ригхт()
# Ажурирајте сприте играча
плаиер.упдате()
# Очистите прозор
виндов.филл((255, 255, 255))
# Нацртајте сприте играча
плаиер.драв (прозор)
# Ажурирајте екран
пигаме.дисплаи.упдате()
Са резултујућим програмом, моћи ћете да контролишете сприте играча и посматрате како се црта на екрану на различитим позицијама:
Учитавање и приказ графике Сприте-а помоћу модула слике
Сада када имате основну Сприте класу са атрибутима и методама за контролу понашања, вероватно ћете желети да додате нешто графике свом сприте-у. Пигамеов сликовни модул олакшава учитавање и приказивање слика на екрану.
Да бисте учитали слику, мораћете да користите функцију пигаме.имаге.лоад() која узима путању датотеке као аргумент и враћа објекат Сурфаце. Затим можете доделити овај објекат Сурфаце атрибуту сприте-а, као што је селф.имаге, који можете користити да нацртате сприте на екрану.
На пример, ево како можете да учитате слику и доделите је духу:
увоз пигаме
класаПлаиер(пигаме.сприте. Сприте):
деф__у томе__(селф, к, и, велоцити_к, велоцити_и, имаге_патх):
супер().__у томе__()
селф.поситион = (к, и)
селф.велоцити = (велоцити_к, велоцити_и)
селф.имаге = пигаме.имаге.лоад (патх_имаге)
дефажурирање(сам):
селф.поситион = (селф.поситион[0] + селф.велоцити[0], селф.поситион[1] + селф.велоцити[1])
дефцртати(сам, површина):
површине.блит(селф.слика, селф.позиција)
дефпомери се лево(сам):
селф.велоцити = (-1, селф.велоцити[1])
дефмове_ригхт(сам):
селф.велоцити = (1, селф.велоцити[1])
Овај код дефинише класу Плаиер која проширује Пигаме класу Сприте и укључује атрибуте за позицију, брзину и слику, као и методе за ажурирање позиције сприте-а, исцртавање сприте-а на екран и контролу кретање.
Можете погледати ово ГитХуб репо за комплетан код!
Побољшајте управљање Сприте-ом помоћу класе Сприте
Класа Сприте пружа згодан контејнер за све атрибуте и понашања лика игре, што олакшава ажурирање, цртање и контролу сприте-а на екрану.
Имплементацијом Сприте класе у своју Пигаме игру, можете побољшати свеукупно искуство за своје играче и поједноставити процес развоја за себе.