Sebuah game bukanlah apa-apa tanpa input, dan dengan dukungan Pygame untuk mouse dan input sentuh, Anda dapat memastikan bahwa game Anda dapat diakses.
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:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. TOMBOL MOUSE:
mencetak("Tombol mouse ditekan")
Untuk mendeteksi input sentuhan jari, Anda dapat menggunakan pygame. FINGERDOWN Dan pygame. JARI acara. Misalnya:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. JARI KE BAWAH:
mencetak("Jari menyentuh layar")
Membuat Game Sederhana
Anda dapat menemukan semua kode di Repo GitHub ini.
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 memilikinya pip diinstal pada perangkat Anda, lalu gunakan perintah berikut untuk menginstal PyGame modul:
pip instal pygame
Sekarang, impor modul PyGame di kode game Anda:
impor pygame
pygame.init()
Setelah itu, buat jendela game dan objek game:
# Siapkan tampilan
ukuran = (400, 400)
layar = pygame.display.set_mode (ukuran)# Buat objek pemain
pemain = pygame. Permukaan((50, 50))
pemain.isi((255, 0, 0))
# Atur posisi awal pemain
pemain_pos = [175, 175]
Terakhir, buat lingkaran permainan:
# Putaran permainan
berlari = BENARketika berlari:
# Periksa acara
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU# Perbarui posisi pemain
pemain_pos[0] += 5
pemain_pos[1] += 5# Gambar pemainnya
screen.blit (pemain, pemain_pos)
# Perbarui tampilan
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 bisa menambahkan fisika dan tabrakan untuk menciptakan rintangan bagi pemain untuk diatasi.
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.
# Putaran permainan
berlari = BENARketika berlari:
# Periksa acara
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU
# Periksa input mouse
elif event.type == pygame. TOMBOL MOUSE:
mouse_x, mouse_y = event.pos
pemain_pos[0] = mouse_x
pemain_pos[1] = mouse_y
elif event.type == pygame. MOUSEBUTTONUP:
lulus
layar.isi((0, 0, 0))# Gambar pemainnya
screen.blit (pemain, pemain_pos)
# Perbarui tampilan
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. JARI acara ke loop game:
# Putaran permainan
berlari = BENARketika berlari:
# Periksa acara
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. BERHENTI:
berlari = PALSU
# Periksa input mouse
elif event.type == pygame. TOMBOL MOUSE:
mouse_x, mouse_y = event.pos
pemain_pos[0] = mouse_x
pemain_pos[1] = mouse_y
elif event.type == pygame. MOUSEBUTTONUP:
lulus
# Periksa input jari
elif event.type == pygame. JARI KE BAWAH:
finger_x, finger_y = event.pos
pemain_pos[0] = jari_x
pemain_pos[1] = jari_y
elif event.type == pygame. JARI:
luluslayar.isi((0, 0, 0))
# Gambar pemainnya
screen.blit (pemain, pemain_pos)
# Perbarui tampilan
pygame.display.update()
Perhatikan betapa miripnya ini dengan event handler input mouse. Penangan acara 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(PALSU)
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.
Ini contohnya:
untuk peristiwa di dalam pygame.event.get():
jika event.type == pygame. RODA MOUSE:
jika acara.y > 0:
mencetak("Roda mouse digulir ke atas")
elif acara.y < 0:
mencetak("Roda mouse digulir ke bawah")
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!