sobota, 21 stycznia 2012

Pisanie gier w Ren'py, część 2

To druga część samouczka o tworzeniu gier w Ren'py. W pierwszej części opisałem przygotowania do stworzenia takiej gry. Teraz zajmiemy się pisaniem jej. To czynność bardzo prosta i można jej łatwo nauczyć się samemu. Jednak jeśli ktoś chciałby po kolei się wszystkiego nauczyć, to zapraszam do lektury

Po wpisaniu w skrypt grafiki i postaci, co opisałem w pierwszej części poradnika, wpisujemy komendę label start. Od niej zaczyna się to, co pojawia się w grze. Aby wstawić obrazek tła, wpisujemy komendę scene bg a po niej skrótową nazwę pliku graficznego tła. Jeżeli więc plik tła nazywa się back1.jpg, a przyporządkowaliśmy mu skrótki back1, to komenda powinna wyglądać tak:
scene bg back1

Każda strona, przerzucana kliknięciem, zawiera pewną ilość tekstu. Tekst ten wpisujemy, zamykając początek i koniec cudzysłowiem. Cudzysłowia są bardzo ważne, bo tylko tekst nimi zaczęty i rozpoczęty pojawia się w grze. Więc jeśli chcemy, żeby pojawił w grze się tekst mówiący o tym, że gracz wchodzi do wioski, to w skrypcie powinien on być zapisany tak:
"Wchodzisz do wioski."

Podczas pisania scenariusza, trzeba wprowadzić na ekran i do tekstu bohaterów. W poprzednim rozdziale pisałem, że każdej postaci należy przyporządkować literę alfabetu jako skrót. Literę tą zapisujemy przed słowami w cudzysłowiu, które ma powiedzieć postać. Jeżeli mamy postać o imieniu Raika o skrócie r, która ma powiedzieć "Nie chcę" i jej imię ma sie pojawić przy tekście, to nasza komenda powinna wyglądać tak:
r "Nie chcę."

Chcielibyśmy, żeby jednak nasza postać pojawiła sie w tym czasie na tle obrazka tła, który już mamy. Teraz trzeba sprawdzić imiona, jakim przyporządkowaliśmy grafiki postaci (tak jak to opisałem tutaj). Jeśli więc chcemy, żeby Raika powiedziała "nie chcę" i żeby pojawiła się na ekranie, wpisujemy taką komendę:
show Raika
r "Nie chcę."

Nasza postać zniknie z ekranu, jeżeli wpiszemy komendę hide. Żeby więc Raika zniknęła po wypowiedzeniu tych słów, trzeba wpisać to tak:
show Raika
r "Nie chcę."
hide Raika
Ale jakbyście chcieli mieć na ekranie więcej postaci, to trzeba je ustawić. Powiedzmy, że chcemy, żeby Raika była na ekranie z Shalt. Raika będzie po lewo, a Shalt po prawo.
show Raika at left with dissolve
show Shalt at right with dissolve

Robiąc grę, gdzie na ekranie będzie więcej postaci, dobrze jest pamiętać o szerokości obrazków z nimi, żeby mieściły się wszystkie, ale żeby na siebie nie wchodziły. Żeby takie obrazki znikały, wystarczy tak jak poprzednio słowo show zastąpić hide. Ustawianie postaci to ważny element pisania scenariusza i dobrze jest pamiętać o prawidłowym ustawianiu pojawiania się i znikania. Jeżeli zapomnimy gdzieś o "hide" to postać będzie pojawiać się na każdej kolejnej scence.

Do gry możemy dodać też muzykę i dźwięki. Robi się to tak samo, jak w przypadku grafiki. Jeśli chcemy, żeby zaczęłaś grać melodia, którą nazwaliśmy przykładowo melodia1.mp3, to po prostu wpisujemy komendę:
play music "melodia1.mp3"

Trochę bardziej skomplikowane jest umieszczanie filmików. Ren'py czyta tylko filmiki w avi, mpeg i ogg. Nazywamy więc nasz filmik na przykład intro.avi. Komenda potrzebna do jego umieszczenia wygląda tak:
#begin movie_cutscene
$ renpy.movie_cutscene("intro.avi")
#end movie_cutscene
Ren'py jest ciągle jeszcze kapryśny jeśli chodzi o filmiki, więc czasami się tnie, szczególnie przy większych i dłuższych filmikach.
Teraz, kiedy znacie już podstawy umieszczania wszystkiego w samej grze, będzie można zająć się najtrudniejszą częścią, czyli pytaniami, dzięki którym nasza gra nie będzie liniowa. O nich napiszę następnym razem.

2 komentarze:

  1. Hah, naprawdę żałuję, że nie znalazłam Twojego bloga wcześniej :D To smutne, że dopiero biorę się za fabułę i rysowanie postaci.

    OdpowiedzUsuń
  2. Witaj. Bardzo przydatny poradnik, naprawdę mi pomógł ;)
    Mam tylko jeden problem. Po wpisaniu komendy "show character at left" ta uparta postać nadal stoi na środku! Czy mógłbyś mi coś poradzić?

    OdpowiedzUsuń