|
Harakat tezligini sozlash Pdf ko'rish
|
bet | 123/153 | Sana | 19.05.2024 | Hajmi | 27,94 Mb. | | #244031 |
Bog'liq 10-sinf yangiHarakat tezligini sozlash
Dastur ishga tushirilgach, oyna markazida yashil rangli sprayt paydo bo‘ladi va o‘ng tomonga
harakatlana boshlaydi. Sprayt oyna oxiriga yetib borgach, qayta oyna markazida paydo
bo‘ladi va o‘ng tomonga harakatlanadi. Ushbu sikl to‘xtovsiz ravishda davom etadi.
Spraytning oyna markazidan o‘ng tomon harakatlanib, oyna oxirigacha yetib borgach, yana
qayta oyna markazida paydo bo‘lib qolishi biroz mantiqqa to‘g‘ri kelmaydi. Sprayt harakatini
chiroyliroq chiqarish maqsadida u oynaning o‘ng tomoniga yetib borgach, uning qayta
joylashuvini oynaning chap boshiga o‘zgartirish zarur. Buning uchun rect funksiyasining
quyidagi rasmda keltirilgan xossalaridan foydalaniladi:
Sprayt o‘yin oynasida chap tomondan o‘ng tomonga uzluksiz
harakatlanishini ta’minlash uchun update() funksiyasi tanasiga
shart amali qo‘shiladi. Ya’ni spraytning rect.left xossasi oynaning
kengligidan oshib ketsa, u holda spraytning rect.right xossasiga 0
qiymati beriladi.
Misol.
Yangi sprayt yaratilib, uni gorizontal bo‘yicha chapdan o‘ng tomonga uzluksiz
harakatlantirish dasturi tuzilsin.
class Player(pygame.sprite.Sprite):
Sinf e’lon qilindi.
def __init__(self):
init funksiyasi ishga tushdi.
pygame.sprite.Sprite.__init__(self)
“Self” parametriga “Sprite” sinfi
funksiyalari biriktirildi.
self.image = pygame.Surface((50, 50))
Sprayt o‘lchamlari berildi.
self.image.fill(GREEN)
Sprayt rangi berildi.
self.rect = self.image.get_rect()
Sprayt qobig‘i yaratildi.
self.rect.center = (WIDTH / 2, HEIGHT / 2)
Sprayt oyna markaziga joylashtirildi.
def update(self):
update funksiyasi e’lon qilindi.
self.rect.x += 5
rect.x parametri 5 ga oshirildi.
if self.rect.left > WIDTH:
Spraytning chap qirrasi oyna enidan
katta ekanligi tekshirildi.
self.rect.right = 0
Shart rost bo‘lsa, spraytning o‘ng qirrasi
qiymatiga 0 o‘zlashtirildi.
|
| |