0 Перший ігровий проект (м'ячик)

Бібліотека pygame zero входить у пакет редактора: https://codewith.mu/

PyGameZero - це обгортка навколо потужної бібліотеки PyGame для написання відеоігор за допомогою Python для новачків.  За допомогою PyGameZero написати розважальну гру надзвичайно просто, буквально за декілька рядків коду. 

Для запуску проекту потрібно натиснути Play (для зупинки - Stop, яка замінює Play під час роботи проекту). Доступ до папок із мультимедійними об'єктами забезпечується кнопками Images, Fonts, Sounds, Music.


Підключивши цю бібліотеку, можемо програмувати графічні ігрові програми.


Команди:

WIDTH = 500

HEIGHT = 500

визначають розмір ігрового екрану.


Блок 

def draw():
    screen.fill((128, 0, 0))
означає, що ігровий простір зафарбовується суцільним кольором з кодом 128,0,0

Кодування кольорів відбувається у форматі Red,Green,Blue.

Як описати синій, фіолетовий, жовтий колір?


Розмістимо зображення кульки за допомогою команди:

screen.draw.circle((50,100), 25, (255, 0, 0))

(50,100) - координати розміщення 

25 - радіус

(255, 0, 0) - колір

Звертайте увагу на дужки!


Прямокутник будується наступною командою:

screen.draw.rect(Rect((20, 20), (100, 100)), (255, 0, 0))

Rect((20, 20), (100, 100)) - координати діагоналі прямокутника (20,20) - початок діагоналі, (100,100) - кінець діагоналі. Зверніть увагу на написання команди Rect з великої літери!

(255, 0, 0) - колір.


Замість геометричних фігур можна використовувати спрайти із зображеннями. Наприклад,

alien = Actor('alien')

підключає до проекту файл alien.png (він має бути розміщений у каталозі Images середовища програмування)

Команда

alien.pos = 100, 56

задає координати розміщення цього спрайту.


Додавши команду:

alien.draw() 

у функцію def draw(): побачимо відповідне зображення у вказаних координатах

def draw():

    screen.clear()

    alien.draw()


Для того, щоб спрайт рухався, існує функція update():

def update():

    alien.left += 2

    if alien.left > WIDTH:

        alien.right = 0


У ній вказано, що спрайт має рухатись праворуч (збільшувати відстань від лівого краю сцени на 2 пікселі). Коли (якщо) він досягне правої межі сцени, має переміститись за її лівий край.


Як змусити спрайт натомість "відбитись" від межі?

Потрібна змінна а, яка буде визначати напрямок зміни відстані від лівого краю: якщо є рух праворуч, то потрібно додавати додатнє значення, якщо ліворуч - додавати вже від'ємне значення.

def update():

    global a

    alien.left += a

    if alien.left > WIDTH:

        a = a*(-1)


Зверніть увагу, що для можливості зміни значення змінної a всередині функції update(), потрібно зазначити, що ця змінна є глобальною.



Подумайте, яку команду потрібно додати, щоб спрайт відбивався від другої межі екрану.

Як зробити так, щоб спрайт рухався не лише по горизонталі, але й по вертикалі?

Як змінити швидкість руху спрайта?

Як змінити напрям (кут) руху спрайта?



https://pygame-zero.readthedocs.io/en/stable/introduction.html

Остання зміна: неділя 24 листопада 2019 8:14