176
176
176
176
V BOB.
WWW-TEXNOLOGIYA VA HTML TILI
Spraytlar to‘qnashuvi
To‘qnashuvni aniqlash o‘yinning bir qahramoni boshqasiga tegib ketishini
aniqlash zarurligini
anglatadi.
PyGamedagi har bir sprayt o‘zining koordinatalari va o‘lchamlarini belgilaydigan “rect”
xususiyatiga ega. Ushbu xususiyat to‘rtburchak shaklidagi sprayt tashqi qobig‘i, ya’ni
chegarasi hisoblanadi.
To‘qnashuvni aniqlash uchun birorta sprayt tashqi qobig‘ini qolgan spraytlar tashqi qobig‘i
bilan bilan taqqoslash lozim.
PyGameda mana shunday taqqoslashni amalga oshiruvchi spritecollideany() funksiyasi
mavjud. U o‘z ichiga 3 ta argumentni qabul qiladi:
1)
taqqoslash uchun sprayt nomi;
2) sprayt bilan taqqoslanuvchi spraytlar guruhi nomi;
3) taqqoslash turi.
Sintaksisi:
taqqoslash_nomi = pygame.sprite.spritecollide(sprayt_nomi, guruh_nomi, metod_
nomi)
taqqoslash_nomi –
taqqoslash natijasi uchun nom;
sprayt_nomi – taqqoslanuvchi sprayt nomi;
guruh_nomi –
taqqoslanuvchi guruh nomi;
metod_nomi – taqqoslash metodining nomi.
Ushbu metodlar qo‘llanganda, spraytlar to‘qnashuvi sodir bo‘lsa, ularning qobig‘i yuqoridagi
3 ta ko‘rinishdan biriga o‘tadi. Bit o‘lchamli maskalar yordamida to‘qnashuvni
tekshirish
jarayonida sprayt qobig‘i uning formasi bo‘ylab belgilanadi. Masalan, sprayt yulduz
ko‘rininshida bo‘lsa, qobiq ham yulduz ko‘rininshida bo‘ladi.
collide_rect va collide_circle metodlarida sprayt qobig‘i to‘rtburchak
va aylana shaklida
bo‘ladi. Qobiq hajmini ratio funksiyasi yordamida o‘zgartirish mumkin.
Taqqoslashning turli metodlari mavjud bo‘lib, ularning ayrimlari quyidagi jadvalda berilgan.