Anda di halaman 1dari 6

Nama : Ridwan Kustanto

NPM : 59414316
Kelas : 1IA10

Tentang Program
Program ini dibuat untuk memenuhi tugas dari dosen mata kuliah Algoritma dan
Pemrograman B. Game yang dibuat oleh penulis disini berjudul Flappy Ball. Penulis
menggunakan module tambahan untuk membuat game pada python yaitu pygame.
Cara Main
Cara memainkan game ini sangat sederhana, player hanya menggunakan arrow up
button untuk menaikan bola dan menyeimbangkannya sampai melewati rintangan yang muncul.
Setiap kali player berhasil melewati rintangan, score akan dihitung satu point dan rintangan
akan muncul lagi dengan posisi yang berbeda (random).
Design
Logika Program:

import pygame
Untuk memanggil module pygame.
from random import randint
Module randint digunakan untuk merandom type int .

black = (0, 0, 0) Untuk membuat variable warna yang akan dipanggil untuk
white = (255, 255, 255) memberi warna pada objek.

blue = (0, 255, 255)

green = (0, 255, 0)

red = (255, 0, 0)

pygame.init() Untuk menginisialisasi module pygame.

size = (700, 500) Membuat variable size untuk dipanggil di variable


screen yang ditujukan untuk menentukan lebar dan
screen = pygame.display.set_mode(size)
panjang window/frame untuk game ini.

pygame.display.set_caption("Flappy Ball")
Untuk memberi judul game.

Var done untuk menentukan program aktif / tidak.


done = False
Membuat variable clock untuk membuat objek
clock = pygame.time.Clock() dapat membaca waktu.

def ball(x,y):
Mendefinisikan fungsi untuk karakter utama /
pygame.draw.circle(screen, blue, (x,y), 20) bola dan membuat objek karakter utama.

def gameover():
Memdefinisikan fungsi untuk game over. Ketika
font = pygame.font.SysFont(None, 75)
keadaan ditentukan untuk game over maka
text = font.render("Game over", True, red) fungsi ini akan dijalankan dan menampilkan
text “Game Over”.
screen.blit(text, (150, 250))

def obstacle(xloc, yloc, xsize, ysize):

pygame.draw.rect(screen, green, (xloc, yloc, xsize, ysize))

pygame.draw.rect(screen, green, (xloc, int(yloc+ysize+space), xsize, ysize+500))


def obstacle(xloc, yloc, xsize, ysize):

pygame.draw.rect(screen, green, (xloc, yloc, xsize, ysize))

pygame.draw.rect(screen, green, (xloc, int(yloc+ysize+space), xsize, ysize+500))

Code diatas untuk mendefinisikan fungsi obstacle / rintangan. Isi dari fungsi ini
adalah membuat objek obstacle.

def Score(score):
Mendefinisikan fungsi score. Isi dari
font = pygame.font.SysFont(None, 55) fungsi ini adalah untuk memunculkan
text score dengan warna dan posisi
text = font.render("Score: "+str(score), True, black)
yang sudah ditentukan.
screen.blit(text, (0, 0))

x = 350 Blok code ini untuk membuat variable yang digunakan dalam
y = 250 program.

x_speed = 0

y_speed = 0

ground = 480

xloc = 700

yloc = 0

xsize = 100

ysize = randint(0, 350)

space = 150

obspeed = 2.5

score = 0

while not done: Membuat kondisi dimana ketika belum selesai


for event in pygame.event.get(): kemudian event typenya adalah pygame.QUIT atau
mengklik close button pada pojok kanan program maka
if event.type == pygame.QUIT: var done akan bernilai True atau program akan berenti
atau keluar.
done = True

if event.type == pygame.KEYDOWN:
if event.type == pygame.KEYDOWN: Kondisi dimana event.type nya jika user
if event.key == pygame.K_UP: menekan arrow up maka karakter utama
diberi speed sebesar -10 yang menyebabkan
y_speed = -10 karakter utama ketas

if event.type == pygame.KEYUP: Kemudian fungsi ini digunakan untuk


memberikan speed ke bawah ketika karakter
if event.key == pygame.K_UP:
menekan arrow atas.
y_speed = 5
Ini yang menyebabkan efek grafitasi.

Ini
screen.fill(white)
Mensetting layar dengan background warna
ball(x,y) putih, menempatkan posisi karakter utama,
menempatkan rintangan dan menaruh fungsi
obstacle(xloc, yloc, xsize, ysize)
Score untuk mengitung nilai.
Score(score)

y += y_speed Untuk menambah kecepatan pada garis y.

xloc -= obspeed Untuk mensetting kecepatan rintangan.

if y > ground: Kondisi dimana jika y lebih besar dari ground maka
fungsi gameover() akan dipanggil dan y speed = 0 dan
gameover()
obspeed juga = 0.
y_speed = 0

obspeed = 0

if x+20 > xloc and y-20 < ysize and x-15 < xsize+xloc:

gameover() Untuk mensetting rintangan pada bagian atas jika


y_speed = 0 karakter terkena rintangan pada bagian atas maka
fungsi gameover() akan dijalankan dan yspeed = 0
obspeed = 0 begitu juga obspeed.

if xloc < -80:

xloc = 700

ysize = randint(0, 350)


if x+20 > xloc and y+20 > ysize+space and x-15 < xsize+xloc:

gameover() Untuk mensetting rintangan pada bagian bawah jika


y_speed = 0 karakter terkena rintangan pada bagian bawah maka
fungsi gameover() akan dijalankan dan yspeed = 0
obspeed = 0 begitu juga obspeed.

if x > xloc and x < xloc+5: Mensetting kondisi untuk fungsi Score. Jika karakter
utama ( posisi x karakter utama ) lebih dari posisi
score = (score + 1)
rintangan maka Score akan ditambah 1 point.

if xloc < -80:


Mensetting lebar rintangan dengan module randint
xloc = 700 yang sudah dipanggil tadi untuk merandom size yang
keluar selanjutnya.
ysize = randint(0, 350)

pygame.display.flip() Untuk mengupdate tampilan pada layar.


clock.tick(60) Untuk mengupdate waktu.

pygame.quit() Untuk memanggil fungsi quit yang mana akan


mengeluarkan program.

Anda mungkin juga menyukai