ПиГаме је моћна и популарна библиотека за развој игара за Питхон. Пружа скуп алата и функција које олакшавају креирање игара и других интерактивних апликација. Једна корисна карактеристика ПиГаме-а је његова способност цртања објеката и облика.
Модул пигаме.драв
У ПиГаме-у, цртање објеката и облика је једноставан процес. Можете користити пигаме.драв модул за цртање облика као што су правоугаоници, кругови, линије и још много тога.
Пре него што почнете, уверите се да имате пип инсталиран на вашем уређају, а затим користите ову наредбу да инсталирате ПиГаме модул:
пип инсталл пигаме
Цртање основних облика
Тхе пигаме.драв модул пружа неколико функција које вам омогућавају да цртате основне облике. Свака функција узима скуп параметара за дефинисање облика и његове позиције.
-
рецт(): Помоћу ове функције можете нацртати правоугаоник. Ово је један од најчешће коришћених облика у играма. Можете креирати платформе, зидове и друге објекте са правоугаоницима. Функција узима четири параметра: површину (површину на којој се црта правоугаоник), боју, правоугаоник (Рецт објекат) и ширину (дебљина линије).
пигаме.драв.рецт (површина, боја, правоугаоник, ширина)
-
круг(): Нацртајте круг. Потребна су четири параметра: површина, боја, поз (центар круга) и радијус.
пигаме.драв.цирцле (површина, боја, поз, радијус)
-
полигон(): Нацртајте полигон. Потребна су четири параметра: површина, боја, тачке (листа тачака које дефинишу облик полигона) и ширина.
пигаме.драв.полигон (површина, боја, тачке, ширина)
-
линија(): Нацртали линију. Потребна су четири параметра: површина, боја, старт_пос и енд_пос.
пигаме.драв.лине (површина, боја, старт_пос, енд_пос)
Комплетну листу функција и њихових параметара можете пронаћи на званичном ПиГаме документација за модул за цртање.
Цртање сложених облика
Поред основних облика, ПиГаме вам такође омогућава да цртате сложене облике као што су лукови, елипсе и алине.
-
арц(): Ова функција црта лук на површини. Лук је део круга. Потребно је шест параметара: површина, боја, правоугаоник, почетни угао, крајњи угао и ширина. Наведите углове у степенима, при чему 0 степени показује десно и расте у смеру казаљке на сату. Параметар ширине одређује дебљину лука.
пигаме.драв.арц (површина, боја, правоугаоник, почетни угао, крајњи угао, ширина)
-
елипса(): Нацртајте елипсу на површини. Елипса је растегнути круг. Потребна су четири параметра: површина, боја, правоугаоник и ширина.
пигаме.драв.еллипсе (површина, боја, правоугаоник, ширина)
-
аалине(): Користите да нацртате једну линију са анти-алиасингом на површини. Анти-алиасинг је техника која се користи за изглађивање ивица облика, тако да изгледа природније. Потребна су четири параметра која одражавају линија() функција: површина, боја, старт_пос и енд_пос.
пигаме.драв.аалине (површина, боја, старт_пос, енд_пос)
Креирање угнежђених облика у ПиГаме-у
Још једна занимљива карактеристика ПиГаме-а је могућност цртања облика унутар другог облика. То можете учинити користећи комбинацију основних функција цртања облика у ПиГаме-у.
Да бисте нацртали облик унутар другог облика, прво можете нацртати унутрашњи облик, а затим нацртати спољашњи облик на њему. Унутрашњи облик може бити било који основни облик, као што је правоугаоник или круг.
На пример, да бисте нацртали правоугаоник унутар круга, можете користити пигаме.драв.цирцле() функцију да нацртате круг, а затим користите пигаме.драв.рецт() функција да нацрта правоугаоник на њему.
Можете пронаћи следеће примере кода у овај ГитХуб репо.
Ево примера исечка кода који показује како да нацртате правоугаоник унутар круга:
увоз пигаме
# Иницијализујте пигаме
пигаме.инит()# Направите прозор
прозор = пигаме.дисплаи.сет_моде((800, 600))# Направите круг
цирцле_рецт = пигаме.драв.цирцле (прозор, (255, 255, 255), (400, 300), 100)# Направите површину за правоугаоник
рецтангле_сурфаце = пигаме. Површина((50, 50))
рецтангле_сурфаце.сет_цолоркеи((0, 0, 0))# Нацртајте правоугаоник на површини
пигаме.драв.рецт (рецтангле_сурфаце, (255, 0, 0), (0, 0, 50, 50))# Нанесите површину на круг
виндов.блит (рецтангле_сурфаце, (375, 275))# Главна петља
докИстина:
# Напуштање игре
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
пигаме.куит()
излаз()
# Ажурирајте екран
пигаме.дисплаи.упдате()
Ово ствара ефекат правоугаоника унутар круга. Ову технику можете користити за креирање сложенијих облика и елемената игре комбиновањем више облика.
Цртање слика
ПиГаме вам такође омогућава да цртате слике. Можете користити пигаме.имаге.лоад() функција за учитавање слике из датотеке и пигаме.имаге.блит() функција да нацртати слику на екрану.
Синтакса за пигаме.имаге.лоад() изгледа овако:
пигаме.имаге.лоад (име датотеке)
А ево и синтаксе за пигаме.имаге.блит():
пигаме.имаге.блит (слика, рец)
Поред учитавања и цртања слика, ПиГаме такође нуди неколико других функција повезаних са сликама. Ове функције вам омогућавају да манипулишете сликама на различите начине, као што су скалирање, ротирање, окретање и исецање.
Додавање напредних функција
ПиГаме такође пружа неке напредне функције за цртање објеката и облика. На пример, можете користити пигаме.моусе.гет_пос() функцију за добијање положаја миша и пигаме.моусе.гет_прессед() функција за добијање стања дугмета миша. Помоћу ових функција можете креирати функцију кликни за цртање која вам омогућава да цртате облике кликом миша.
увоз пигаме
# Иницијализујте пигаме
пигаме.инит()# Направите прозор
прозор = пигаме.дисплаи.сет_моде((800, 600))# Главна петља
докИстина:
# Добијте позицију миша
моусе_поситион = пигаме.моусе.гет_пос()# Добијте стање дугмета миша
моусе_прессед = пигаме.моусе.гет_прессед()# Напуштање игре
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
пигаме.куит()
излаз()# Цртање круга када се притисне миш
ако моусе_прессед[0] == 1:
пигаме.драв.цирцле (прозор, (255, 0, 0), положај_миша, 20)
# Ажурирајте екран
пигаме.дисплаи.упдате()
Испод је излаз:
Лако креирајте игре спријтова у ПиГаме-у
ПиГаме такође пружа моћан скуп алата за лако креирање спријтова и објеката у игри. Са пигаме.драв модул, лако можете креирати спријтове које можете користити у својим играма. Можете са лакоћом да креирате ликове, објекте и друге елементе игре.