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.
함수에 특정 정보를 제공하고 싶을 때가 있을 것입니다. 이를 통해 함수는 호출될 때마다 수신된 정보를 기반으로 그에 따라 작업을 수행할 수 있습니다. 다음 샘플은 작동 방식을 보여줍니다.
예시: 프로그램이 매개변수를 사용하여 웃는 얼굴을 그립니다.
다음 예에서는 올바르게 사용되는 전역 변수의 예도 보여줍니다.
사용자 정의 함수를 사용하지 않고:
int MaxX = 484, MaxY = 278;
int main() {
vexcodeInit();
int centerX = MaxX/2, centerY = MaxY/2;
// 얼굴
Brain.Screen.drawCircle(centerX, centerY, 100);
// 왼쪽 눈
int space = 20; /* 화면 상단을 기준으로 눈의 간격을 제공합니다. */ 원하는 대로 조정할 수 있습니다.*/
centerX = MaxX/2+공백;
centerY = MaxY/2-30;
Brain.Screen.drawCircle(centerX, centerY, 20);
//오른쪽 눈
/*...오른쪽 눈에 대한 코드를 여기서 계속 작성할 수 있습니다*/
//웃는 입
/*...웃는 입에 대한 코드를 여기서 계속 작성할 수 있습니다
...등
다른 크기로 그리려면 전체 코드를 다시 작성해야 합니다.
*/
}
사용자 정의 함수를 사용하면 다음과 같습니다.
int MaxX = 484, MaxY = 278;
const char Left=1, Right=2;
void drawFace(int size){
/*...호출자 함수의 size 매개변수를 기반으로 얼굴을 그리는 코드입니다.*/
}
//side == Left 또는 Right
void drawEye(char side){
/*...호출자 함수의 size 매개변수를 기반으로 눈을 그리는 코드입니다.*/
}
//side == Left 또는 Right
void drawMouth(bool smile, int size){
/*...호출자 함수의 size 매개변수를 기반으로 입을 그리는 코드입니다. 여기에는 웃는 얼굴인지 찡그린 얼굴인지, 그리고 얼굴의 너비가 포함됩니다.*/
}
int main() {
vexcodeInit();
drawFace();
drawEye(Left);
drawEye(Right);
//이 부분을 가지고 정말 재밌는 작업을 할 수 있습니다...
(true)인 동안 {
drawMouth(true, 30);
wait(1000, msec);
drawMouth(false, 30);
wait(1000, msec);
}
}
아래 영상은 호출 함수인 main()에서부터 논리가 어떻게 흐르는지를 보여줍니다.