จะกำหนดไว้นอกกลุ่มคำสั่งหรือนอกฟังก์ชั่น ใช้งานได้ทั้งโปรแกรม มีค่าเริ่มเท่ากับ 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 ก็จะเท่าเดิมทำให้รูปอยู่ที่เดิมดังรูป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น