Hungry fish (голодная рыба)
101
Ushbu obyekt juda oddiy dasturga ega. Ishga tushirilgandan so'ng, baliq sichqonchani
ko'rsatgichini ta'qib qila boshlaydi. Dastur kodida faqat bitta xususiyatni qayd etish mumkin:
kursorga masofa 10 nuqtadan kamroq bo'lganda obyekt to'xtaydi. Bu juda kichik masofa,
shuning uchun baliq kursorga deyarli markaziga tegsa to'xtaydi. Agar obyekt kursor yetib holda
to'xtaydi qachon ta'sir erishish mumkin, bu masofani oshirish bo'lsa. Ba'zan bu talab qilinadi.
\
Jump-flip monster (кувыркающийся монстр)
102
Hayvon baliqlarga qaraganda ko'proq qiziqarli dasturga ega. Klaviaturada o'ng qo'lni bir marta
bosish bilan bitta tirgakni bajaradi. Nima uchun tushunaylik?
Birinchi skript (yuqorida turgan), obyekt birinchi navbatda 50 nuqtaga va 100-ga o'tadi va keyin
yana 50-ga o'tadi va 100-da pastga tushadi. Ko'rinib turibdiki, hayvon oldinga siljiydi. 90
yo'nalishi bo'yicha aylantirish uchun buyruq shunchaki harakat oldin obyekt to'g'ri yo'nalishini
belgilab beradi.
Ikkinchi skript birinchi scripga parallel ishlaydi. Obyektga aylanish harakati beradi. O'ngdagi
o'qni bir marta bosish uchun obyekt 10 graduslik 36 burilishni amalga oshiradi, natijada 360
darajaga aylanadi. Bundan tashqari, to‘liq aylanish har 2 soniyada (0.2 * 10) amalga oshiriladi.
Shuning uchun, sinxronizatsiya olinadi: bir sakrash uchun obyekt bir to'liq aylanishni amalga
oshiradi.
Friction marble (трущийся камень)
103
Ushbu dastur qanday ishlashini tushunish uchun fizikani biroz tushunishingiz kerak. Biz
gorizontal ravishda (masalan, to'p) obyektni itarganimizda, odatda, bir muncha vaqt o'tgach
to'xtaydi. Bu tuproq ishqalanish tufayli sodir bo'ladi. Agar biz doimo to'pni itarsak, uning harakat
tezligi asta-sekin ortadi.Obyekt uchun dastur friction_marble bu jismoniy qonunlarni
simulyatsiya qiladi. O'qni qanchalik ko'p bossak, to'p qanchalik tez rivojlanadi. Ta'sir
to'xtatilganda uning tezligi asta-sekin kamayadi, undan keyin to'p to'xtaydi.Bu dasturda nima
bilan erishiladi? Dasturda ikkita o'zgaruvchi — x velocity va y velocity mavjud, ularning
qiymatlari dasturni ishga tushirgandan so'ng darhol nolga teng. Bu o'zgaruvchilar qiymatlari
doimiy (har doim) ta'sir, qancha birliklari obyekt o'rnini o'zgaradi. OK tugmalari bosilganda,
o'zgaruvchilar qiymatlari o'zgaradi. Muayyan o'q qanchalik ko'p bosilsa, o'zgaruvchining qiymati
noldan farq qiladi. Natijada, x va y o'zgaruvchan birliklar soni ham oshadi. Bu obyektning
harakatlanish tezligini oshirish ta'sirini yaratadi. Boshqa tomondan, ta'sir bo'lmasa (kalitlar
bosilmasa), o'zgaruvchining qiymati asta-sekin nolga yaqinlashadi. Bunga 0 dan 1gacha bo'lgan
kasr sonini ko'paytirish orqali erishiladi (bizning holatlarimizda o'zgaruvchilar 0.98 bilan
ko'paytiriladi).
Mustaqil ish
Dasturlar bilan ikki yoki uchta original obyektni yarating va ularni umumiy kutubxonaga eksport
qiling.
|