Dalam tutorial ini, kita akan membahas cara mengimplemenkan logika taruhan dalam permainan kartu. Sebelum memulai, kita harus mengetahui bahwa setiap pemain di meja harus berkontribusi sebelum tangan dimulai.
Game Logic
Kita akan implementasikan logika taruhan sebagai berikut:
Pemain membayar ante untuk mendapatkan kartu.
Kemudian, giliran dilemparkan ke pemain berikutnya yang juga membayar ante.
Setelah semua pemain membayar ante, kartu diberikan kepada pemain berdasarkan logika yang kita bahas sebelumnya.
Pemain memutuskan tindakan apa yang harus dilakukan berdasarkan kartu.
Kemudian, giliran dilemparkan ke pemain berikutnya.
Dalam bagian ini dari tutorial, kita hanya akan membahas logika turn-based untuk memungkinkan setiap pemain memasukkan taruhan secara bergantian.
Entering Bet Amount
Kita akan menggunakan UI untuk menampilkan giliran pemain dan memungkinkan pemain memasukkan taruhan. Kemudian, kita akan mengaktifkan fungsi untuk menyimpan taruhan dan mengganti giliran ke pemain berikutnya.
Tambahkan bidang input text, bidang teks untuk menampilkan nomor pemain, dan tombol submit. Susunlah elemen UI sesuai dengan kebutaan Anda.
Script
Kita perlu membuat script untuk menerima taruhan dan menyimpannya. Kita akan menggunakan array untuk menyimpan data taruhan pemain.
Deklarasikan variabel publik untuk elemen UI: TMP_InputField
untuk memasukkan taruhan, TextMeshProUGUI
untuk menampilkan nomor pemain, dan Button
untuk submit. Juga, deklarasikan variabel publik numberOfPlayers
untuk menentukan jumlah pemain.
Deklarasikan variabel privat: betAmounts
(array integer untuk menyimpan taruhan) dan currentPlayer
(untuk mengikuti giliran pemain saat ini).
Dalam metode Start
, inisialisasi array betAmounts
, update teks pemain saat ini, dan tambahkan listener ke tombol submit.
Buat method SubmitBet
yang memeriksa apakah input adalah bilangan integer valid, menyimpan taruhan di array betAmounts
, dan mengupdate giliran pemain. Jika semua pemain telah memasukkan taruhan, tombol submit akan dinonaktifkan.
Buat method UpdateCurrentPlayerText
untuk update teks pemain saat ini.
Complete Script
Berikut adalah script lengkap:
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class BetManager : MonoBehaviour
{
public TMP_InputField betInputField;
public TextMeshProUGUI currentPlayerText;
public Button submitButton;
public int numberOfPlayers = 4;
private int[] betAmounts;
private int currentPlayer = 0;
void Start()
{
betAmounts = new int[numberOfPlayers];
UpdateCurrentPlayerText();
submitButton.onClick.AddListener(SubmitBet);
}
void SubmitBet()
{
int betAmount;
if (int.TryParse(betInputField.text, out betAmount))
{
betAmounts[currentPlayer] = betAmount;
currentPlayer++;
if (currentPlayer == numberOfPlayers)
{
//change to next scene
}
else
{
UpdateCurrentPlayerText();
}
}
else
{
Debug.Log("Invalid bet amount entered.");
}
}
void UpdateCurrentPlayerText()
{
currentPlayerText.text = $"Current Player: {currentPlayer + 1}";
}
}
Cara Menggunakan Script
Untuk menggunakan script ini, ikuti langkah-langkah berikut:
Buat script C# baru bernama "BetManager" dan sambungkan ke game object kosong di scene Anda. Salin kode di atas.
Dalam Editor Unity, asingkan elemen UI TMP_InputField
, TextMeshProUGUI
, dan Button
ke variabel yang sesuai dalam script BetManager.
Jalankan scene, dan Anda akan dapat memasukkan taruhan untuk setiap pemain menggunakan bidang input text. Taruhan-taruhan tersebut akan disimpan di array betAmounts
, dan giliran akan dilemparkan ke pemain berikutnya setelah setiap taruhan valid diinput.
What's Next
Kita telah berhasil mengimplemenkan logika taruhan yang komprehensif, yang menjadi dasar penting dalam permainan kartu. Dalam tutorial berikutnya, kita akan membahas cara membuat gameplay dan menambahkan fitur-fitur lain ke permainan kartu kita.