Rozwój
Programowanie SI
- Dokumentacja API
- Wprowadzenie
- plik info.nut
- plik main.nut
- Podstawy
- Poszukiwacz drogi
- Użycie pathfinder`a kolei
- Zapis / Odczyt danych
- Dobrze wiedzieć
- Squirrel
- Listy
- Poradnik na błędy OTTD
- Trams
- Biblioteki SI
- Forum
- Forum FAQ
- Zachowanie SI
- Użycie krótkich nazw
SIy
Wszystko kategorii NoAIOpenTTD używa squirrel 2.2.5.
Niektóre przykłady znaczników Squirrel można znaleźć na stronie Squirrel Language Website.
Aby wyświetlić podstawową dokumentację Squirrel , pobierz lub przejrzyj documentation, chociaż nie wszystkie standardowe biblioteki są włączone.
Contents |
Przekształcone funkcje Squirrel
Niektóre podstawowe funkcje są zawarte w frameworku Squirrel, ale mogą się różnić. Wszystko, co nie zostało tutaj wyraźnie wymienione lub w dokumentacji AI, może nie działać. To są:
print()
Unikaj używania. Raczej użyć AILog::Info()
or AILog::Warning()
wysyłać wiadomości. Są ładnie uchwycone i wydrukowane w oknie debugowania AI (jak również na wszystkich normalnych wyjściach debugowania).
abs()
abs()
zwraca wartość bezwzględną wartości całkowitej/zmiennoprzecinkowej. Na przykład:
print("abs(-5) is: " + abs(-5));
Wydrukuje:
abs(-5) is: 5
require()
Zawiera fragment kodu z innego pliku. Ścieżka jest względna i natychmiast załaduje kod z tego pliku. Pamiętaj, że każdy plik musi być kompilowany samodzielnie.
require("test.nut");
_cmp()
_cmp
to meta-metoda, która umożliwia zastąpienie operacji porównania (<, >, <=, >=) na instancji klasy. Metoda przyjmuje pojedynczy argument typu klasy nadrzędnej i powinna zwrócić liczbę całkowitą opisującą, czy argument jest mniejszy, równy lub większy niż instancja.
class Node { cost = 0; constructor(cost) { this.cost = cost; } } function Node::_cmp(node) { if(this.cost < node.cost) return -1; if(this.cost > node.cost) return 1; return 0; } local a = Node(7); local b = Node(3); local cheapest = (a < b) ? a : b; AILog.Info(cheapest.cost) // Will print "3"
Wbrew intuicji, operator _cmp
NIE jest używany dla operatora równości (==). Można go jednak użyć do sprawdzenia równości, stosując następującą sztuczkę...
local equal = nodeA <= nodeB && nodeA >= nodeB;
Narzędzia programistyczne
Squirrel to język skryptowy, więc nie będziesz musiał kompilować AI, jednak istnieją narzędzia, które ułatwią programowanie, w tym funkcje takie jak podświetlanie składni i sprawdzanie błędów.
Eclipse i SQDEV
Eclipse to dobrze znane środowisko IDE oparte na Javie. SQDEV to wtyczka Eclipse ułatwiająca rozwój Squirrel. Aby korzystać z SQDEV, będziesz potrzebować Java 5 i Eclipse 3.2 or higher. Chociaż Eclipse twierdzi, że potrzebuje tylko JRE (Java Runtime Environment), lepiej zainstalować JDK (Java Development Kit), aby uniknąć pewnych błędów biblioteki. Aby zainstalować SQDEV, wykonaj następujące kroki.
- W Eclipse, wybierz Help > Software Update > Find and Install...
- Wybierz "Search for new features to install"
- Wybierz "New Remote Site" i wprowadź następujące dane: Name: SQDev Update Site, URL: http://sqdev.sf.net/update/
- Upewnij się, że nowa witryna aktualizacji jest zaznaczona. (Uwaga: może być konieczne odznaczenie "Ignore features not applicable to this environment" aby działało)
- Kliknij "Finish" i postępuj zgodnie z instrukcjami.
- Po zakończeniu uruchom ponownie środowisko robocze, gdy zostaniesz o to poproszony.
Aby włączyć perspektywę Squirrel , należy utworzyć główne menu zaćmienia Window > Open Perspective > Others i wybierz Squirrel
Ta informacja pochodzi z wiki Squirrel tutaj.