← strona głównaProgramowanie (Програмування)

Biblioteka Ruby Gosu do tworzenia gier 2D

Biblioteka Ruby Gosu do tworzenia gier 2D. Opis biblioteki do tworzenia gier w języku Ruby (a także C++).

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
gosu-examples
gosu-examples
Jeśli wszystko zostało poprawnie zainstalowane, otworzy się okno z demkami, które można badać. Oto tłumaczenie tekstu z ekranu głównego:
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.

🔥 Więcej postów

Wszystkie wpisy
Jak zrobić pusty commit w gicie?
Programowanie (Програмування)28 cze '24 08:33

Jak zrobić pusty commit w gicie?

Jak zrobić pusty git commit? Robimy pusty git commit. Po co? Kto wie, każdy ma swoje cele. W moim...

Co oznacza .map(&:name) w Ruby?
Programowanie (Програмування)28 lip '24 11:18

Co oznacza .map(&:name) w Ruby?

Co oznacza .map(&:name) w Ruby? Przykłady użycia skrótu wywołania map.