Manual Pygame
User Manual:
Open the PDF directly: View PDF .
Page Count: 8
Download | |
Open PDF In Browser | View PDF |
Manual Pygame Pygame merupakan modul python yang dapat digunakan untuk pembuatan Game. Pada dokumen ini akan dijelaskan cara instalasi pygame, penggunaan atau import pygame dalam file code python, property-property dasar termasuk pengenalan event di dalam pygame. Dokumen ini diakhiri dengan contoh pembuatan game sederhana. Instalasi Modul Pygame Agar modul pygame dapat digunakan untuk pembuatan game, maka terlebih dahulu dilakukan instalasi Pygame. Tahapan-tahapan yang harus dilakukan untuk instalasi pygame ini adalah : a. Siapkan file pygame.whl Download library pygame di https://www.lfd.uci.edu/~gohlke/pythonlibs/ .Sesuaikan versi python yang terinstall dengan versi library pygame yang akan di download. Contoh python v3.5 telah terinstall, maka download library pygame dengan cp35m-win32. b. Rubah file pygame.whl menjadi .zip Rubah extension file library pygame lalu extract isi library tersebut. c. Copy file pygame yang dibutuhkan i. masuk ke dalam directory python (C:\Users\#username\AppData\Local\Programs\Python\Python35-32) ii. masuk kedalam folder “include” dan buat folder baru bernama “pygame”. iii. Di dalam folder hasil extract file library pygame yang sudah didownload, masuk ke “pygame1.9.4.data\header”, copy semua file di dalam folder tersebut dan masukkan ke dalam folder: C:\Users\#username\AppData\Local\Programs\Python\Python35-32\include\pygame iv. kembali ke folder hasil extract file library pygame tadi, copy folder “pygame” dan “pygame1.9.4.dist-info” kedalam: C:\Users\#username\AppData\Local\Programs\Python\Python35-32\Lib\site-packages d. Cek hasil installasi Buka IDLE Python lalu lakukan perintah “import pygame”, jika tidak ada tulisan error maka pygame sudah berhasil terinstall. Instalasi Subclass Untuk dapat menggunakan method-method ataupun event yang terdapat pada modul pygame, maka terlebih dahulu dilakukan perintah import pygame, seperti contoh berikut ini : import pygame Contoh penggunaan pygame pertama kali, dapat dilihat sebagai berikut : import pygame pygame.init() gameDisplay = pygame.display.set_mode((800,600)) gameDisplay.fill((255,255,255)) pygame.display.set_caption(“Pygame”) pygame.display.update() Pygame sendiri memerlukan syntax pembangun (pygame.init) untuk membuat sebuah window screen dasar dan menghidupkan setiap modul milik pygame, modul tersebut nantinya akan mengacu pada variable gameDisplay (seperti contoh diatas) atau disebut juga dengan Surface. Property Pygame Berikut ini adalah property-property dasar yang digunakan untuk pembuatan game dengan modul pygame. a. Pewarnaan Warna dalam Pygame tersusun dari kumpulan angka (0-255) yang mengambarkan komposisi warna merah, hijau, biru (RGB). gameDisplay.fill((255,255,255)) b. Event for event in pygame.event.get(): if event.type == pygame.QUIT: print (“Close”) if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: print (“GO!”) event.type berfungsi sebagai kondisi, syntax-syntax dibawah event tersebut akan dieksekusi jika branchcondition pada event.type bernilai True. Jika Window Pygame di tutup (quit) maka akan menjalankan perintah print (“Close”), dan jika tombol space ditekan (keydown) maka akan menjalankan perintah print (“GO!”). c. Object Pygame telah menyediakan beberapa objek yang dapat digunakan. Berikut objek-objek pada pygame tersebut: Object d. Syntax Contoh Rectangle pygame.draw.rect(Surface, warna, [x,y,lebar,panjang]) pygame.draw.rect(gameDisplay , (255,255,0), [400,300,100,100]) Circle pygame.draw.circle(Surface, warna, (x, y), radius) pygame.draw.circle(gameDispl ay, (255,255,0), (400, 300), 30) Polygon pygame.draw.polygon(Surface , warna, [[x1, y1], [x2, y2],[x3, y3]]) pygame.draw.polygon(gameDisp lay, (255,255,0), [[100, 100], [100, 400],[400, 300]]) Line pygame.draw.line(Surface, warna, [x1, y1], [x2, y2], ketebalan) pygame.draw.line(gameDisplay , (255,255,0), [100, 100], [200, 200], 10) Ellipse pygame.draw.ellipse(Surface , warna, [x1, y1, lebar, panjang]) pygame.draw.ellipse(gameDisp lay, (255,255,0), [100, 100, 200, 50]) Menambahkan gambar Untuk menambahkan suatu gambar kedalam Pygame memerlukan 2 perintah dasar, yaitu pygame.image.load() dan blit(). Syntax variabel = pygame.image.load(„nama file img.png‟) Contoh img1 = pygame.image.load('a.png') gameDisplay.blit(img1, (0,0)) Surface.blit(variabel, (x,y)) e. FPS (Frame Per Second) Pemberian FPS dalam pygame dapat mengunakan time.clock() milik pygame. FPS diperlukan untuk memberikan efek animasi per detik, jika tidak memberikan efek FPS maka animasi akan berjalan langsung menuju hasil akhir (animasi akhir). import pygame pygame.init() gameDisplay = pygame.display.set_mode((800,600)) gameDisplay.fill((255,255,255)) pygame.display.set_caption("Pygame") clock = pygame.time.Clock() while play: . . . . pygame.display.update() clock.tick(30) pygame.quit() f. Pergerakan Objek Pergerakan disini bisa dibagi akan 2 jenis, pergerakan dengan Statis dan Dinamis (dengan bantuan inputan event). Setiap pergerakan dalam Pygame harus lah berada dalam looping agar setiap pergerakan dapat dimuat ulang untuk ditampilkan. 1. Pergerakan Statis Pergerakan ini sangat tidak bergantung akan inputan suatu event dan terus dieksekusi saat pertama kali dijalankan, contoh objek akan bergerak dari titik A ke B sesaat setalah program berjalan. import pygame pygame.init() gameDisplay = pygame.display.set_mode((800,600)) gameDisplay.fill((255,255,255)) pygame.display.set_caption("Pygame") clock = pygame.time.Clock() def bendaA(kordinat_y): pygame.draw.rect(gameDisplay, (255,255,0), [400,kordinat_y,100,100]) play = True titik_awal_y = 100 while play: gameDisplay.fill((255,255,255)) bendaA(titik_awal_y) if titik_awal_y< 300: ytitik_awal_y+=5 pygame.display.update() clock.tick(30) pygame.quit() Jika program diatas dijalankan maka objek (rect/persegi) akan berjalan dari titik awal y=100 sampai y=300. Karena objek akan berpindah dari titik A ke B secara terus menerus maka didalam looping tersebut, maka screen harus dibersihkan, dan objek dipanggil kembali untuk membuat efek animasi dapat berjalan sempurna. 2. Pergerakan Dinamis Berbeda dengan pergerakan Statis, pergerakan ini sangat bergantung akan inputan suatu event terpenuhi. Biasanya pergerakan ini digunakan untuk membuat suatu objek bisa bergerak sesuai keinginan user untuk berjalan dari titik A ke B atau C. import pygame pygame.init() gameDisplay = pygame.display.set_mode((800,600)) gameDisplay.fill((255,255,255)) pygame.display.set_caption("Pygame") clock = pygame.time.Clock() def bendaA(kordinat_y): pygame.draw.rect(gameDisplay, (255,255,0), [400,kordinat_y,100,100]) play = True titik_awal_y = 100 temp_y = 0 while play: gameDisplay.fill((255,255,255)) for event in pygame.event.get(): if event.type == pygame.QUIT: play = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: temp_y = -5 elif event.key == pygame.K_DOWN: temp_y = 5 if event.type == pygame.KEYUP: if event.key == pygame.K_UP or event.key == pygame.K_DOWN: temp_y = 0 titik_awal_y += temp_y bendaA(ynya) pygame.display.update() clock.tick(30) pygame.quit() Program diatas merupakan perkembangan dari contoh code pergerakan statis, penambahan event.get KEYDOWN dan KEYUP merupakan kunci dari pergerakan dinamisnya. Jika tombol panah atas ditekan maka objek (rect) akan berjalan ke atas, jika tombol panah bawah ditekan maka sebaliknya, dan KEYDOWN sendiri bertugas untuk memberi kondisi dimana jika tombol sudah tidak ditekan maka objek akan berhenti di posisi saat ini (tidak naik dan turun). Contoh Game Berikut adalah contoh game yang dibuat dengan menggunakan modul pygame. Game yang dibuat adalah game untuk pergerakan pesawat yang menghindari meteor. Meteor-meteor ini akan bergerak jatuh secara acak. import pygame import random pygame.init() gameDisplay = pygame.display.set_mode((800,600)) gameDisplay.fill((255,255,255)) pygame.display.set_caption("Pygame") clock = pygame.time.Clock() play = True kordinat_x = 350 temp_x = 0 rocket = pygame.image.load('coba.png') rocket = pygame.transform.scale(rocket, (100, 200)) gameDisplay.blit(rocket, (kordinat_x,380)) kordinat_x_meteor = random.randrange(0,600) kordinat_y_meteor = -500 meteor = pygame.image.load('coba2.png') meteor = pygame.transform.scale(meteor, (150, 150)) gameDisplay.blit(meteor, (kordinat_x_meteor,kordinat_y_meteor)) while play: for event in pygame.event.get(): if event.type == pygame.QUIT: play = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: temp_x = -5 elif event.key == pygame.K_RIGHT: temp_x = 5 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: temp_x = 0 gameDisplay.fill((255,255,255)) gameDisplay.blit(meteor, (kordinat_x_meteor,kordinat_y_meteor)) gameDisplay.blit(rocket, (kordinat_x,380)) kordinat_y_meteor += 5 kordinat_x += temp_x if kordinat_y_meteor > 600: kordinat_y_meteor = -600 kordinat_x_meteor = random.randrange(0,600) pygame.display.update() clock.tick(60) pygame.quit() Sebagai contoh, program diatas menampilkan permainan sederharna yang memanfaatkan fungsi image.load, event.get, perpindahan dinamis dan statis. kordinat_x = 350 temp_x = 0 rocket = pygame.image.load('coba.png') rocket = pygame.transform.scale(rocket, (100, 200)) gameDisplay.blit(rocket, (kordinat_x,380)) kordinat_x_meteor = random.randrange(0,600) kordinat_y_meteor = -500 meteor = pygame.image.load('coba2.png') meteor = pygame.transform.scale(meteor, (150, 150)) gameDisplay.blit(meteor, (kordinat_x_meteor,kordinat_y_meteor)) Pergerakan dinamis untuk bagian roket, dan statis untuk meteor. Roket dapat digerakan dengan menekan arrow left/right untuk mengerakannya, sedangkan meteor akan turun dari atas ke bawah dengan posisi x secara acak (dengan memanfaatkan library random). while play: for event in pygame.event.get(): if event.type == pygame.QUIT: play = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: temp_x = -5 elif event.key == pygame.K_RIGHT: temp_x = 5 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: temp_x = 0 gameDisplay.fill((255,255,255)) gameDisplay.blit(meteor, (kordinat_x_meteor,kordinat_y_meteor)) gameDisplay.blit(rocket, (kordinat_x,380)) kordinat_y_meteor += 5 kordinat_x += temp_x if kordinat_y_meteor > 600: kordinat_y_meteor = -600 kordinat_x_meteor = random.randrange(0,600) Pergerakan tadi berada dalam loop awal, setalah fungsi event akan memulai memuat ulang screen pygame untuk menampilkan perubahan yang terjadi selama loop, sedangkan meteor akan terus berjalan kewabah hingga batas yang ditentukan lalu kembali ke titik y awal namun x yang berbeda secara terus menerus.
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 8 Language : en-US Tagged PDF : Yes Author : indah Creator : Microsoft® Word 2010 Create Date : 2018:09:26 11:01:55+07:00 Modify Date : 2018:09:26 11:01:55+07:00 Producer : Microsoft® Word 2010EXIF Metadata provided by EXIF.tools