# Starter Taktik Giliran 2D SMA · Lanjutan · sesi 1–16 ## Memakai starter Ekstrak seluruh ZIP, Project Manager → Import → project.godot, lalu F5. Panah bergerak pada mode fisika; petunjuk kontrol khusus ada pada HUD. R membuat scene baru. Siapkan folder terpisah sebelum mengubah kode. Godot 4.x; contoh diperiksa dengan 4.4.1 Compatibility. ## Cakupan yang tersedia Papan 5×5, pemilihan M, gerak tetangga kosong, dua AP, penolakan tanpa mutasi, dan reset. Kubu aktif, serang, HP, giliran, serta menang dikembangkan siswa. Starter adalah acuan struktur dan mekanik minimum, bukan proyek akhir yang memenuhi semua rubrik. Gunakan lab sesi untuk menguji konsep kecil. Siswa membangun integrasi dan keputusan sendiri sesuai tugas presentasi. Tidak ada build executable yang diklaim telah diuji oleh paket ini. ## Susunan node saat runtime Node dibuat oleh world.gd dari bentuk dasar. Jalankan F6 lalu lihat Scene → Remote untuk menelusuri pohonnya. Untuk belajar konstruksi editor, buat scene siswa terpisah dan tambahkan node melalui tombol + sesuai fungsi helper di world.gd. ```text Arena2D Arena → CharacterBody2D / StaticBody2D / Area2D (mode fisika) CanvasLayer → Label (HUD) Button (mode antarmuka) Timer (mode spawn) ``` ## Cara membangun di editor 1. Buat root Node2D/Control sesuai tugas, simpan scene. 2. Tambahkan bentuk visual dan collision secara terpisah. Collider harus anak badan/area, bukan hanya mesh. Pada 3D, tambahkan kamera current dan lampu. 3. Tambahkan script pada node yang tepat. Implementasikan satu mekanik dari tugas sesi, uji, baru lanjut. 4. Hubungkan signal sekali lewat panel Node atau _ready. Label membaca model, bukan menjadi sumber keadaan. 5. Catat input, keadaan awal, harapan, aktual, perbaikan, dan batas pengujian. ## Urutan praktik - Sesi 1: Audit array koordinat dan fungsi. Petakan papan 3 × 3 di kertas lalu tulis fungsi batas tanpa visual; prediksi hasil untuk koordinat negatif - Sesi 2: Skema papan dan unit. Definisikan ID unit, kubu, petak, HP dan poin aksi; pisahkan data unit dari node visual - Sesi 3: Render papan 5 × 5. Bangun tampilan berdasarkan data; tulis pemetaan klik petak ke koordinat yang dapat diuji terpisah - Sesi 4: Kontrak satu aksi. Tulis prasyarat dan akibat gerak serta serang; tolak seluruh aksi jika salah satu syarat gagal - Sesi 5: Pemilihan unit aktif. Pilih hanya unit kubu aktif yang masih hidup; kosongkan pilihan saat giliran berganti - Sesi 6: Gerak tetangga satu petak. Periksa jarak Manhattan satu, batas, penghalang dan petak terisi sebelum mengubah posisi - Sesi 7: Poin aksi dan transaksi gerak. Kurangi satu poin hanya setelah gerak sah; aksi gagal tidak mengubah posisi atau poin - Sesi 8: Serang dan HP. Validasi sasaran kubu lawan yang bersebelahan, kurangi HP sekali, dan keluarkan unit kalah dari okupansi - Sesi 9: Pergantian giliran. Tombol selesai mengganti kubu dan memulihkan dua poin aksi untuk kubu baru; jangan mengganti saat animasi aksi belum selesai - Sesi 10: Kondisi menang serta penguncian. Periksa unit hidup setelah serang dan hentikan input game ketika satu kubu habis - Sesi 11: Penguji aturan terpisah. Jalankan tabel masukan dan hasil harapan untuk gerak keluar, petak terisi, serang sendiri serta poin nol tanpa klik visual - Sesi 12: Dua susunan dari data. Ganti penghalang dan posisi awal lewat konfigurasi; validasi tidak ada unit pada petak sama - Sesi 13: Uji pengguna dan keterbacaan. Teman bermain dua kubu; catat apakah giliran, unit terpilih dan aksi terlarang terbaca - Sesi 14: Perbaikan prioritas. Perbaiki satu masalah aturan sebelum kosmetik, ulangi kasus normal dan gagal serta reset - Sesi 15: Build dan matriks regresi. Uji build kecil pada perangkat mentor; kumpulkan konfigurasi baru serta hasil harapan tiap kasus - Sesi 16: Presentasi: Taktik Giliran 2D. Demonstrasikan satu putaran lengkap, alasan struktur data dan tanggapan terhadap konfigurasi penguji Penguji memberi susunan penghalang dan unit baru; jalankan tanpa mengubah aturan, tunjukkan satu aksi terlarang yang tidak mengubah data serta satu kondisi menang. ## Kriteria proyek - Skema unit dan pemetaan petak memiliki kasus batas yang dapat direproduksi - Gerak atau serang gagal tidak mengubah HP, petak atau poin aksi - Giliran, kemenangan, unit kalah dan reset konsisten - Konfigurasi baru lolos uji aturan serta laporan uji pengguna Sumber: https://docs.godotengine.org/en/stable/