OOP sangat berguna untuk mengatur objek yang berbeda dan hubungan antar objek tersebut. Sangat berguna khususnya ketika kita mengembangkan game dengan karakter dan fitur yang berbeda.
Mari kita lihat sebuah contoh project yang menunjukkan bagaimana class digunakan dalam sebuah game development. Berikut contohnya adalah game berbasis teks. Di bawah ini adalah fungsi untuk menghandle input dan parsing yang sederhana.
def get_input():
command = input(": ").split()
verb_word = command[0]
if verb_word in verb_dict:
verb = verb_dict[verb_word]
else:
print("Unknown verb {}".format(verb_word))
return
if len(command) >= 2:
noun_word = command[1]
print(verb(noun_word))
else:
print(verb("nothing"))
def say(noun):
return 'You said "{}"'.format(noun)
verb_dict = {
"say": say,
}
while True:
get_input()
=====>
: say Halo
You said "Halo"
: katakan Halo
Unknown verb katakan
: say
You said "nothing"
=====>
Kode di atas mengambil input dari user dan mencoba untuk mencocokkan kata pertama dengan sebuah command di dalam verb_dict. Jika kecocokan ditemukan, fungsi yang sesuai akan dipanggil.
Selanjutnya adalah menggunakan class untuk merepresentasikan objek game.
class GameObject:
class_name = ""
desc = ""
objects = {}
def __init__(self, name):
self.name = name
GameObject.objects[self.class_name] = self
def get_desc(self):
return self.class_name + "\n" + self.desc
class Goblin(GameObject):
class_name = "goblin"
desc = "A foul creature"
goblin = Goblin("Gobbly")
def examine(noun):
if noun in GameObject.objects:
return GameObject.objects[noun].get_desc()
else:
return "There is no {} here.".format(noun)
Kita membuat sebuah class Goblin, dimana meng-inherit dari class GameObjects. Kita juga membuat sebuah fungsi examine, dimana mengembalikan deskripsi objek.
Sekarang kita dapat menambahkan “examine” ke dictionary. Berikut adalah kode selengkapnya.
class GameObject:
class_name = ""
desc = ""
objects = {}
def __init__(self, name):
self.name = name
GameObject.objects[self.class_name] = self
def get_desc(self):
return self.class_name + "\n" + self.desc
class Goblin(GameObject):
class_name = "goblin"
desc = "A foul creature"
goblin = Goblin("Gobbly")
def examine(noun):
if noun in GameObject.objects:
return GameObject.objects[noun].get_desc()
else:
return "There is no {} here.".format(noun)
def get_input():
command = input(": ").split()
verb_word = command[0]
if verb_word in verb_dict:
verb = verb_dict[verb_word]
else:
print("Unknown verb {}".format(verb_word))
return
if len(command) >= 2:
noun_word = command[1]
print(verb(noun_word))
else:
print(verb("nothing"))
def say(noun):
return 'You said "{}"'.format(noun)
verb_dict = {
"say": say,
"examine": examine
}
while True:
get_input()
LANJUTKAN BACA MATERI LENGKAP