Autor Wątek: Sposób łączenia języka C++ oraz skryptów  (Przeczytany 2774 razy)

Offline HawkDeath

  • Użytkownik

# Czerwiec 23, 2014, 21:43:48
Witam,
chciałbym się dowiedzieć w jaki działa program, który łączy w sobie zwykły kod oraz skrypty.
Chodzi mi tu głównie jaki powinienem przyjąć tok myślenia, aby efektywnie połączyć kod ze skryptami.
I chciałbym się jeszcze dowiedzieć jak to wygląda w zastosowanie np w prostej grze platformowej.
Proszę o krótki listing (najlepiej w pythonie).

Pozdrawiam. :D

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xirdus

  • Redaktor

# Czerwiec 23, 2014, 23:23:09
Zasada jest prosta: program czyta z pliku/pamięci/sieci/zmapowanego urządzenia/whatever kod skryptu, i wykonuje polecenia tam zawarte. Zwykle wykorzystuje się do tego gotowy interpreter języka, np. Lua, Python, Squirrel - każda z tych bibliotek ma swoje API do wywoływania funkcji z programu w kodzie skryptu i odwrotnie, i w ten sposób to działa.

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Czerwiec 28, 2014, 08:58:44
"Tok myślenia" natomiast podczas tworzenia czy to gry, czy programu, którym można sterować ze skryptów, warto przyjąć taki, że program to tak naprawdę zbiór różnych podstawowych funkcji (np. Exit - wyjście z programu, CreateObject - utworzenie obiektu z jakimiś parametrami, PlaySound - odegranie określonego dźwięku), te funkcje są udostępnione dla skryptu i skrypt steruje programem wywołując te funkcje.

Offline aphity

  • Użytkownik

# Czerwiec 28, 2014, 15:18:51
Pytanie jest chyba z kategorii tych, na które odpowiedź brzmi: "zależy do czego". To co opisuje Reg, przypomina bardziej pisanie programu w oparciu o bibliotekę.

Gry chyba w ogólności wykorzystują skrypty korzystając ze schematu: w programie wystąpiło zdarzenie -> wywołuje on odpowiednią funkcję w języku skryptowym -> ta funkcja realizuje logikę obsługi zdarzenia. Oczywiście dla zrealizowania tej logiki skrypt zazwyczaj uruchamia funkcje dostarczone przez program - koło się zamyka.

W grze platformowej można przyjąć następujący schemat: program dostarcza renderowanie (robi za silnik grafiki), dźwięk. "framework do obiektów" (jakąś klasę ogólną opisującą elementy gry) oraz pętlę główną. Skrypt może natomiast opisywać szczegóły zdarzeń zachodzących w grze: np. następuje kolizja gracz-platforma -> program woła funkcję skryptu -> skrypt stwierdza: w takiej sytuacji gracz powinien się zatrzymać, a z głośników ma pójść odpowiedni sfx -> program realizuje polecenia skryptu. To oczywiście tylko jedna z możliwości.