Draw กับ Update

posted on 17 Dec 2007 23:37 by xnanoob  in Tutorials

สวัสดีค่า

วันนี้มาดูความแตกต่างระหว่าง method Draw กับ method Update นะค่ะ

  • method Draw จะเอาไว้แสดงผล
  • method Update จะเอาไว้ปรับค่าหรือต่างๆ

 

"แต่ก้อยังงงว่า ถ้าจะเอาการแสดงผลไปไว้ใน method Update ได้ไหม?"


ถ้าไงเดี๋ยวจะลองสลับดูนะเอาการแสดงผลไปไว้ใน method Update พิจารณาจากภาพที่ 1

เวลาเอาโค้ดแสดงรูปไปแสดงใน method Update จะเห็นว่าไม่มีอะไรเกิดขึ้น


เหตุผลมาจาก Method Draw ก้อโดน Call อยู่ตลอดเวลาเหมือนกันนะ 

(โดน call จนกระทั้งโปรแกรม Terminate)  ซึ่งใน Draw มีการ clear ค่าอยู่

พิจารณาจากใน method Draw มีโค้ดในการ Clear หน้าจออยู่

  •  graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

 

ภาพที่ 1 โค้ดแสดงผลใน method Update

ภายในรูปที่ 1 สี่เหลี่ยมด้านขวามือ ในจอสีฟ้า ไม่มีไรแสดงเลย



หลังจากนั้นให้ลอง Comment Code ใน method Draw

พิจาณาหลังจาก comment  แสดงผลในภาพที่ 2

  • //graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

 

ภาพที่ 2 แสดงผลการทำงานของโปรแกรม หลังจาก comment code

ปรากฎรูปน้องเต้ยขึ้นมานะค่ะ





แบบนี้แสดงว่า  เราสามารถแสดงผลใน method update ได้เหรอ ??

จะว่าได้ก้อได้นะ  แต่ถ้าโปรแกรมเกิดซับซ้อนขึ้นมา

ต้องมีการแสดงผลมากกว่า 1 อย่างหรืออื่นๆ

เช่นต้องการเลื่อนรูปภาพน้องเต้ย

 

ถ้าไงลองดูโค้ดในภาพที่ 3   ... พิจารณาโค้ดในภาพที่ 3 จะมีการปรับค่า vector ให้เปลี่ยนไป

คือเลื่อนรูปนั้นเอง...

ดังนั้นจะมีปัญหาในการ Clear ค่า    

Display ที่แสดงจะค้างอยู่ เนื่องจากไม่การการ Clear ค่าตำแหน่งรูปเก่า 

(Clear นี้อยู่ใน method draw ที่เรา comment ไปนั้นเอง)


พื้นที่สีขาว ข้างๆ น้องเต้ย คือปัญหา ที่เกิดขึ้น ไม่ได้ clear ค่า



สรุป ก้อคือ .. ถ้าอยากจะวาดไรก้อใส่ใน Draw น่าจะโอเคกว่า

                .. ถ้าอยากจะปรับค่าอะไร ก้อใส่ใน Update

(มั่ง)

จบแระค่ะ

บายค่ะ .... งุงิ งุงิ

เช่าห้องอบรม ห้องอบรม ห้องสัมนา Training Room

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

แบบนั้นหมายความว่า draw กับ update ก็เหมือนกันสิครับ แค่แยกส่วนตามความสะดวกและความเหมาะสมในการเรียกใช่มั้ยครับ

#1 By T!D on 2007-12-18 09:41

มั่ง แต่มันคนหละหน้าที่นะ

#2 By xnanoob on 2007-12-18 10:05

เหมือน draw จะสำหรับ graphics แต่ update เป็น process การคำนวณต่างๆภายในเกมสินะคะ แยกไว้งี้จะได้จัดการง่ายๆด้วย

#3 By = HIMA = on 2007-12-18 23:08