วันจันทร์ที่ 5 พฤษภาคม พ.ศ. 2557

ตัวแปร Global

ตัวแปร global
     จะกำหนดไว้นอกกลุ่มคำสั่งหรือนอกฟังก์ชั่น ใช้งานได้ทั้งโปรแกรม มีค่าเริ่มเท่ากับ 0 ในกรณีที่ไม่ได้กำหนดค่าเริ่มต้น
    ตัวอย่างเช่น

int x,y;
void setup(){
    size( 500,500 );
    background( 255, 255, 255, 255 );
    frameRate(5);
    x = 0;
    y = 50;
}

void draw_circle(int x,int y){
    fill( 245,222,15 );
    ellipse( x,y,100,100 );
}

void draw(){
    draw_circle( x,y );
    x = x + 100;
  
    draw_circle(x,y);
    if ( x == 500 ){
        x = 0;
        y = y + 50;
     }
    if( y == 500 ){
        x = 0;
        y = 0;
    }
}

     จากตัวอย่าง ตัวแปร x,y จะถูกประกาศนอกฟังก์ชั่น ทำให้สองตัวแปรนี้สามารถใช้ได้ทั้งโปรแกรมหรือใช้ได้ทุกฟังก์ชั่นในโปรแกรม จากโปรแกรมจะได้ดังรูป

    จากรูปเมื่อรันโปรแกรมแล้วรูปวงกลมจะปรากฏขึ้นทีละสองรูปและขยับตำแหน่งไปเรื่อยๆ โดยขยับไปทาง x ทีละ 100 และเมื่อขยับไปจน x = 500 จะให้เลื่อนลงไปทาง y ทีละ 50 วงกลมสองรูปก็จะขยับไปทางขวาและทำไปเรื่อยๆ

    ถ้าไม่มีการประกาศและเรียกใช้ตัวแปรแบบ Global จะไม่มีการอัปเดตค่า


void setup(){
    size(500,500);
    background(255, 255, 255, 255);
    frameRate(5);
    int x = 0;
    int y = 50;
}

void draw_circle(int x,int y){
    fill(245,222,15);
    ellipse(x,y,100,100);
}

void draw(){   
    int x = 0;
    int y = 50;
draw_circle(x,y); x = x +100; draw_circle(x,y); if(x == 500){ x = 0; y = y +50; } if(y == 500){ x = 0; y = 0; } }
  จากตัวอย่างคำสั่ง เมื่อรันโปรแกรมแล้ว รูปวงกลมสองรูปจะเกิดขึ้นในตำแหน่ง x = 0 , y = 50 และจะเกิดซ้ำอยู่ตรงที่เดิมไปเรื่อยๆ เพราะค่า x,y ไม่ได้มีการอัปเดตตลอดเวลา ทำให้เวลาโปรแกรมเรียกใช้ฟังก์ชั่น void draw() ทุกครั้งค่า x,y ก็จะเท่าเดิมทำให้รูปอยู่ที่เดิมดังรูป



ไม่มีความคิดเห็น:

แสดงความคิดเห็น