Играта не е нищо без въвеждане и с поддръжката на Pygame както за въвеждане с мишка, така и за въвеждане с докосване, можете да гарантирате, че вашата игра е достъпна.

В днешно време устройствата със сензорен екран са навсякъде. Не е изненада, че разработчиците на игри все повече използват сензорно въвеждане в своите игри, а рамките правят това по-лесно и по-лесно.

PyGame улеснява създаването на игри и приложения, които могат да се възползват от сензорното въвеждане.

Touch поддръжка на PyGame

PyGame има вградена поддръжка за работа със сензорни входове. Това включва поддръжка за въвеждане с докосване с мишка и пръст.

За да откриете мишка, можете да използвате pygame. БУТОН НА МИШКАТА и pygame. БУТОН НА МИШКАТА НАГОРЕ събития. Например:

за събитие в pygame.event.get():
ако event.type == pygame. MOUSEBUTTONDOWN:
печат („Натиснат бутон на мишката“)

За да разпознаете въвеждането с докосване с пръст, можете да използвате pygame. ПРЪСТ НАДОЛУ и pygame. ПРЪСТ НАГОРЕ събития. Например:

за събитие в pygame.event.get():
ако event.type == pygame. ПРЪСТ НАДОЛУ:
печат („Пръст докосна екрана“)
instagram viewer

Създаване на проста игра

Можете да намерите целия код в това GitHub Repo.

Започнете, като създадете проста игра. Тази игра ще се състои от герой на играч, който можете да местите по екрана с помощта на сензорни входове. За да направите това, ще трябва да създадете цикъл на играта и персонаж на играч.

Преди да започнете, уверете се, че имате pip, инсталиран на вашето устройство, след това използвайте следната команда, за да инсталирате PyGame модул:

pip инсталирайте pygame

Сега импортирайте модула PyGame в кода на вашата игра:

импортиране pygame
pygame.init()

След това създайте прозореца на играта и обект на играта:

# Настройте дисплея
размер = (400, 400)
екран = pygame.display.set_mode (размер)

# Създаване на обект играч
играч = pygame. Повърхност((50, 50))
player.fill((255, 0, 0))

# Задайте началната позиция на плейъра
player_pos = [175, 175]

Накрая създайте цикъл на играта:

# Цикълът на играта
бягане = Вярно

докато работи:
# Проверете за събития
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно

# Актуализирайте позицията на играча
player_pos[0] += 5
player_pos[1] += 5

# Начертайте играча
screen.blit (плейър, player_pos)

# Актуализирайте дисплея
pygame.display.update()

Имайте предвид, че горният код създава само проста игра, в която персонажът на играча се движи по екрана. За да направите играта по-интересна, можете добавете физика и сблъсъци за създаване на препятствия, които играчът да преодолее.

Докосване на мишката за движение на играча

Сега, когато имате игра с персонаж на играч, можете да започнете да добавяте сензорни входове. За да направите това, ще трябва да добавите манипулатор на събития за входовете на мишката. Добавете pygame. БУТОН НА МИШКАТА и pygame. БУТОН НА МИШКАТА НАГОРЕ събития към цикъла на играта.

Създайте манипулатор на събития за входовете на мишката. Когато играч натисне бутона на мишката, актуализирайте позицията на героя до текущата позиция на мишката. Програмата ще игнорира отпускането на бутона на мишката, тъй като в този случай не е необходимо да предприема никакви действия.

# Цикълът на играта
бягане = Вярно

докато работи:
# Проверете за събития
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно
# Проверете за въвеждане на мишката
елиф event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = мишка_x
player_pos[1] = mouse_y
елиф event.type == pygame. MOUSEBTONUP:
пас

screen.fill((0, 0, 0))

# Начертайте играча
screen.blit (плейър, player_pos)

# Актуализирайте дисплея
pygame.display.update()

Можете също така да добавите допълнителна логика към манипулатора на събития, за да накарате играча да се движи в отговор на въвеждането на мишката.

Докосване с пръсти за движение на играча

