วันอาทิตย์ที่ 28 กันยายน พ.ศ. 2557

bug report

BUG REPORT

what?
1.ใช้ switch ในการเปลี่ยนเฟรม
โดย กำหนด if(mousePressed){num=1;}
เมื่อ frame แรกมีค่า num = 0;
แล้ว เมื่อรันโปรมแกรมแล้วคลิ๊ก
frame ต่อไปที่แสดงไม่เป็นไปตามเงื่อนไขที่กำหนด

2.เมื่อนำ frame ทุก frame มารวมกันโดยใช้คำสั่ง switch
ภาพบางจุดของ frame 2 และ 3 ไม่ขยับตามคำสั่ง

why?
เนื่องจาก ฟังก์ชัน mousePressed เป็นฟังก์ชัน
ที่จะต้องมีการกด mouse ก่อน(กำหนดให้ mousePressed = true)
แต่เมื่อเรากดความเร็วในการรับค่าจากการออกแรงกดเพียง1ที
อาจมากกว่าที่เรากด mouse ทำให้ลำดับขั้นตอนของแต่ละเฟรมที่แสดงนั้น
เปลี่ยนไปอย่างรวดเร็ว จนบางครั้งดูไม่ทันว่าเฟรมนั้นๆถูกแสดงไม่หรือยัง

hot to fix?
เปลี่ยนจากการใช้เงื่อนไข
if(mousePressed){num=1;}
if(mousePressed){num=2;}
if(mousePressed){num=3;}
if(mousePressed){num=4;}
if(mousePressed){num=5;}

เป็น

void mousePressed() {
  switch(num) {
  case 0:
    num = 1;
    break;
  case 1:
    num = 2;
    break;
  case 2:
    num = 3;
    break;
  case 3:
    num = 4;
    break;
  case 4:
    num = 5;
    break;
  case 5:
    num = 0;
    break;
  }
}

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

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