Saya mencari solusi untuk perilaku "Opsi Klik Kanan".
Pada dasarnya setiap dan setiap item dalam game, ketika diklik kanan, dapat menampilkan serangkaian opsi berdasarkan objek apa pun itu.
Contoh klik kanan untuk skenario yang berbeda :
Inventaris: Helm menunjukkan opsi (Lengkapi, Gunakan, Jatuhkan, Deskripsi)
Bank: Helm menunjukkan opsi (Ambil 1, Ambil X, Ambil Semua, Deskripsi)
Lantai: Helm menunjukkan opsi (Ambil, Jalan Di Sini, Deskripsi)
Jelas setiap opsi entah bagaimana menunjuk ke metode tertentu yang melakukan apa yang dikatakan. Ini adalah bagian dari masalah yang saya coba selidiki. Dengan begitu banyak opsi potensi untuk satu item, bagaimana kelas saya dirancang sedemikian rupa agar tidak menjadi sangat berantakan?
- Saya sudah berpikir tentang warisan tetapi itu bisa sangat panjang lebar dan rantai bisa sangat besar.
- Saya sudah berpikir tentang menggunakan antarmuka, tetapi ini mungkin akan membatasi saya sedikit karena saya tidak akan dapat memuat data item dari file Xml dan menempatkannya ke dalam kelas "Item" umum.
Saya mendasarkan hasil akhir yang saya inginkan pada permainan yang disebut Runescape. Setiap objek dapat diklik kanan dalam permainan dan tergantung pada apa itu, dan di mana itu (inventaris, lantai, bank dll) menampilkan serangkaian opsi yang tersedia untuk pemain untuk berinteraksi.
Bagaimana saya bisa mencapai ini? Pendekatan apa yang harus saya ambil untuk pertama-tama, memutuskan opsi mana yang HARUS ditampilkan dan setelah diklik, cara memanggil metode yang sesuai.
Saya menggunakan C # dan Unity3D, tetapi setiap contoh yang diberikan tidak harus terkait dengan salah satu dari mereka karena saya mencari pola yang bertentangan dengan kode aktual.
Setiap bantuan sangat dihargai dan jika saya belum jelas dalam pertanyaan saya atau hasil yang diinginkan, silakan kirim komentar dan saya akan cenderung ASAP.
Inilah yang saya coba sejauh ini:
- Saya sebenarnya telah berhasil mengimplementasikan kelas "Item" umum yang menampung semua nilai untuk berbagai jenis item (serangan ekstra, pertahanan ekstra, biaya dll ...). Variabel-variabel ini diisi oleh data dari file Xml.
- Saya telah berpikir tentang menempatkan setiap metode interaksi yang mungkin dalam kelas Item tapi saya pikir ini adalah bentuk yang berantakan dan buruk. Saya mungkin telah mengambil pendekatan yang salah untuk menerapkan sistem semacam ini dengan hanya menggunakan satu kelas dan tidak sub-klasifikasi ke item yang berbeda, tetapi itu satu-satunya cara saya bisa memuat data dari Xml dan menyimpannya di kelas.
- Alasan saya memilih untuk memuat semua item saya dari file Xml adalah karena permainan ini memiliki kemungkinan untuk lebih dari 40.000 item. Jika matematika saya benar, kelas untuk setiap item adalah banyak kelas.