> LeekScript-zelfstudie
We gaan het nu hebben over de functies van de LeekScript!
Functies zijn een essentieel aspect van programmeren. Hiermee kunt u een reeks acties onthouden die u wanneer u maar wilt opnieuw kunt gebruiken.
Op Leek Wars kunnen we twee soorten functies onderscheiden:
We zullen het nu alleen hebben over native functies.
De native functies zijn de functies die LeekScript je ter beschikking stelt, zij zijn degenen waarmee je veel informatie over het gevecht kunt verkrijgen. Het is ook dankzij hen dat je de acties van je prei kunt beheersen.
Functies zijn snel herkenbaar aan hun syntaxis:
functieNaam(parameters);
Je hebt ze al gezien in de basis-AI tijdens het hoofdstuk over de Editor. Als een herinnering :
// Vier zeer handige functies var vijand = haal Dichtstbijzijnde Vijand(); setWeapon(WEAPON_PISTOL); moveToward(vijand); gebruik Wapen (vijand);
getNearestEnemy, setWeapon, moveToward en useWeapon zijn vier functies die de LeekScript je ter beschikking stelt.
Een minimaal begrip kan helpen om het nut van een functie te begrijpen zonder de documentatie te hoeven raadplegen. Functienamen spreken meestal voor zich en laten zien waarvoor ze worden gebruikt.
Wat is de "terugkeer" van een functie? Het is niet systematisch, maar een functie kan informatie retourneren.
In dit voorbeeld is dat het geval:
var vijand = haal Dichtstbijzijnde Vijand();
Als je aandacht hebt besteed aan het vorige hoofdstuk, begrijp je dat er een "vijandige" variabele wordt gecreëerd. En tegelijkertijd krijgt het een waarde toegewezen met het gelijkteken '='.
Maar wat wordt hem precies toegewezen? Hier komt de functie getNearestEnemy om de hoek kijken. Deze functie retourneert de id van de dichtstbijzijnde vijand.
Dus wanneer je prei deze code uitvoert, roept hij de functie getNearestEnemy aan. Dit zal de identifier van de dichtstbijzijnde prei teruggeven, die vervolgens zal worden opgeslagen in de "enemy" variabele;
Als je nieuwsgierig bent, kun je een debug toevoegen:
var vijand = haal Dichtstbijzijnde Vijand(); debuggen (vijand);
Als je deze code uitvoert in een 1v1-testgevecht, zou je het nummer 1 of 0 moeten zien. Prei-ID's in gevechten zijn niets meer dan cijfers. Voor een gevecht van 4 prei worden deze genummerd van 0 tot 3.
Zoals je kunt zien, is debug een native functie van LeekScript. Je vraagt je misschien af waarom we de variabele "vijand" tussen haakjes hebben gezet? Wij komen daar.
Zo noem je wat tussen haakjes staat: parameters. Deze kleine beestjes zijn erg handig. De actie die een functie uitvoert, hangt af van de parameters.
Om terug te keren naar de debug-functie, wordt er een bericht weergegeven in de gevechtslogboeken. En dit bericht, jij bent het die de inhoud aangeeft, dankzij een parameter.
Als u de waarde 5 in parameter aan debug geeft, zal het bericht "5" zijn. Als je de tekst "Ik hou van preisoep" aan debug geeft, is het bericht "Ik hou van preisoep".
Dit is wat er gebeurt met deze functies:
var vijand = haal Dichtstbijzijnde Vijand(); setWeapon(WEAPON_PISTOL); moveToward(vijand); gebruik Wapen (vijand);
setWeapon laat je prei een wapen uitrusten. Om hem aan te geven welk wapen hij moet uitrusten, moet je de identifier van het wapen als parameter doorgeven. Hier is het "WEAPON_PISTOL", het is een constante die het Pistol wapen aangeeft. Deze constante komt overeen met het nummer 37, de identificatie van het pistool. Je zou 37 kunnen schrijven in plaats van WEAPON_PISTOL, het zou hetzelfde effect hebben. Maar door de constante te gebruiken, wordt de code begrijpelijker en hoeft u de identifiers van elk wapen/chip niet uit het hoofd te leren.
Met moveToward kun je je prei naar een ander verplaatsen. De functie heeft hiervoor het id van een target prei nodig. Dit is waar je je "vijandige" variabele eruit haalt. Onthoud dat het nu de ID van je naaste tegenstander bevat. Als u deze variabele doorgeeft aan moveToward, wordt u naar die vervelende prei geleid.
Met useWeapon zal je prei proberen een prei te schieten. Op dezelfde manier vertel je de functie dat je je vijand wilt neerschieten.
Sommige functies retourneren geen waarde en verwachten er ook geen. Maar ze zijn niet nutteloos!
Bijvoorbeeld de functie pauze. Hiermee kun je het gevecht pauzeren wanneer je ernaar kijkt. (Het heeft geen invloed op het gevecht, het is hetzelfde als het handmatig indrukken van de "Pauze"-knop of de
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.