Игра није ништа без уноса, а уз подршку Пигаме-а за унос миша и додира, можете осигурати да је ваша игра доступна.

У данашње време, уређаји са екраном осетљивим на додир су свуда. Није изненађење да програмери игара све више користе унос додиром у својим играма, а оквири то чине лакшим и лакшим.

ПиГаме олакшава креирање игара и апликација које могу да искористе предности додирних уноса.

ПиГаме-ова подршка за додир

ПиГаме има уграђену подршку за рад са додирним улазима. Ово укључује подршку за уносе додиром мишем и прстима.

Да бисте открили миша, можете користити пигаме. МОУСЕБУТТОНДОВН и пигаме. МОУСЕБУТТОНУП догађаји. На пример:

за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ДУГМЕ МИША:
штампа („Дугме миша притиснуто“)

Да бисте открили уносе додира прстима, можете користити пигаме. ФИНГЕРДОВН и пигаме. ФИНГЕРУП догађаји. На пример:

за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ПРСТ НАДОЛЕ:
штампа („Прст је додирнуо екран“)

Креирање једноставне игре

Можете пронаћи сав код у овај ГитХуб Репо.

Почните креирањем једноставне игре. Ова игра ће се састојати од лика играча који можете да се крећете по екрану користећи додирне уносе. Да бисте то урадили, мораћете да направите петљу игре и лик играча.

Пре него што почнете, уверите се да јесте пип инсталиран на вашем уређају, а затим користите следећу команду да бисте инсталирали ПиГаме модул:

пип инсталл пигаме

Сада увезите ПиГаме модул у код своје игре:

увоз пигаме
пигаме.инит()

Након тога, креирајте прозор игре и објекат игре:

# Подесите екран
величина = (400, 400)
екран = пигаме.дисплаи.сет_моде (величина)

# Креирајте објекат играча
играч = пигаме. Површина((50, 50))
плаиер.филл((255, 0, 0))

# Подесите почетну позицију плејера
плаиер_пос = [175, 175]

На крају, креирајте петљу игре:

# Петља игре
трчање = Истина

док трчање:
# Проверите догађаје
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе

# Ажурирајте позицију играча
играч_пос[0] += 5
играч_пос[1] += 5

# Нацртајте играча
сцреен.блит (плаиер, плаиер_пос)

# Ажурирајте екран
пигаме.дисплаи.упдате()

Имајте на уму да горњи код креира само једноставну игру у којој се лик играча креће по екрану. Да би игра била занимљивија, можете додајте физику и колизије да створи препреке које играч треба да савлада.

Улази на додир мишем за кретање играча

Сада када имате игру са ликом играча, можете почети да додајете додирне уносе. Да бисте то урадили, мораћете да додате обрађивач догађаја за уносе миша. Додајте пигаме. МОУСЕБУТТОНДОВН и пигаме. МОУСЕБУТТОНУП догађаје у петљу игре.

Креирајте обрађивач догађаја за уносе миша. Када играч притисне дугме миша, ажурирајте позицију лика на тренутну позицију миша. Програм ће игнорисати отпуштање дугмета миша, пошто у том случају не мора ништа да предузима.

# Петља игре
трчање = Истина

док трчање:
# Проверите догађаје
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе
# Проверите уносе мишем
елиф евент.типе == пигаме. ДУГМЕ МИША:
моусе_к, моусе_и = евент.пос
играч_пос[0] = миш_к
играч_пос[1] = моусе_и
елиф евент.типе == пигаме. ПОДЕШАВАЊЕ МИША:
проћи

сцреен.филл((0, 0, 0))

# Нацртајте играча
сцреен.блит (плаиер, плаиер_пос)

# Ажурирајте екран
пигаме.дисплаи.упдате()

Такође можете додати додатну логику руковаоцу догађаја да би се играч померио као одговор на унос миша.

Уноси додиром прста за кретање играча

Поред уноса мишем, можете додати и уносе додиром прста. Да бисте то урадили, мораћете да додате руковалац догађаја за уносе додиром прста.

Додајте пигаме. ФИНГЕРДОВН и пигаме. ФИНГЕРУП догађаји у циклусу игре:

# Петља игре
трчање = Истина

док трчање:
# Проверите догађаје
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе
# Проверите уносе мишем
елиф евент.типе == пигаме. ДУГМЕ МИША:
моусе_к, моусе_и = евент.пос
играч_пос[0] = миш_к
играч_пос[1] = моусе_и
елиф евент.типе == пигаме. ПОДЕШАВАЊЕ МИША:
проћи
# Проверите уносе прстима
елиф евент.типе == пигаме. ПРСТ НАДОЛЕ:
фингер_к, фингер_и = догађај.поз
играч_пос[0] = прст_к
играч_пос[1] = фингер_и
елиф евент.типе == пигаме. ПРСТ:
проћи

сцреен.филл((0, 0, 0))

# Нацртајте играча
сцреен.блит (плаиер, плаиер_пос)

# Ажурирајте екран
пигаме.дисплаи.упдате()

Обратите пажњу колико је ово слично руковаоцу догађаја уноса мишем. Овај обрађивач догађаја ажурира позицију лика када играч притисне прст на екран. Када пусте прст, ништа се не дешава. Ово вам омогућава да креирате игру којом можете да контролишете користећи и миш и прст додиром. Имајте на уму да можете користити и друге догађаје као нпр пигаме. ФИНГЕРМОТИОН да реагују на покрете прстију.

Пигаме-ове додатне функције додира

Са основним додирним функцијама на месту, можете почети да додајете напредније функције. ПиГаме има неколико уграђених функција које вам могу помоћи да додате више додирних функција вашој игри.

Прва карактеристика је пигаме.моусе.сет_висибле() функција. Ова функција вам омогућава да сакријете курсор миша. Ово може бити корисно ако желите да креирате игру која користи само додирне уносе, а не миш.

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

пигаме.моусе.сет_висибле(Фалсе)

Тхе пигаме.моусе.сет_пос() функција поставља курсор миша на одређену позицију на екрану. Ово је корисно ако желите да померите миша на одређену локацију без коришћења уноса мишем.

Испод је пример како да користите сет_пос() функција:

пигаме.моусе.сет_пос(200, 200)

Можете користити пигаме.моусе.гет_рел() функција да добије релативно кретање миша. Ово можете користити да откријете колико се миш померио од последњег догађаја миша.

Овако можете користити гет_рел() функција:

дк, ди = пигаме.моусе.гет_рел()

Коначно, можете користити пигаме.моусе.гет_прессед() функција за проверу да ли играч притиска било који тастер миша. Ово може бити корисно када креирате игре са контролама мишем/додиром.

Испод је пример како да користите гет_прессед() функција:

моусе_буттонс = пигаме.моусе.гет_прессед()

ПиГаме такође пружа а МОУСЕВХЕЕЛ тип догађаја који можете користити за откривање померања точкића миша. Подржава и вертикалне и хоризонталне скроловање.

Ево примера:

за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ТОЧАК МИША:
ако догађај.и > 0:
штампа („Точак миша померен нагоре“)
елиф догађај.и < 0:
штампа („Точак миша померен надоле“)

Креирајте интерактивне игре са додирним улазима

Када су додирни улази на месту, сада можете да креирате интерактивне игре. На пример, можете креирати игру у којој играч може да се креће по екрану користећи додирне уносе. Такође можете креирати игре засноване на покретима, где играч може да изводи различите покрете да би покренуо радње у игри.

Могућности су бескрајне када је у питању креирање игара са додирним улазима. Уз помоћ ПиГаме-а, можете креирати игре које су и забавне и интерактивне. Зато изађите и почните да стварате!