The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Es kann vorkommen, dass Sie der Funktion spezifische Informationen geben möchten. Dadurch kann die Funktion ihre Aufgabe basierend auf den bei jedem Aufruf empfangenen Informationen entsprechend ausführen. Das folgende Beispiel zeigt, wie es funktioniert.
Beispiel: Ein Programm zeichnet mithilfe von Parametern ein Smiley-Gesicht zur Anzeige
Das folgende Beispiel veranschaulicht auch globale Variablen, die ordnungsgemäß verwendet werden.
Ohne Verwendung einer benutzerdefinierten Funktion:
int MaxX = 484, MaxY = 278;
int main() {
vexcodeInit();
int centerX = MaxX/2, centerY = MaxY/2;
//Das Gesicht
Brain.Screen.drawCircle(centerX, centerY, 100);
//Das linke Auge
int space = 20; /*Dies gibt den Abstand für das Auge relativ zum oberen Bildschirmrand an. Sie können dies beliebig anpassen.*/
centerX = MaxX/2+space;
CenterY = MaxY/2-30;
Brain.Screen.drawCircle(centerX, centerY, 20);
//Das rechte Auge
/*...hier können Sie mit dem Code für das rechte Auge fortfahren*/
//Der Smiley-Mund
/*...hier können Sie mit dem Code für den Smiley-Mund fortfahren
... usw.
Wenn Sie eine andere Größe zeichnen möchten, müssen Sie den gesamten Codesatz noch einmal wiederholen.
*/
}
Mit einer benutzerdefinierten Funktion:
int MaxX = 484, MaxY = 278;
const char Links=1, Rechts=2;
void drawFace(int size){
/*...Code für das Gesicht basierend auf dem Größenparameter der Aufruffunktion.*/
}
//side == Left or Right
void drawEye(char side){
/*...Code für das Auge basierend auf dem Größenparameter der Aufruferfunktion.*/
}
//side == Left or Right
void drawMouth(bool smile, int size){
/*...code für den Mund basierend auf dem Größenparameter des Anrufers. Dazu gehört, ob es lächelt oder die Stirn runzelt, sowie die Breite.*/
}
int main() {
vexcodeInit();
drawFace();
drawEye(Links);
drawEye(Rechts);
//Damit kann man richtig Spaß haben...
while (true){
drawMouth(true, 30);
wait(1000, ms);
drawMouth(false, 30);
wait(1000, ms);
}
}
Hier ist die Abfolge des Logikflusses der Aufruffunktion main() dargestellt: