Лекция · 5.3

Ойын кейіпкерлерін таңдау

Өткен сабақта ойынға фон қоюды үйрендік. Ал ойын кейіпкерін программаның өзінде фигуралардан құрастыру керек пе? Жоқ — көп жағдайда дайын суретті (Интернеттен алынған немесе графикалық редакторда салынған) қолданған тиімдірек. Бұл сабақта кейіпкерді (спрайтты) дұрыс таңдап, жүктеп, ойын алаңына сай өлшемдеуді үйренеміз.

Спрайт деген не
Анықтама
Спрайт (ағылш. sprite — фея, эльф) – экранда жылжытуға, басқа графикалық нысандармен өзара әрекеттесуге болатын компьютерлік графика нысаны. Ойында спрайт — кейіпкердің өзі.

Кейіпкерді программаның өзінде фигуралардан (шеңбер, тіктөртбұрыш) құрастыруға болады, бірақ бұлай салынған кейіпкермен ойнау көбіне қызықты болмайды. Сол себепті кейіпкерлер графикалық редакторда салынған немесе Интернеттен алынған дайын сурет түрінде қолданылады.

🎭
Аналогия: театрдағы актердің костюмі секілді — спрайт кейіпкерге «сыртқы түр» береді. Костюмді ауыстырсаң, актер (программалық логика) сол қалпында қалады, тек көрінісі өзгереді.
Спрайтты жүктеу

Сурет пен программа кодын бір бумада сақтаған жөн; басқа бумада болса, буманың атын жолмен бірге көрсету керек (мыс. "Suret/avto.png").

import pygame
pygame.init()
screen = pygame.display.set_mode([640, 480])
screen.fill([255, 255, 255])
avto = pygame.image.load("avto.png")
screen.blit(avto, [50, 50])
pygame.display.flip()

pygame.image.load() суретті файлдан жүктейді; screen.blit(сурет, [x, y]) оны экранның берілген нүктесінен бастап көрсетеді.

Спрайттың өлшемін өзгерту
Анықтама
pygame.transform.scale(picture, (width, height)) — жүктелген спрайттың ені мен биіктігін ойын алаңына сай өзгертеді.
avto = pygame.image.load('avto.png')
avto = pygame.transform.scale(avto, (160, 80))
pygame.display.set_caption('avtokolik')
screen.blit(avto, [50, 20])
screen.blit(avto, [50, 100])
screen.blit(avto, [50, 180])

Бір ғана жүктелген спрайтты бірнеше рет, әртүрлі координатта blit ету арқылы, экранда бірнеше көшірмесін көрсетуге болады (мыс. «Жарысу» жобасында 3 автокөлік).

⚠️
Ескерту: суреттерді қабаттастырғанда РЕТ маңызды — алдымен фон, содан кейін кейіпкер blit етілуі керек. Кейін салынған сурет алдыңғысының үстінде көрінеді.
🎯 ҰБТ байланысы
Спрайт пен PyGame функциялары — 2D ойын құру блогының негізі.
1
image.load() мен transform.scale() қызметтерін ажырата білу.
2
blit() ретінің экрандағы көрінуге әсері (кейінгі — үстінде).
3
set_caption() терезенің тақырыбын, ал fill() терезенің фонын өзгертеді.
Сабақ қорытындысы
  • Спрайт — ойын кейіпкерін білдіретін графикалық нысан.
  • pygame.image.load() — суретті жүктеу; screen.blit() — экранға шығару.
  • pygame.transform.scale() — өлшемін өзгерту.
  • Бір спрайтты бірнеше рет blit ету арқылы бірнеше көшірмесін көрсетуге болады.