№2. Birinchi script.
Qisqacha qilib atyganda, script bu ishga tushirilishi bilan boshlanadigan topshiriqlar to'plami. Gododa o'zining GDScript dasturlash tili bor. Sintaksisi pitonga(python) o'xshash. Agar ushbu tilda oldin ishlagan bo'lsangiz GDScript bilan bemalol ishlab keta olasiz.
Demak, bizda sahna bor va uning ichida sprayt(sprite) bor.
Keling spraytni chapdan o'ngga tomonga yurgizadigan qisqa skript yozamiz.
Lekin undan oldin biz uman gododa malumotlar qanday ishlanishi prinsiplarini tushunib olishimiz kerak.
Godoni ichidan o'zi aniqlab bergan, ichiga kod yoziladigan bir nechta funksiyalar(function) bor:
_process va _physics_process — bular global sikllar hisoblanadi. Bu funksiyalar ichidagi kod har doim muntazam, biriktirilgan sahnaniichida ishlab turadi.
_ready — dasturni ishga tushirishning eng boshida bir marta bajariladi.
_input — Bu klaviatura, sichqoncha va boshqa tugmalarni bosilganligini aniqlaydigan funksiya.
Keling, spraytdagi sahna ob'ektlari ro'yxatiga sichqonchani o'ng tugmasini bosamiz va ochilgan menyuda "Attach Script" ni bosib ko'ramiz.
Create tugmasini bosamiz va qisman kiritilgan ma'lumotlarga ega skript bizning oldimizda paydo bo'ladi.
Skriptda nimalar yozilganini ko'rib chiqamiz:
Kulrangda yozilgan va "xesh" belgisi bilan boshlangan hamma narsa kommentariyalar(sharh) deyiladi. Bu kod qatori bajarilmaydi va siz skriptlarni shu tarzda o'chirib qo'yishingiz mumkin. Yoki o'zingiz uchun muhim eslatmalarni yozish uchun ishlatishingiz mumkin. Bu # belgi bilan boshlangan qatorlarda kod godo kompilyatori tomonidan bajarilmaydi, ular faqat foydalanuvchilar tomonidan o'qiladi.
Eng birinchi qatorda extends Sprite degani Sprite classini asos qilib olayapmiz va bu skriptimizda shu classni hossalari yani metodlaridan foydalanamiz degani. Godoni ichida turli classlar bor ular bilan ham kelajakda tanishib chiqamiz ularning hammasining o'zlarini hossalari yanimetodlari bor. Agar shunmagan bo'lsangiz havotir olmang asta-asta shunib olasiz.
Keyingi qatorlarda kulrang bilan bu yerda har xil o'zgaruvchanlarni qo'shsa bo'ladi deb komment qoldirishibdi.
Keyin ready funksiyasi chaqirilayapti:
PASS bu joyda funksiyaning bajarilishini o'tkazib yuboradi. Ya'ni, agar biz skriptni ishga tushirsak, bizda xatolik chiqmaydi. Ammo agar biz PASSni olib tashlasak, Godot bizga funktsiyada xatolik borligini ko'rsatadi. Sababi gododa funksiyalarni ichi bo'sh bo'lishi mumkin emas.
Keyin kulrangda func _process (delta): kommentariya qilib qoldirilibdi. Bu funksiya uzluksiz bajariladigan funksiya bo'lib, deltani o'ziga argument qilib oladi. Delta bu kadr dan kadrga o'tgan vaqt.
Keling, extends Sprite qatoridan pastini o'chiramiz va kodni o'zimiz noldan yozamiz. Bizning vazifamiz - spraytni chapdan o'ngga siljitish.Keling, inspektordagi pozitsiya xususiyatlarini ko'rib chiqamiz.
Pozitsiya xususiyati mavjud. Va ikkita o'q x va y bor.
Bizning obyekt har buyruq olganda yurishi kerak, shuning uchun _process funksiyasidan foydalanamiz. Ushbu funksiya takroran ishlab turadi.
Shu kodlarni funksiya ichiga yozamiz:
Tepadagi 0'ng tarafda joyashgan tugmalar qatoridan "play" tugmasini bosamiz.Yoki klaviaturadagi F5 tugmasini bosamiz.
Sprayt qimirlashni boshladi !!!
(agar ishga tushirilganda Gododa asosiy sahna tanlanmaganidan hatolik desa, ishlab turgan sahnani tanlang)
rotation_degrees = rotation_degrees +1
kodini pastroqga qoshsak sprayt aylanishni ham boshlaydi.
Umid qilamanki, Godoning o'zi sizni yozish paytida satrlarni tugatishga undayotganini payqadingiz. Bu narsa kod yozishni sezilarli darajada osonlashtirish uchun qilingan.
Tabriklayman, siz hozirgina o'zingizning birinchi skriptingizni yozdingiz.
Keyingi postlarda klaviatura bilan boshqarishni ko'rib chiqamiz.