Bekerja Dengan Input Touch Screen di PyGame
Table of content:
Di zaman sekarang ini, perangkat layar sentuh ada di mana-mana. Tidak mengherankan jika pengembang game semakin banyak menggunakan input sentuh dalam game mereka, dan kerangka kerja membuat ini semakin mudah.
PyGame mempermudah pembuatan game dan aplikasi yang dapat memanfaatkan input sentuh.
Dukungan Sentuh PyGame
PyGame memiliki dukungan bawaan untuk bekerja dengan input sentuh. Ini termasuk dukungan untuk input sentuh mouse dan jari.
Untuk mendeteksi mouse, Anda dapat menggunakan pygame.MOUSEBUTTONDOWN Dan pygame.MOUSEBUTTONUP acara. Misalnya:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
print("Mouse button pressed")
Untuk mendeteksi input sentuhan jari, Anda dapat menggunakan pygame.FINGERDOWN Dan pygame.FINGERUP acara. Misalnya:
for event in pygame.event.get():
if event.type == pygame.FINGERDOWN:
print("Finger touched the screen")
Membuat Game Sederhana
Mulailah dengan membuat game sederhana. Gim ini akan terdiri dari karakter pemain yang dapat Anda gerakkan di sekitar layar menggunakan input sentuh. Untuk melakukan ini, Anda perlu membuat lingkaran permainan dan karakter pemain.
Sebelum Anda mulai, pastikan Anda telah menginstal pip pada perangkat Anda, kemudian gunakan perintah berikut untuk menginstal PyGame modul:
pip install pygame
Sekarang, impor modul PyGame di kode game Anda:
import pygame
pygame.init()
Setelah itu, buat jendela game dan objek game:
size = (400, 400)
screen = pygame.display.set_mode(size)
player = pygame.Surface((50, 50))
player.fill((255, 0, 0))
player_pos = [175, 175]
Terakhir, buat lingkaran permainan:
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
player_pos[0] += 5
player_pos[1] += 5
screen.blit(player, player_pos)
pygame.display.update()
Perhatikan bahwa kode di atas hanya membuat game sederhana di mana karakter pemain bergerak di sekitar layar. Untuk membuat game lebih menarik, Anda dapat menambahkan fisika dan tabrakan untuk menciptakan rintangan yang harus diatasi pemain.
Input Sentuhan Mouse untuk Gerakan Pemain
Sekarang Anda memiliki permainan dengan karakter pemain, Anda dapat mulai menambahkan input sentuh. Untuk melakukan ini, Anda perlu menambahkan event handler untuk input mouse. Tambahkan pygame.MOUSEBUTTONDOWN Dan pygame.MOUSEBUTTONUP acara ke loop game.
Buat penangan acara untuk input mouse. Saat pemain menekan tombol mouse, perbarui posisi karakter ke posisi mouse saat ini. Program akan mengabaikan pelepasan tombol tetikus, karena tidak perlu melakukan tindakan apa pun dalam kasus tersebut.
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame.MOUSEBUTTONUP:
pass
screen.fill((0, 0, 0))
screen.blit(player, player_pos)
pygame.display.update()
Anda juga dapat menambahkan logika ekstra ke event handler untuk membuat pemain bergerak sebagai respons terhadap input mouse.
Input Sentuhan Jari untuk Gerakan Pemain
Selain input mouse, Anda juga dapat menambahkan input sentuhan jari. Untuk melakukan ini, Anda perlu menambahkan event handler untuk input sentuhan jari.
Tambahkan pygame.FINGERDOWN Dan pygame.FINGERUP acara ke loop game:
running = Truewhile running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame.MOUSEBUTTONUP:
pass
elif event.type == pygame.FINGERDOWN:
finger_x, finger_y = event.pos
player_pos[0] = finger_x
player_pos[1] = finger_y
elif event.type == pygame.FINGERUP:
pass
screen.fill((0, 0, 0))
screen.blit(player, player_pos)
pygame.display.update()
Perhatikan betapa miripnya ini dengan event handler input mouse. Event handler ini memperbarui posisi karakter saat pemain menekan jari mereka di layar. Ketika mereka melepaskan jari mereka, tidak ada yang terjadi. Ini memungkinkan Anda membuat game yang dapat Anda kontrol menggunakan input sentuh mouse dan jari. Perlu diingat bahwa Anda juga dapat menggunakan acara lain seperti pygame.FINGERMOTION untuk menanggapi gerakan jari.
Fitur Sentuh Tambahan Pygame
Dengan adanya fitur sentuh dasar, Anda dapat mulai menambahkan fitur yang lebih canggih. PyGame memiliki beberapa fitur bawaan yang dapat membantu Anda menambahkan lebih banyak fitur sentuh ke game Anda.
Fitur pertama adalah pygame.mouse.set_visible() fungsi. Fungsi ini memungkinkan Anda untuk menyembunyikan kursor mouse. Ini berguna jika Anda ingin membuat game yang hanya menggunakan input sentuh dan bukan mouse.
Berikut adalah contoh cara menggunakan set_visible() fungsi:
pygame.mouse.set_visible(False)
Itu pygame.mouse.set_pos() fungsi mengatur kursor mouse ke posisi tertentu di layar. Ini berguna jika Anda ingin memindahkan mouse ke lokasi tertentu tanpa menggunakan input mouse.
Di bawah ini adalah contoh cara menggunakan set_pos() fungsi:
pygame.mouse.set_pos(200, 200)
Anda dapat menggunakan pygame.mouse.get_rel() berfungsi untuk mendapatkan gerakan relatif dari mouse. Anda dapat menggunakan ini untuk mendeteksi seberapa jauh pergerakan mouse sejak kejadian mouse terakhir.
Ini adalah bagaimana Anda dapat menggunakan get_rel() fungsi:
dx, dy = pygame.mouse.get_rel()
Akhirnya, Anda dapat menggunakan pygame.mouse.get_pressed() berfungsi untuk memeriksa apakah pemain menekan tombol mouse apa saja. Ini dapat berguna saat membuat game dengan mouse/kontrol sentuh.
Di bawah ini adalah contoh cara menggunakan get_pressed() fungsi:
mouse_buttons = pygame.mouse.get_pressed()
PyGame juga menyediakan RODA MOUSE jenis acara yang dapat Anda gunakan untuk mendeteksi gulungan roda mouse. Ini mendukung gulungan vertikal dan horizontal.
Berikut contohnya:
for event in pygame.event.get():
if event.type == pygame.MOUSEWHEEL:
if event.y > 0:
print("Mouse wheel scrolled up")
elif event.y < 0:
print("Mouse wheel scrolled down")
Buat Game Interaktif Dengan Input Sentuh
Dengan input sentuh, kini Anda dapat membuat game interaktif. Misalnya, Anda dapat membuat game yang pemainnya dapat bergerak di sekitar layar menggunakan input sentuh. Anda juga dapat membuat game berbasis gerakan, di mana pemain dapat melakukan berbagai gerakan untuk memicu tindakan dalam game.
Kemungkinannya tidak terbatas dalam hal membuat game dengan input sentuh. Dengan bantuan PyGame, Anda dapat membuat game yang menyenangkan dan interaktif. Jadi pergilah ke sana dan mulailah membuat!