Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Gosu — to biblioteka do tworzenia gier 2D oraz aplikacji graficznych w języku Ruby (a także C++). Ułatwia tworzenie gier, oferując zestaw wygodnych i efektywnych narzędzi do pracy z grafiką, dźwiękiem, tekstem oraz obsługą wejścia.
Możliwości Gosu
- Gosu obsługuje ładowanie i wyświetlanie obrazów w formatach PNG, JPEG i innych. Obsługuje również animacje za pomocą sprite sheetów.
- Biblioteka pozwala na wyświetlanie tekstu za pomocą systemowych czcionek lub załadowanych plików czcionek.
- Gosu wspiera odtwarzanie dźwięków i muzyki w formatach WAV i MP3, co umożliwia łatwe dodawanie efektów dźwiękowych oraz muzyki do gry.
- Biblioteka zapewnia wygodne przetwarzanie wejścia z klawiatury i myszy, co ułatwia sterowanie postaciami oraz innymi elementami gry.
- Gosu pozwala na tworzenie płynnych animacji, wykorzystując timery i cykle klatkowe.
- Dzięki otwartemu kodowi i wsparciu dla rozszerzeń, Gosu łatwo integruje się z innymi bibliotekami i pozwala na dodawanie nowych funkcjonalności.
W wątkach/tematach do tego wpisu będę stopniowo dodawać małe notatki na temat pracy z Gosu. Dołączyłem również wideo z demem, które jest spakowane w Ruby-gem.
Instalujemy demko Gosu:
gem install gosu-examples
Uruchamiamy demko:
gosu-examples
Witamy w Gosu Example Box! To małe narzędzie pozwala na uruchamianie dowolnych gier Gosu z listy po prawej stronie ekranu. Każdy przykład można uruchomić zarówno z tego narzędzia, jak i z terminala/wiersza poleceń jako osobny skrypt Ruby. Skróty klawiaturowe: • Aby zobaczyć kod źródłowy przykładu lub demonstracji możliwości, naciśnij E. • Aby otworzyć folder 'examples', naciśnij O. • Aby wyjść z tego narzędzia, naciśnij Esc. • Aby przełączyć się w tryb pełnoekranowy, naciśnij Alt+Enter (Windows, Linux) lub cmd+F (macOS). Dlaczego nie spojrzeć na kod tego przykładu już teraz? Po prostu naciśnij E.
Jeśli od razu naciśniesz E, w twoim edytorze kodu otworzy się część, która odpowiada za ten pierwszy ekran:
require "gosu"
WIDTH, HEIGHT = 640, 480
class Welcome < (Example rescue Gosu::Window)
PADDING = 20
def initialize
super WIDTH, HEIGHT
self.caption = "Witamy!"
text =
"<b>Witamy w Gosu Example Box!</b>
To małe narzędzie pozwala na uruchamianie dowolnych gier przykładowych Gosu z listy po prawej stronie ekranu.
Każdy przykład można uruchomić zarówno z tego narzędzia <i>jak</i> z terminala/wiersza poleceń jako samodzielny skrypt Ruby.
Skróty klawiaturowe:
• Aby zobaczyć kod źródłowy przykładu lub demonstracji możliwości, naciśnij <b>E</b>.
• Aby otworzyć folder ‘examples’, naciśnij <b>O</b>.
• Aby wyjść z tego narzędzia, naciśnij <b>Esc</b>.
• Aby przełączyć się w tryb pełnoekranowy, naciśnij <b>Alt+Enter</b> (Windows, Linux) lub <b>cmd+F</b> (macOS).
Dlaczego nie spojrzeć na kod tego przykładu już teraz? Po prostu naciśnij <b>E</b>."
# Usuń wszystkie wiodące spacje, aby tekst był wyrównany do lewej
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
# Zignoruj matematykę w tej metodzie, nie wygląda tak dobrze, jak myślałem
# że będzie. =(
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
A wybierając cptn_ruby.rb można zagrać w prosty platformer (wideo z rozgrywki dodałem do tego wpisu) ^_^
W następnym wpisie trochę przyjrzę się samemu procesowi pisania / tworzenia gry.
Ten post nie ma jeszcze żadnych dodatków od autora.