В допълнение към въвеждането с мишката, можете също да добавите въвеждане чрез докосване с пръст. За да направите това, ще трябва да добавите манипулатор на събития за въвеждането с докосване с пръст.

Добавете pygame. ПРЪСТ НАДОЛУ и pygame. ПРЪСТ НАГОРЕ събития към цикъла на играта:

# Цикълът на играта
бягане = Вярно

докато работи:
# Проверете за събития
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно
# Проверете за въвеждане на мишката
елиф event.type == pygame. MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = мишка_x
player_pos[1] = mouse_y
елиф event.type == pygame. MOUSEBTONUP:
пас
# Проверете за въвеждане с пръст
елиф event.type == pygame. ПРЪСТ НАДОЛУ:
finger_x, finger_y = event.pos
player_pos[0] = пръст_x
player_pos[1] = finger_y
елиф event.type == pygame. ПРЪСТ НАГОРЕ:
пас

screen.fill((0, 0, 0))

# Начертайте играча
screen.blit (плейър, player_pos)

# Актуализирайте дисплея
pygame.display.update()

Забележете колко подобно е това на манипулатора на събития за въвеждане на мишката. Този инструмент за обработка на събития актуализира позицията на героя, когато играчът натисне пръста си върху екрана. Когато пуснат пръста си, нищо не се случва. Това ви позволява да създадете игра, която можете да управлявате, като използвате както мишка, така и докосване с пръст. Имайте предвид, че можете да използвате и други събития, като напр pygame. ДВИЖЕНИЕ НА ПРЪСТИТЕ да реагира на движението на пръстите.

Допълнителни сензорни функции на Pygame

С основните сензорни функции можете да започнете да добавяте по-разширени функции. PyGame има няколко вградени функции, които могат да ви помогнат да добавите повече сензорни функции към вашата игра.

Първата характеристика е pygame.mouse.set_visible() функция. Тази функция ви позволява да скриете курсора на мишката. Това може да бъде полезно, ако искате да създадете игра, която използва само сензорни входове, а не мишката.

Ето пример за това как да използвате set_visible() функция:

pygame.mouse.set_visible(Невярно)

The pygame.mouse.set_pos() функцията настройва курсора на мишката на определена позиция на екрана. Това е полезно, ако искате да преместите мишката до определено място, без да използвате въвеждането на мишката.

По-долу е даден пример как да използвате set_pos() функция:

pygame.mouse.set_pos(200, 200)

Можете да използвате pygame.mouse.get_rel() функция за получаване на относителното движение на мишката. Можете да използвате това, за да откриете колко далеч се е преместила мишката от последното събитие с мишката.

Ето как можете да използвате get_rel() функция:

dx, dy = pygame.mouse.get_rel()

Накрая можете да използвате pygame.mouse.get_pressed(), за да проверите дали играчът натиска някой бутон на мишката. Това може да бъде полезно, когато създавате игри с контроли с мишка/докосване.

По-долу е даден пример как да използвате get_pressed() функция:

mouse_buttons = pygame.mouse.get_pressed()

PyGame също предоставя a КОЛЕЛО НА МИШКАТА тип събитие, което можете да използвате за откриване на превъртания на колелото на мишката. Поддържа както вертикално, така и хоризонтално превъртане.

Ето един пример:

за събитие в pygame.event.get():
ако event.type == pygame. КОЛЕЛО НА МИШКАТА:
ако събитие.y > 0:
печат („Колелцето на мишката превъртя нагоре“)
елиф събитие.y < 0:
печат („Колелцето на мишката превъртя надолу“)

Създавайте интерактивни игри със сензорни входове

С поставените сензорни входове вече можете да създавате интерактивни игри. Например, можете да създадете игра, в която играчът може да се движи по екрана с помощта на сензорни входове. Можете също така да създавате игри, базирани на жестове, където играчът може да изпълнява различни жестове, за да задейства действия в играта.

Възможностите са безкрайни, когато става въпрос за създаване на игри със сензорни входове. С помощта на PyGame можете да създавате игри, които са едновременно забавни и интерактивни. Така че излезте и започнете да създавате!