Gosu — це бібліотека для розробки 2D-ігор та графічних додатків на мові програмування Ruby (а також C++). Вона спрощує створення ігор, надаючи набір зручних та ефективних інструментів для роботи з графікою, звуком, текстом та керуванням введенням.
Можливості Gosu
Gosu підтримує завантаження та відображення зображень у форматах PNG, JPEG та інших. Також підтримується анімація за допомогою спрайт-листів.
Бібліотека дозволяє відображати текст за допомогою системних шрифтів або завантажених файлів шрифтів.
Gosu підтримує відтворення звуків та музики у форматах WAV та MP3, що дозволяє легко додати звукові ефекти та музичний супровід до гри.
Бібліотека забезпечує зручне оброблення введення з клавіатури та миші, що спрощує керування персонажами та іншими елементами гри.
Gosu дозволяє створювати плавні анімації, використовуючи таймери та кадрові цикли.
Завдяки відкритому коду та підтримці розширень, Gosu легко інтегрується з іншими бібліотеками та дозволяє додавати нові функціональні можливості.
В нитках/треді до цього допису я буду поступово додавати маленькі нотатки про те як працювати з Gosu. Також прикріпив відео з демкою, яка запакована у Ruby-gem.
Встановлюємо демку Gosu:
gem install gosu-examples
Запускаємо демку:
gosu-examples
Якщо все правильно встановилось, то відкриється вікно з демками, які можна вивчати. Ось переклад тексту з головного екрану:
Ласкаво просимо до Gosu Example Box!
Цей невеликий інструмент дозволяє запускати будь-які ігри Gosu з списку праворуч від екрану.
Кожен приклад можна запустити як з цього інструменту, так і з терміналу/командного рядка як окремий Ruby-скрипт.
Клавіатурні команди/скорочення:
• Щоб побачити вихідний код прикладу або демонстрації можливостей, натисніть E.
• Щоб відкрити папку 'examples', натисніть O.
• Щоб вийти з цього інструменту, натисніть Esc.
• Щоб переключитися в повноекранний режим, натисніть Alt+Enter (Windows, Linux) або cmd+F (macOS).
Чому б не подивитися код цього прикладу прямо зараз? Просто натисніть E.
Якщо одразу натиснути E, то в вашом редакторі коду відкриється частина, яка якраз відповідає за цей перший екран:
require "gosu"
WIDTH, HEIGHT = 640, 480
class Welcome < (Example rescue Gosu::Window)
PADDING = 20
def initialize
super WIDTH, HEIGHT
self.caption = "Welcome!"
text =
"<b>Welcome to the Gosu Example Box!</b>
This little tool lets you launch any of Gosu’s example games from the list on the right hand side of the screen.
Every example can be run both from this tool <i>and</i> from the terminal/command line as a stand-alone Ruby script.
Keyboard shortcuts:
• To see the source code of an example or feature demo, press <b>E</b>.
• To open the ‘examples’ folder, press <b>O</b>.
• To quit this tool, press <b>Esc</b>.
• To toggle fullscreen mode, press <b>Alt+Enter</b> (Windows, Linux) or <b>cmd+F</b> (macOS).
Why not take a look at the code for this example right now? Simply press <b>E</b>."
# Remove all leading spaces so the text is left-aligned
text.gsub! /^ +/, ""
@text = Gosu::Image.from_markup text, 20, width: WIDTH - 2 * PADDING
@background = Gosu::Image.new "media/space.png"
end
def draw
draw_rotating_star_backgrounds
@text.draw PADDING, PADDING, 0
end
def draw_rotating_star_backgrounds
# Disregard the math in this method, it doesn't look as good as I thought it
# would. =(
angle = Gosu.milliseconds / 50.0
scale = (Gosu.milliseconds % 1000) / 1000.0
[1, 0].each do |extra_scale|
@background.draw_rot WIDTH * 0.5, HEIGHT * 0.75, 0, angle, 0.5, 0.5,
scale + extra_scale, scale + extra_scale
end
end
end
Welcome.new.show if __FILE__ == $0
А обравши cptn_ruby.rb можна пограти в простенький платформер (відео ґеймплею додав до цього допису) ^_^
У наступному дописі трохи розгляну сам процес написання / створення гри.
Цей блок містить всю необхідну інформацію для правильного цитування, включаючи дату публікації, назву допису, URL та інше.
Зверніть увагу, що посилатись потрібно на автора/авторку контенту (профіль, окремий допис тощо), а сайт цейво (tseivo.com) - лише майданчик для розміщення публікацій.
💡 Архівування сторінки у веб-архіві, такому як Wayback Machine, є корисною практикою, коли ви посилаєтесь на неї. Це дозволить зберегти стан сторінки на цей час і знизить ризики від зміни контенту або зміни структури сайту у майбутньому.
Оберіть та скопіюйте потрібний стандарт цитування:
ДСТУ 8302:2015
Ruby-бібліотека Gosu для створення 2D-ігор [Електронний ресурс] // tseivo.com. – Режим доступу: https://tseivo.com/b/memecode/t/yrbo6wpzwz/ruby-biblioteka-gosu-dlia-stvorennia-2d-ihor (дата звернення: 21.11.2024). – Назва з екрана.
ДСТУ ГОСТ 7.1:2006 (ВАК)
Ruby-бібліотека Gosu для створення 2D-ігор [Електронний ресурс] // tseivo.com. – URL: https://tseivo.com/b/memecode/t/yrbo6wpzwz/ruby-biblioteka-gosu-dlia-stvorennia-2d-ihor (дата звернення: 21.11.2024).
Або ж використовуйте наступну інформацію для формування цитування:
Автор/авторка пише під псевдонимом і не оприлюднює своє справжнє ім'я. Завжди перевіряйте достовірність контенту використовуючи декілька джерел (навіть, якщо контент опублікован під справжнім ім'ям).
Про зображення:
На нашій платформі ми приділяємо особливу увагу правильному вказуванню джерел зображень, щоб забезпечити дотримання авторських прав і прав на використання контенту. Ми намагаємося мотивувати використовувати виключно власні зображення, ресурси, що відповідають принципам fair use, або безкоштовні зображення з ліцензіями на кшталт Unsplash, які дозволяють вільне використання без порушення прав інтелектуальної власності.
Однак, враховуючи масштаб нашої платформи та різноманітність контенту, ми не можемо повністю контролювати всі публікації користувачів. Тому ми рекомендуємо перевіряти права на використання зображень та дотримуватися відповідних ліцензій, щоб уникнути можливих порушень авторських прав.
Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.
Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.