Kirish
Bugungi raqamli dunyoda kompyuter o‘yinlari inson hayotining ajralmas
qismiga aylanib bormoqda. Ular nafaqat hordiq chiqarish uchun, balki
ta’lim, simulyatsiya, tibbiyot va boshqa ko‘plab sohalarda ham keng
qo‘llaniladi. Kompyuter o‘yinlarini ishlab chiqish jarayoni dasturlash,
grafik dizayn, matematik model, foydalanuvchi interfeysi (UI) va
algoritmlarni chuqur tushunishni talab qiladi. Shuning uchun o‘yin ishlab
chiqish boshlovchi dasturchilar uchun eng yaxshi amaliy
mashg‘ulotlardan biri hisoblanadi.
Python — sodda sintaksisi va kuchli kutubxonalari tufayli bugungi kunda
eng mashhur dasturlash tillaridan biridir. Python tilida o‘yinlar yaratish
uchun keng qo‘llaniladigan kutubxonalardan biri bu Pygame hisoblanadi.
Pygame SDL (Simple DirectMedia Layer) texnologiyasiga asoslangan
bo‘lib, 2D o‘yinlar yaratish jarayonini juda soddalashtiradi. U orqali o‘yin
oynasini yaratish, foydalanuvchi bilan interaktiv aloqalarni tashkil qilish,
grafik obyektlar chizish va harakatlantirish kabi funksiyalarni amalga
oshirish mumkin.
Ushbu loyiha ishida men aynan Pygame kutubxonasi yordamida o‘yin
maydonini tayyorlash mavzusini tanladim. Sababi, o‘yin maydoni har
qanday o‘yinning asosiy komponentlaridan biri hisoblanadi. U o‘yin
jarayonining joylashuvi, o‘yinchi harakatlari, to‘siqlar, dushmanlar va
mukofotlar kabi obyektlar uchun asosiy sahnani tashkil qiladi. O‘yin
maydonini to‘g‘ri yaratish va uni boshqarish dasturchi uchun muhim
bo‘lgan ko‘plab bilim va ko‘nikmalarni talab etadi.
Loyiha maqsadi:
Ushbu loyiha ishining asosiy maqsadi — Pygame kutubxonasi
yordamida o‘yin maydonini yaratish va uni sozlash bo‘yicha zarur
nazariy va amaliy bilimlarga ega bo‘lish, dastlabki grafik elementlarni
ekranga chiqarish, foydalanuvchi hodisalarini (klaviatura, sichqoncha)
qayta ishlash, hamda dinamik interfeys yaratish orqali dasturlash
ko‘nikmalarini mustahkamlashdan iborat.
Loyihaning dolzarbligi:
-Dasturlashni o‘rganayotgan yoshlar uchun vizual va interaktiv
loyihalar motivatsiyani oshiradi.
-O‘yin yaratish orqali foydalanuvchi interfeysi, hodisa boshqaruvi,
grafikalar va animatsiya kabi muhim sohalar o‘zlashtiriladi.
-Pygame yordamida yaratilgan o‘yin maydoni — keyinchalik murakkab
o‘yinlar, simulyatsiyalar va ta’limiy dasturlar ishlab chiqish uchun asos
bo‘lib xizmat qiladi.
1
-Bugungi kunda mobil va veb-o‘yinlar bozori jadal rivojlanmoqda,
shuning uchun bu yo‘nalish bo‘yicha bilimga ega bo‘lish dasturchilar
uchun dolzarbdir.
2
Python dasturlash tili 1990-yillarning boshlarida Gvido van Rossum
tomonidan yaratilgan. Oʻsha davrlarda foydalanish uchun qulay va keng
imkoniyatlarga ega boʻlgan dastur yaratish kerak edi. Bu gʻoya sodda va
tushunarli dasturlash tili – Pythonʼning ishlab chiqilishiga sabab boʻldi.
Pythonʼning birinchi versiyasi 1991-yilda Python 0.9.0 nomi bilan ishlab
chiqarilgan. Unga roʻyxat va satrlar bilan ishlash, shartli ibora va sikllar
kabi asosiy funksiyalar qoʻshilgan.
Python dasturlash tilini gollandiyalik dasturchi Gvido van Rossumning
bir oʻzi yaratgan.
Pythonʼning muhim xususiyatlaridan biri tilning soddaligi va kod
oʻqishning osonligidir. Dasturchilar Pythonʼdan oson foydalanishi uchun
tilning sintaksisi – kod qisqa va tushunarli qilib tuzilgan.
Shuningdek, Python katta hajmdagi kutubxona va modullarga ega. Bu esa
dasturchilarga turli vazifalarga tez va oson yechim topish imkonini beradi.
Python kutubxonalari ilmiy hisob-kitoblar, veb-dasturlash, maʼlumotlarni
tahlil qilish va boshqa koʻplab turli sohalarni qamrab oladi.
Vaqtlar oʻtib Python dasturchilar hamjamiyatida katta shuhrat qozondi va
eng koʻp ishlatiladigan dasturlash tillaridan biriga aylandi. 2019-yilgi
TIOBE veb-sayti tomonidan tuzilgan dasturlash tillari reytingida birinchi
oʻrinni Python egalladi.
Bugungi kunda Python asosiy dasturlash tillaridan biri hisoblanadi. Uning
yordamida turli xil ilovalar, veb-sayt hamda ilmiy hisob-kitoblar, sunʼiy
intellekt va boshqalar ishlab chiqiladi.
Python qoʻllanadigan sohalar
Python dasturlash tili koʻplab soha va jabhalarda keng qoʻllanadi. Quyida
ulardan baʼzilari keltirilgan:
1. Veb-dasturlash: Python Django, Flask va Pyramid kabi
freymvorklardan foydalangan holda veb ilovalar, saytlar, API va
boshqa veb-xizmatlarni yaratishda ishlatiladi.
2. Ilmiy hisoblash: Python dasturlash tili NumPy, SciPy va Pandas
kabi kutubxonalarning boy ekotizimiga ega. Shu sababdan Python
ilmiy tadqiqotlar, maʼlumotlarni qayta ishlash va tahlil qilish,
mashinalarni oʻqitish va sunʼiy intellekt uchun ommabop tanlovga
aylandi.
3. Vazifalarni avtomatlashtirish: Pythonʼda kuchli avtomatlashtirish
va skripting imkoniyatlari mavjud. Undan kundalik vazifalarni
avtomatlashtirish, fayllarni qayta ishlash uchun skriptlar yaratish,
maʼlumotlarning
zaxira
nusxasini
olish
va
tizim
3
administratorligining boshqa vazifalarini bajarishda foydalanish
mumkin.
4. Buyumlar interneti (IoT) — (internetga ulangan va oʻzaro
maʼlumot almashadigan koʻplab jismoniy obyektlar): Python
dasturlash tili IoT-qurilmalar uchun Raspberry Pi va Arduino kabi
dasturiy taʼminotlarni ishlab chiqishda foydalaniladigan oson va
qulay freymvorkka ega. Bu esa aqlli uy, uy vazifalari va boshqa IoTqurilmalarni avtomatlashtirish uchun turli xil loyihalarni yaratish
imkonini beradi.
5. Oʻyin dasturlari: Pygame kutubxonasi va boshqa freymvorklar
tufayli Python 2D va 3D grafikalarga ega oddiy va murakkab
kompyuter oʻyinlarini yaratishda ishlatilishi mumkin.
6. Veb-skripting: Python HTML sahifalarni tahlil qilish, XML
fayllar, veb-saytlar va boshqa axborot manbalaridan maʼlumotlar
olishning sodda va samarali usulini taklif etadi.
7. Bekend ilovalarini dasturlash: Python server ilovalari, API va
boshqalarni yaratish imkonini beradi. Flask va Django
freymvorklari bu ilovalarni dasturlashni osonlashtiradi.
8. Oʻyin kontent tizimi boshqaruvini dasturlash: Python oʻyinlar
kontent tizimi boshqaruvi hamda Blender Game Engine va Pygame
kabi dasturlash vositalarini yaratishda ishlatiladi.
Pythonʼning oʻziga xos xususiyatlari
Pythonʼni ommabop va noyob dasturlash tiliga aylantiradigan bir nechta
oʻziga xos xususiyatlar mavjud:
Soddalik va aniqlik: Python kodni oʻqish va tushunishni
osonlashtiradigan sodda va loʻnda sintaksisi bilan mashhur. Bu,
ayniqsa, yangi boshlayotganlarga dastur kodini ishlab chiqish va
xizmat koʻrsatishni osonlashtiradi.
Kutubxona va modullarning keng tanlovi: Python turli xil
sohalarni, shu jumladan, ilmiy hisob-kitoblar, veb-dasturlash,
maʼlumotlarni qayta ishlash, mashinani oʻqitish va boshqa
yoʻnalishlarni qamrab oladigan katta hajmdagi modullar
kutubxonasiga ega. Bu dasturchilarga velosipedni qayta yigʻmasdan
vazifalarni tez va oson hal qilish imkonini beradi.
Koʻchirish imkoniyati: Python — koʻchma til, yaʼni Pythonʼda
yozilgan dasturlar Windows, macOS va Linux kabi turli xil
platforma va operatsion tizimlarda ishlashi mumkin. Bu
dasturchilarga turli xil qurilma va tizimlarda ishga tushirilishi
mumkin boʻlgan dasturiy taʼminotni yaratish imkonini beradi.
4
Dinamik tipiklashtirish: Python dinamik tipiklashtirishga ega til,
yaʼni kod bajarilayotganda oʻzgaruvchilar turi avtomatik ravishda
aniqlanadi. Oʻzgaruvchilar turini oldindan belgilash shart emasligi
tufayli Python tezkor dasturlash uchun juda mos va qulaydir.
Koʻmak
beradigan
katta
hamjamiyat: Python
yangi
boshlayotganlar va tajribali dasturchilar uchun yordam, oʻqish va
resurslarni taklif qiladigan faol dasturchi va foydalanuvchilar
hamjamiyatiga ega. Python boʻyicha internetda koʻplab hujjat va
qoʻllanmalar mavjud boʻlib, yuzaga keladigan savollarga javob
topish oson.
Python kutubxonalari
Kutubxona tez-tez uchraydigan operatsiyalar uchun har safar noldan kod
yozmaslik imkonini beradigan Python dasturlash tilidagi maʼlum bir
toʻplamni anglatadi. Har bir dasturchi juda koʻp ommabop funksiyalarni
oʻz ichiga olgan standart kutubxonaga kirish huquqiga ega. Bundan
tashqari, ixtisoslashgan vazifalarni (shu jumladan, veb-dasturlash, Data
Science va mashinani oʻqitish) bajarishga moʻljallangan 137 000 dan
ortiq qoʻshimcha kutubxonalar mavjud.
Eng koʻp ishlatiladigan kutubxonalar quyida toʻplangan.
Matplotlib
U turli ilmiy vazifalarga yechim topishda yordam beradi va maʼlumotlarni
2D va 3D oʻlchamda vizualizatsiya qilishda ishlatiladi. Matplotlib
maʼlumotlarni ustunli va chiziqli diagrammalar sifatida koʻrsatish
imkonini beradi. Bu funksiyalar toʻplamidan foydalanib, bir vaqtda bir
nechta diagrammalar tuzish, shuningdek, grafikani istalgan platformaga
oʻtkazish mumkin.
Pandas
Kutubxona vaqt qatorlari maʼlumoti va strukturalangan maʼlumotlarni
(jadval va massivlar) boshqarish uchun zarur optimallashtirilgan va
moslashuvchan strukturalardan iborat. Pandas maʼlumotlarni oʻqish,
yozish, birlashtirish, filtrlash va guruhlashda yordam beradi. Bu
kutubxona Data Science, maʼlumotlar tahlili va mashinani oʻqitish
sohalarida ishlaydigan dasturchilar ishini yengillashtiradi.
NumPy
Bu kutubxonada toʻplangan funksiyalar massivlarni yaratish va ular bilan
ishlash jarayonini osonlashtiradi. Bundan tashqari, NumPy mantiqiy
shakllarni boshqarish va chiziqli algebra amallarini bajarish imkonini
beradi. NumPy boshqa dasturlash tillariga (masalan, C/C++) ham
integratsiya qilinishi mumkin.
5
Requests
Veb-dasturlash uchun zarur foydali funksiyalardan iborat. Ular HTTP
soʻrovlarni yuborish, sarlavhalar qoʻshish, URL parametrlarini oʻrnatish,
maʼlumotlarni toʻldirish, shuningdek, internet-ilovalarini yaratish bilan
bogʻliq boshqa koʻplab vazifalarni bajarishda yordam beradi.
Open CV-Python
Bu kutubxona mashina nigohi bilan ishlashda tasvirlarni qayta ishlash
imkonini beradi. Uning yordamida bir vaqtning oʻzida tasvirlarni oʻqish
va yozib olish, “rasmlarni” 2D dan 3D ga oʻzgartirish, shuningdek,
videodagi kadrlarni “ushlab olish” va tahlil qilish mumkin.
Keras
Bu Pythonʼning chuqur neyron tarmogʻi kutubxonasi boʻlib, unda
maʼlumotlarni qayta ishlash, vizualizatsiya qilish va boshqa vazifalar
uchun moʻljallangan funksiyalar mavjud. Keras koʻplab neyron tarmoqlar
tomonidan qoʻllab-quvvatlanadi. Ushbu kutubxona innovatsion
dasturlarni yaratish jarayonida moslashuvchanlikni kafolatlaydigan
modul strukturasiga ega.
Pygame kutubxonasi haqida umumiy ma’lumot
PyGame – kompyuter o‘yinlari hamda multimedia dasturlarini yozishga
mo‘ljallangan Python dasturlash tilining modullari to‘plami.
Dasturchilarning aksariyati dasturlash sohasiga dastlab o‘yin
dasturlarini tuzish maqsadida kirib keladi. Hamma ham professional
darajada o‘yin dasturi yaratuvchisi bo‘la olmaydi. Ammo o‘ta
qiziqqanligi hamda tirishqoqligi sababli o‘z shaxsiy o‘yin dasturini tuzishi
mumkin.Python dasturlash tilida o‘yin dasturlarini yaratish uchun maxsus
PyGame kutubxonasidan foydalaniladi.
PyGame – 2 o‘lchamli (2D) o‘yin dasturlarini yaratishga mo‘ljallangan
Python modul kutubxonasi. PyGame kutubxonasi ilk bor 2000-yilda
taqdim etilgan. Uning yordamida yozilgan dasturlar Android qurilmalari
hamda kompyuterlarda muammosiz ishlay oladi. PyGame kutubxonasi
yordamida yozilgan bitta dastur kodi orqali turli qurilmalarda ishlovchi
o‘yin dasturlarini yaratish imkoniyatini qo‘lga kiritish mumkin.
PyGame paketining imkoniyatlaridan foydalanish uchun modullar:
pygame.cursors – kursor ko‘rinishlarini yuklash.
pygame.display – displey bilan ishlash.
pygame.draw – figura, chiziq va nuqtalarni chizish.
pygame.event – tashqi hodisalarni boshqarish.
pygame.font – tizim shriftlaridan foydalanish.
pygame.image – rasmlarni yuklash va saqlash.
6
pygame.joystick – joystik va analog qurilmalar bilan ishlash.
pygame.key – klaviatura bilan ishlash.
pygame.mouse – sichqoncha bilan ishlash.
pygame.sprite – harakatlanuvchi rasmlar bilan sihlash.
pygame.music – ovoz va musiqalar bilan ishlash.
pygame.time – vaqt va kadr chastotalari bilan ishlash.
O‘yin oynasini yaratib olish o‘yin dasturlarini yaratishda ilk bosqich
hisoblanadi. Aynan ushbu oyna o‘yin uchun maydon vazifasini bajaradi.
PyGame displey oynasi va ekranni boshqaruvchi tayyor
“pygame.display” moduliga ega bo‘lib, uning funksiyalari quyidagi
jadvalda keltirilgan:
pygame.display.init – displey modulini ishga tushirish.
pygame.display.quit – displey modulini ishga tushirish.
pygame.display.flip – displey yuzasini butunlay yangilash.
pygame.display.set_mode – o‘yin oynasini ishga tushirish.
pygame.display.get_surface q– joriy o‘rnatilgan o‘yin oynasi
havolasini qabul qilish.
pygame.display.toggle_fullscreen
– o‘yin oynasi rejimlarini
almashtirish (to‘liq va noto‘liq ekran).
pygame.display.set_caption – o‘yin oynasi sarlavhasi qiymatini
berish.
pygame.display.get_caption q– o‘yin oynasi joriy sarlavhasi
qiymatini qaytarish.
Loyiha tuzilmasi
simple-plane-shooter-game-using-pygame/
│
├── resources/
│ ├── font/
# O'yin uchun shriftlar
│ ├── image/
# JPG formatdagi rasm fayllari (samolyot, fon,
dushmanlar va boshqalar)
│ └── sound/ # O'yin uchun musiqalar, effektlar (shoot,
explosion)
│
├── gameRole/
# Ehtimol bu erda o'yin obyektlari (player,
enemy, bullet) modullari bo'ladi
├── index.py
# Asosiy o'yin kodi shu faylda yozilgan
7
O‘yin maydonini tayyorlash bosqichlari
index.py faylining to‘liq tahlili
Bu dastur — pygame kutubxonasi yordamida yozilgan oddiy samolyot
otishma o‘yini (2D aircraft shooter).
Asosiy maqsad:
Samolyotlar dushmanlarni otadi, ular bilan to‘qnashmaslikka harakat
qiladi. O‘yin yakunida "Game Over" va ballar (score) ko‘rsatiladi.
📌 1. Importlar
python
КопироватьРедактировать
import pygame
from sys import exit
from pygame.locals import *
from gameRole import *
import random
pygame – o‘yinni yaratish uchun asosiy kutubxona.
sys.exit() – o‘yin tugaganda dasturni yopish uchun.
pygame.locals – klaviatura tugmalari uchun (K_w, K_LEFT, ...).
gameRole – foydalanuvchi yaratgan modul. Bunda Player, Enemy
klasslari aniqlangan.
random – dushmanlarning pozitsiyasini tasodifiy aniqlash uchun.
🖼️ 2. Ekran va ovozlar
python
КопироватьРедактировать
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH,
SCREEN_HEIGHT))
pygame.display.set_caption('Aircraft War')
Ekran hajmi SCREEN_WIDTH va SCREEN_HEIGHT orqali
belgilanadi (bu o‘zgaruvchilar gameRole.py faylida aniqlangan).
O‘yin nomi — Aircraft War.
🔊 Ovozlar:
python
КопироватьРедактировать
bullet_sound = pygame.mixer.Sound('resources/sound/bullet.wav')
...
pygame.mixer.music.load('resources/sound/game_music.wav')
8
pygame.mixer.music.play(-1, 0.0)
bullet.wav, enemy1_down.wav, game_over.wav — turli voqealar
uchun tovushlar.
game_music.wav — orqa fon musiqasi doimiy yangraydi (-1
doimiy takrorlanadi).
🛩️ 3. Rasmlar va ob'ektlar
python
КопироватьРедактировать
background = pygame.image.load(...)
game_over = pygame.image.load(...)
Fon rasmi va o‘yin tugagandagi ekran rasmi.
✈️ O‘yinchi samolyoti:
python
КопироватьРедактировать
player_rect = [pygame.Rect(...), ...]
player = Player(plane_img, player_rect, player_pos)
player_rect — turli holatlardagi animatsiya ramkalari.
Player — gameRole.py dan olingan klass.
💥 O‘q va dushman:
python
КопироватьРедактировать
bullet_rect = ...
bullet_img = ...
enemy1_img = ...
enemy1_down_imgs = [...]
O‘q, dushman va dushman halokatining animatsion ramkalari.
🔄 4. O‘yinning asosiy sikli (while running)
Bu yerda har 60 FPS ishlaydi:
python
КопироватьРедактировать
clock.tick(60)
� O‘q uzish:
python
КопироватьРедактировать
if shoot_frequency % 15 == 0:
bullet_sound.play()
9
player.shoot(bullet_img)
Har 15 frame’da bitta o‘q chiqariladi.
👾 Dushman paydo bo'lishi:
python
КопироватьРедактировать
if enemy_frequency % 50 == 0:
...
Har 50 frame’da yangi dushman paydo bo‘ladi.
💣 To‘qnashuvlar:
python
КопироватьРедактировать
if pygame.sprite.collide_circle(enemy, player):
...
O‘yinchi va dushman to‘qnashsa, o‘yin tugaydi.
O‘q dushmanni urib tushirsa, enemies_down ro‘yxatiga qo‘shiladi.
🖌️ 5. Chizish (rendering)
python
КопироватьРедактировать
screen.fill(0)
screen.blit(background, (0, 0))
...
screen.blit(score_text, text_rect)
Ekran tozalanadi va fon, o‘yinchi, dushman, o‘qlar, ball
ko‘rsatiladi.
player.image[player.img_index] orqali animatsiyalar navbatmanavbat chiqariladi.
� 6. Klaviatura nazorati
python
КопироватьРедактировать
key_pressed = pygame.key.get_pressed()
...
player.moveUp(), moveDown(), moveLeft(), moveRight()
WASD yoki ↑ ↓ ← → tugmalari bilan boshqariladi.
🛑 7. Game Over oynasi
python
КопироватьРедактировать
screen.blit(game_over, (0, 0))
10
screen.blit(text, text_rect)
O‘yinchi o‘lsa, "Game Over" rasmi chiqadi va natija ko‘rsatiladi.
♻️ 8. Oxirgi tsikl (kutish)
O‘yinchi ekranni yopmaguncha natija ekranda turadi.
Kodni asl ko’rinishi
11
12
13
14
Asosiy o‘yin fayli va gameRole.py moduli.
1. Asosiy O‘yin Fayli (main.py)
Bu fayl o‘yinning asosiy ish faoliyatini boshqaradi. Quyidagi qismlarga
bo‘lingan:
📌 Kutubxonalar va resurslar
python
КопироватьРедактировать
import pygame
from sys import exit
from pygame.locals import *
from gameRole import *
import random
pygame — o‘yinni tuzish uchun kerakli kutubxona.
gameRole — bu sizning modul faylingiz bo‘lib, unda Player,
Enemy, Bullet klasslari mavjud.
🎵 Ovoz va musiqa
python
КопироватьРедактировать
bullet_sound = pygame.mixer.Sound(...)
game_over_sound = pygame.mixer.Sound(...)
pygame.mixer.music.load(...)
bullet_sound, enemy1_down_sound, game_over_sound —
effektlar.
game_music — fon musiqasi.
🖼️ Grafikalar
python
15
КопироватьРедактировать
background = pygame.image.load(...)
game_over = pygame.image.load(...)
plane_img = pygame.image.load(...)
Fon rasmi, o‘yin tugagan ekran va o‘yinchi samolyotining sprite
rasmi yuklanadi.
� O‘yinchi obyektini yaratish
python
КопироватьРедактировать
player_rect = [...]
player_pos = [200, 600]
player = Player(plane_img, player_rect, player_pos)
player_rect — sprite sheet dan olingan ramkalar.
player — Player klassidan obyekt.
💣 O‘q va 🛩️ Dushmanlar
python
КопироватьРедактировать
bullet_rect = ...
enemy1_rect = ...
enemy1_down_imgs = [...]
O‘q va dushman rasmlari subsurface() orqali ajratib olinadi.
🔄 Asosiy tsikl (while running:)
Bu yerda o‘yinning asosiy ish jarayoni bajariladi:
🔫 O‘q uzish
16
python
КопироватьРедактировать
if shoot_frequency % 15 == 0:
player.shoot(bullet_img)
🛩️ Dushmanlar paydo bo‘lishi
python
КопироватьРедактировать
if enemy_frequency % 50 == 0:
enemy1 = Enemy(...)
enemies1.add(enemy1)
💥 Urilishlar
python
КопироватьРедактировать
if pygame.sprite.collide_circle(enemy, player):
player.is_hit = True
O‘yinchi va dushman to‘qnashsa, is_hit bo‘ladi va o‘yin tugaydi.
� Ekranni chizish
python
КопироватьРедактировать
screen.blit(background, (0, 0))
screen.blit(player.image[player.img_index], player.rect)
Fon va o‘yinchi chiziladi.
O‘q va dushmanlar ham draw() yordamida ekranga chiqariladi.
� Hisobni chiqarish
python
КопироватьРедактировать
score_text = score_font.render(str(score), True, (128, 128, 128))
17
❌ O‘yin tugashi
python
КопироватьРедактировать
if player_down_index > 47:
running = False
O‘yinchi o‘lganidan keyin animatsiyadan so‘ng running False
bo‘ladi.
🔹 2. gameRole.py Fayli — Rollar (O‘yinchi, O‘q, Dushman)
🎯 Bullet klassi
python
КопироватьРедактировать
class Bullet(pygame.sprite.Sprite):
def __init__(...):
...
def move(self):
self.rect.top -= self.speed
O‘q yuqoriga harakatlanadi.
� Player klassi
python
КопироватьРедактировать
class Player(pygame.sprite.Sprite):
def __init__(...):
...
def shoot(self, bullet_img):
18
bullet = Bullet(...)
self.bullets.add(bullet)
O‘yinchining rasm ramkalari listga qo‘shiladi.
Harakat funksiyalari (moveUp, moveDown, ...) mavjud.
🛩️ Enemy klassi
python
КопироватьРедактировать
class Enemy(pygame.sprite.Sprite):
def __init__(...):
...
def move(self):
self.rect.top += self.speed
Harakat pastga bo‘ladi.
Dushman yo‘q qilinganda down_imgs orqali animatsiya beriladi.
Umumiy O‘yinning Ishlash Tizimi:
+------------------+
| Asosiy tsikl |
+------------------+
|
+---------------------+
| O‘q otish
|
| Dushman paydo bo‘lish|
+---------------------+
|
+---------------------+
19
| To‘qnashuvlarni tekshirish |
+---------------------+
|
+---------------------+
| Ekranga chizish
|
+---------------------+
|
+---------------------+
| Tugash holatini tekshirish |
+---------------------+
O‘yinni boshqarish:
Siz klaviatura tugmalari orqali o‘yinchini (samolyotni) boshqarasiz:
Tugma
Harakat
↑ (yoki W) Yuqoriga harakat
↓ (yoki S) Pastga harakat
← (yoki A) Chapga harakat
→ (yoki D) O‘ngga harakat
Otish (🔫) O‘q uzish avtomatik (auto fire)
Kodni asl ko’rinishi
20
21
O’yin
22
23
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )