Scratch 101 การเขียนโปรแกรมสาํ หรับเดก็ วาฬตวั ใหญ่ยงั สามารถแสดงแอนิเมชนั่ ไดอ้ กี หลายอารมณ์ (เฉย โกธร) ทาํ ใหม้ หี ลายชุดมาก เพอ่ื แสดงในแต่ละอารมณ์ ดงั นนั้ การตงั้ ชอ่ื ชดุ ใหส้ อดคลอ้ งกบั อารมณ์ จะทาํ ใหง้ า่ ยต่อการ นํามาใชท้ าํ แอนิเมชนั่ เมอ่ื วาฬตวั ใหญ่ไดร้ บั สาร story 3 จะพดู ตอบวาฬตวั เลก็ แลว้ เปลย่ี นชุดเป็น whale basic จากนนั้ แสดงแอนิเมชนั่ โกธร โดยการเปลย่ี นชุดระหวา่ ง whale mad1 กบั whale mad2 กบั whale mad3 สลบั กบั การคอย 0.2 วนิ าที ทงั้ หมด 3 ครงั้ ภายในบลอ็ กควบคุมทาํ ซ้าํ (repeat) จากนนั้ เปลย่ี นชุดเป็น whale basic อกี ครงั้ แลว้ พดู ต่อโดยนําขอ้ มลู ใน thing2 มารวมในคาํ พดู ดว้ ย ก่อนสง่ สาร story 4 เพอ่ื ใหว้ าฬตวั เลก็ ไดพ้ ดู ต่อ
102 kidsangsan.com สมชาย พฒั นาชวนชม เมอ่ื วาฬตวั เลก็ ไดร้ บั สาร story 4 กจ็ ะพดู ตอบวาฬตวั ใหญ่หน่ึงประโยค แลว้ แสดงแอนิเมชนั่ ดว้ ย วธิ หี มนุ ตวั มนั เอง โดยใชบ้ ลอ็ กเลย้ี ว (turn) ทลี ะ 36 องศา สลบั กบั การคอย 0.01 วนิ าที ทาํ ซ้าํ 10 รอบภายในบลอ็ กควบคมุ ทาํ ซ้าํ (repeat) กจ็ ะหมนุ ครบ 360 องศา 1 รอบพอดี จากนนั้ พดู ต่อโดยนําขอ้ มลู ใน name มารวมในคาํ พดู ดว้ ย โดยใชบ้ ลอ็ กเช่อื มคาํ (join) ซอ้ นกนั ก่อนจะพดู ปิดประโยคสดุ ทา้ ยของการเลา่ เรอ่ื ง
Scratch 103 การเขียนโปรแกรมสาํ หรับเดก็ การส่งและรบั สาร จะทาํ อยา่ งไรใหต้ วั ละครหรอื เวที สอ่ื สารโตต้ อบกนั รจู้ งั หวะเวลาทต่ี วั เองจะตอ้ งพดู ตอ้ งแสดง ใน Scratch การสง่ ต่อการทาํ งานระหวา่ งตวั ละคร ใชว้ ธิ กี ารสง่ สารออกไป โดยอาศยั ชอ่ื ของสารท่ี แตกต่างกนั เป็นตวั สง่ ไมใ้ หร้ ะหวา่ งกนั เมอ่ื ตวั ละครหรอื เวทไี ดร้ บั สารทส่ี นใจ กจ็ ะรวู้ า่ ไดเ้ วลาท่ี จะตอ้ งเรม่ิ ทาํ งานต่อแลว้ การสง่ สารจะใชบ้ ลอ็ กสง่ กระจาย (broadcast) พรอ้ มกบั เลอื กสารทม่ี อี ยใู่ นรายการ ถา้ ตอ้ งการ สรา้ งสารใหม่ ทาํ ไดง้ า่ ยๆ โดยคลกิ สามเหลย่ี มชล้ี งในบลอ็ กสง่ กระจาย คลกิ new... แลว้ ใสช่ อ่ี สารลงไป เชน่ ตอ้ งการสรา้ งสารใหมช่ อ่ื story 5 ตวั ละครทุกตวั รวมทงั้ เวทจี ะไดร้ บั สารทส่ี ง่ ออกมาทกุ สาร ไมว่ า่ ใครจะเป็นคนสง่ แต่เลอื ก ตอบสนองกบั สารทต่ี วั เองสนใจเทา่ นนั้ ดว้ ยการใชบ้ ลอ็ ก เรม่ิ ตน้ สครปิ ตใ์ หม่ โดยสามารถเลอื กสารทส่ี นใจไดจ้ ากรายการ และเมอ่ื ตวั ละครหรอื เวทไี ดร้ บั สารทส่ี นใจ กจ็ ะ ตอบสนองดว้ ยการเรม่ิ ทาํ งานในสครปิ ตน์ นั้
104 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องเวที ฉากเวทใี นโปรเจกน้ีน่าสนใจ เพราะมกี ารใสล่ กู เลน่ ทงั้ ภาพและเสยี ง โดยใสเ่ อฟเฟคใหภ้ าพฉาก หลงั ของเวที ดว้ ยบลอ็ กตงั้ คา่ เอฟเฟค (set effect to) ซง่ึ มเี อฟเฟคหลายแบบ แต่ในกรณนี ้ีใชค่ า่ ความสวา่ ง (brightness) เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว เอฟเฟคทกุ อยา่ งจะถูกกาํ จดั ไปกอ่ น โดยบลอ็ กลา้ งเอฟเฟค (clear graphic effects) เพอ่ื ตงั้ คา่ เอฟเฟคทุกอยา่ งไปทค่ี า่ เรม่ิ ตน้ (คา่ เอฟเฟคมคี า่ ระหวา่ ง -100 ถงึ 100 โดยท่ี คา่ 0 คอื คา่ ดงั้ เดมิ กอ่ นใสเ่ อฟเฟค) จากนนั้ ตงั้ คา่ ความสวา่ งท่ี -60 (set brightness effect to - 60) ซง่ึ จะทาํ ใหภ้ าพฉากหลงั มดื ลง เมอ่ื ไดร้ บั สาร start story ใชบ้ ลอ็ กเปลย่ี นคา่ เอฟเฟคความสวา่ ง (change effect by) ในบลอ็ ก ควบคุมทาํ ซ้าํ (repeat) เพอ่ื เปลย่ี นคา่ ความสวา่ งทล่ี ะ 6 ทาํ ซ้าํ 10 ครงั้ ใหไ้ ดค้ า่ ความสวา่ งรวม 60 วธิ นี ้ีจะทาํ ใหภ้ าพฉากหลงั คอ่ ยๆ สวา่ งขน้ึ จนกลบั ไปยงั ภาพฉากหลงั ดงั้ เดมิ ในขณะเดยี วกนั เมอ่ื ไดร้ บั สาร start story กเ็ ปิดเสยี งประกอบ madlibs ขน้ึ มา โดยใชบ้ ลอ็ กเลน่ เสยี งจนจบ (play sound madlibs until done)
Scratch 105 การเขียนโปรแกรมสาํ หรับเดก็ การต่อยอดโปรเจก MadLibs • ฝึกการใชต้ วั แปรลสิ ต์ เกบ็ ขอ้ มลู การถามตอบระหวา่ งผดู้ าํ เนินเรอ่ื งกบั ผใู้ ช้ แทนการเกบ็ ขอ้ มลู แยกจากกนั ในหลายๆ ตวั แปร • นอกจากการใชต้ วั หนงั สอื ในการเล่าเรอ่ื งแลว้ Scratch สามารถอดั เสยี งผา่ นไมโครโฟน แลว้ นํามาเปิดได้ ดงั นนั้ การใชเ้ สยี งพดู ในการเลา่ เรอ่ื งเพม่ิ เตมิ จะทาํ ใหเ้ รอ่ื งน่าสนใจ มากขน้ึ • เพอ่ื ใชส้ อ่ื ท่ี Scratch มใี หอ้ กี อยา่ ง คอื การถ่ายภาพผใู้ ชจ้ ากกลอ้ ง การเลา่ เรอ่ื งน่าจะ สนุกมากยงิ่ ขน้ึ ถา้ บอกใหผ้ ใู้ ชถ้ ่ายรปู ตวั เองจากกลอ้ งในคอมพวิ เตอร์ จากนนั้ เล่าเรอ่ื ง ผกู กบั รปู สครปิ ตด์ า้ นลา่ งน้ี เป็นตวั อยา่ งสครปิ ตถ์ ามผใู้ ชใ้ หถ้ ่ายรปู ของตวั เอง โดยเรม่ิ จากซอ่ น ตวั เองก่อน (hide) เมอ่ื ถกู ถามใหถ้ ่ายรปู ใหค้ ลกิ ทแ่ี ทป Costumes คลกิ ปมุ่ Camera คลกิ ปมุ่ กลอ่ งถ่ายรปู เพอ่ื ถ่ายรปู คลกิ ปมุ่ Done จบการถ่ายรปู จากนนั้ คลกิ ปมุ่ เครอ่ื งหมายถกู บนเวที เพอ่ื รนั สครปิ ตต์ ่อ รปู ทพ่ี ง่ึ ถ่ายไปจะเป็นชุดตวั ละครปจั จบุ นั โดย อตั โนมตั ิ โดยปกตริ ปู ทถ่ี ่ายจะมขี นาด 320 x 240 อาจใหญ่เกนิ ไป ใหใ้ ชบ้ ลอ็ กกาํ หนด ขนาดใหเ้ ลก็ ลงได้ (set size to 30 %) จากนนั้ จงึ แสดงรปู ออกมา (show)
106 kidsangsan.com สมชาย พฒั นาชวนชม โปรเจก SimpleCircuit โปรเจก SimpleCircuit เป็นการจาํ ลอง (simulation) แผงวงจรไฟฟ้าแบบงา่ ยๆ เรม่ิ ดว้ ยการเปิด โปรเจก SimpleCircuit โดยเลอื ก Open ในเมนู File จากนนั้ คลกิ ปมุ่ Examples เลอื กโฟลเ์ ดอร์ Simulations เลอื กโปรเจก SimpleCircuit ภาพรวมของโปรเจก SimpleCircuit เป็นการจาํ ลองแผงวงจรอนุกรมอยา่ งงา่ ย โดยต่อหลอดไฟ แบตเตอรี และสวติ ช์ เขา้ ดว้ ยกนั ถา้ แผงวงจรต่อโดยสมบรณู ์แลว้ เมอ่ื เอาเมาสว์ างเหนือสวติ ช์ หลอดไฟกจ็ ะสวา่ งขน้ึ นอกจากภาพของอปุ กรณ์ต่างๆ การจาํ ลองน้ียงั สามารถแสดงรปู สญั ลกั ษณ์ของลายวงจรไฟฟ้า และอปุ กรณ์แต่ละตวั
Scratch 107 การเขียนโปรแกรมสาํ หรับเดก็ ตวั ละครและเวที SimpleCircuit มตี วั ละครทเ่ี ป็นอปุ กรณ์เพยี ง 3 ตวั คอื สวติ ช์ แบตเตอรี หลอดไฟ พรอ้ มกบั คาํ สงั่ บอกวธิ ใี ชง้ าน บนฉากหลงั เวทที เ่ี ป็นแผงวงจรไฟฟ้าแบบอนุกรม สคริปตต์ วั ละครและเวที สคริปตข์ องใบคาํ สงั่ ใบคาํ สงั่ แสดงวธิ กี ารใชด้ งั น้ี คลกิ ธงเขยี วเรม่ิ ตน้ การจาํ ลอง ลากอปุ กรณ์แต่ละตวั เชอ่ื มกบั แผงวงจร เปิดหลอดไฟโดยใชเ้ มาสว์ างบนสวติ ช์ กด space bar เพอ่ื ดแู บบสญั ลกั ษณ์ของ แผงวงจร สครปิ ตข์ องใบคาํ สงั่ เรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว กจ็ ะแสดงวธิ ใี ชง้ านกอ่ นเรมิ่ การจาํ ลอง จากนนั้ วธิ ใี ชง้ านจะหายไป โดยใชเ้ อฟเฟคลอ่ งหน (set ghost effect to 100)
108 kidsangsan.com สมชาย พฒั นาชวนชม วิธีใช้งาน เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว อุปกรณ์ทงั้ หมดจะมาอยตู่ รงกลาง เพอ่ื ใหผ้ ใู้ ชน้ ําอปุ กรณ์ไปวางในแผงวงจร เอง และเมอ่ื กด space bar จะเหน็ สญั ลกั ษณ์สดี าํ ของลายวงจรและอปุ กรณ์ ทงั้ บนเวทแี ละใน รายการตวั ละคร การวางอุปกรณ์ไมข่ น้ึ กบั ตําแหน่งเพราะเป็นวงจรอนุกรมอยา่ งงา่ ย ขอเพยี งใหอ้ ุปกรณ์แตะขวั้ แผงวงจรเป็นใชไ้ ด้ แต่เพอ่ื ความสวยงามการวางใหข้ วั้ ของอุปกรณ์กบั แผงวงจรตรงกนั จะดมี าก รปู ถดั ไปแสดง (1) การวางทถ่ี ูกตอ้ งสวยงาม (2) เมอ่ื เอาเมาสช์ ท้ี ส่ี วติ ช์ หลอดไฟจะสวา่ งทนั ที (3) เมอ่ื กด space bar จะเหน็ สญั ลกั ษณ์ทางไฟฟ้าสดี าํ
Scratch 109 การเขียนโปรแกรมสาํ หรับเดก็ แต่ถา้ วางอปุ กรณ์แคใ่ หส้ ว่ นหน่ึงสว่ นใดแตะขวั้ แผงวงจรแลว้ การจาํ ลองยงั คงถกู ตอ้ งอยู่ แต่ขดั ความรสู้ กึ ไปหน่อย ทงั้ น้ีเกดิ จากการเขยี นโปรแกรม รปู ถดั ไปแสดงใหเ้ หน็ วา่ (1) แมข้ วั้ จะถูก วางไมต่ รงตําแหน่ง (2) หลอดไฟกย็ งั ทาํ งานได้ (3) เมอ่ื กด space bar จะเหน็ สญั ลกั ษณ์ทาง ไฟฟ้าทอ่ี ยผู่ ดิ ตําแหน่ง
110 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องเวที ฉากหลงั เวทเี ป็นแผงวงจรอนุกรมอยา่ งงา่ ย มขี วั้ ต่ออุปกรณ์ 3 แหง่ ตวั ขวั้ มสี เี หลอื งกบั สฟี ้าเพอ่ื ใชใ้ นการเชอ่ื มต่อกบั อุปกรณ์ แผงวงจรมี 2 รปู แบบ แบบปกตทิ ม่ี สี สี นั สวยงาม กบั แบบ สญั ลกั ษณ์ทางไฟฟ้าทเ่ี ป็นสดี าํ สครปิ ตข์ องแผงวงจรเรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว งานหลกั ของแผงวงจรทาํ แคส่ ลบั รปู แบบ เมอ่ื ผใู้ ช้ กดคยี ์ space bar โดยใชบ้ ลอ็ กควบคุมถา้ มฉิ ะนนั้ (if-else) ในการกาํ หนดการแสดงรปู แบบ โดย ตรวจสอบวา่ ผใู้ ชก้ ด space bar หรอื ยงั (key space pressed?) ถา้ ใช่ ใหแ้ สดงภาพฉากหลงั เป็นรปู แบบสญั ลกั ษณ์ (Symbols) มฉิ ะนนั้ (else) แสดงรปู แบบสสี นั ปกติ (Blank Circuit) แต่เน่ืองจากผใู้ ชจ้ ะกดคยี ์ space bar เมอ่ื ไหรกไ็ ด้ ดงั นนั้ การสลบั รปู แบบทก่ี ลา่ วมา ตอ้ งอยใู่ น บลอ็ กควบคุมตลอดเวลา (forever) เพอ่ื ตรวจสอบการกดคยี ต์ ลอดเวลา
Scratch 111 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องแบตเตอรี แบตเตอรมี สี องชุด ชุดแรกเป็นรปู แบตเตอรเี หมอื นจรงิ ชุดทส่ี องเป็นรปู สญั ลกั ษณ์ทางไฟฟ้า ของแบตเตอรี สงั เกตแมก่ ุญแจทต่ี ่อจากช่อื Battery จะเปิดอยู่ หมายความวา่ แบตเตอรสี ามารถ ใชเ้ มาสล์ ากไปมาไดข้ ณะโปรแกรมทาํ งานในโหมดนําเสนอ หรอื บนเวบ็ ไซตข์ อง Scratch
112 kidsangsan.com สมชาย พฒั นาชวนชม สครปิ ตแ์ รกของแบตเตอรี คลา้ ยกบั แผงวงจร คอื ทกุ ครงั้ ทผ่ี ใู้ ชก้ ด space bar ใหแ้ สดงรปู สญั ลกั ษณ์ของแบตเตอรี มฉิ ะนนั้ แสดงรปู จรงิ ของแบตเตอรี โดยใชบ้ ลอ็ กควบคมุ ถา้ มฉิ ะนนั้ (if- else) ในการกาํ หนดการแสดงรปู แบบ และอยภู่ ายในบลอ็ กควบคุมวนซ้าํ ตลอดเวลา (forever) เพอ่ื รบั การตรวจสอบตลอดเวลา สครปิ ตท์ ส่ี องของแบตเตอรี เป็นการตรวจสอบวา่ แบตเตอรตี ่อกบั แผงวงจรแลว้ หรอื ยงั สครปิ ต์ เรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ กาํ หนดขนาดเรม่ิ ตน้ ของแบตเตอรเี ทา่ ของจรงิ ก่อน ดว้ ยบลอ็ ก ตงั้ คา่ ขนาด (set size to 100%) ทงั้ น้ีเพราะขนาดมผี ลต่อการเช่อื มเขา้ แผงวงจร จากนนั้ แบตเตอรจี ะมาอยตู่ รงกลางแผงวงจร (go to x:-4 y:-35) เพอ่ื ใหผ้ ใู้ ชน้ ํามนั ไปวางใน แผงวงจรเอง วธิ กี ารหาตาํ แหน่งบนเวทเี พอ่ื ใชใ้ นสครปิ ตท์ าํ ไดโ้ ดยลากอุปกรณ์ เชน่ แบตเตอรี ไปยงั ตาํ แหน่งทต่ี อ้ งการกอ่ น จากนนั้ สงั เกตตาํ แหน่ง x กบั y ในบรเิ วณขอ้ มลู ของแบตเตอรี เอา คา่ x กบั y ทป่ี รากฏ ไปใชใ้ นบลอ็ กไปยงั (go to x: y:) ถดั ไปเป็นการตรวจสอบการเชอ่ื มต่อแบตเตอรกี บั แผงวงจร ตลอดการใชง้ าน ดงั นนั้ การ ตรวจสอบจะอยภู่ ายในบลอ็ กควบคมุ ตลอดเวลา (forever) ในการตรวจสอบนนั้ ใชบ้ ลอ็ กถา้ มฉิ ะนนั้ (if-else) โดยตรวจดวู า่ แบตเตอรสี มั ผสั กบั สเี หลอื งและสฟี ้า (ซง่ึ เป็นสขี องขวั้ ใน แผงวงจร) หรอื ยงั ถา้ ใช่ ใหต้ งั้ คา่ ตวั แปร battconnected เทา่ กบั 1 (ต่อกบั แผงวงจรแลว้ ) ถา้ ยงั ใหต้ งั้ คา่ เป็น 0 (ยงั ไมไ่ ดต้ ่อกบั แผงวงจร)
Scratch 113 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องหลอดไฟ หลอดไฟมสี ามชดุ ชุดแรกเป็นรปู หลอดไฟตดิ ชดุ ทส่ี องเป็นรปู หลอดไฟดบั รปู ทส่ี ามเป็นรปู สญั ลกั ษณ์ทางไฟฟ้าของหลอดไฟ สงั เกตแมก่ ุญแจทอ่ี ยถู ดั จากช่อื Bulb จะเปิดอยู่ หมายความวา่ หลอดไฟสามารถใชเ้ มาสล์ ากไป มาไดข้ ณะโปรแกรมทาํ งานในโหมดนําเสนอ หรอื บนเวบ็ ไซตข์ อง Scratch
114 kidsangsan.com สมชาย พฒั นาชวนชม สครปิ ตแ์ รกของหลอดไฟ เป็นการตรวจสอบวา่ หลอดไฟต่อกบั แผงวงจรแลว้ หรอื ยงั คลา้ ยๆ กบั แบตเตอรี สครปิ ตเ์ รม่ิ ตน้ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ กาํ หนดขนาดเรมิ่ ตน้ ของหลอดไฟเทา่ ของ จรงิ ก่อน ดว้ ยบลอ็ กตงั้ คา่ ขนาด (set size to 100%) ทงั้ น้ีเพราะขนาดมผี ลต่อการเชอ่ื มเขา้ แผงวงจร ถดั ไปเป็นการตรวจสอบการเช่อื มต่อหลอดไฟกบั แผงวงจร ภายใตก้ ารควบคุมของบลอ็ ก ตลอดเวลา (forever) การตรวจสอบจะใชบ้ ลอ็ กถา้ มฉิ ะนนั้ (if-else) โดยตรวจดวู า่ หลอดไฟ สมั ผสั กบั สเี หลอื งและสฟี ้า (ซง่ึ เป็นสขี องขวั้ ในแผงวงจร) หรอื ยงั ถา้ ใช่ ใหต้ งั้ คา่ ตวั แปร balbconnected เทา่ กบั 1 (ต่อกบั แผงวงจรแลว้ ) ถา้ ยงั ใหต้ งั้ คา่ เป็น 0 (ยงั ไมไ่ ดต้ ่อกบั แผงวงจร)
Scratch 115 การเขียนโปรแกรมสาํ หรับเดก็ สครปิ ตท์ ส่ี อง จะคอยตรวจสอบการกด space bar และการเปิดสวติ ชจ์ ากผใู้ ช้ โดยเรม่ิ สครปิ ต์ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ กาํ หนดขนาดเรมิ่ ตน้ ของหลอดไฟเทา่ ของจรงิ ก่อน ดว้ ยบลอ็ กตงั้ คา่ ขนาด (set size to 100%) จากนนั้ หลอดไฟจะมาอยตู่ รงกลางแผงวงจร (go to x:-111 y:-54) เพอ่ื ใหผ้ ใู้ ชน้ ํามนั ไปวางในแผงวงจรเอง ถดั ไปเป็นการตรวจสอบการกดคยี ์ space bar และการเปิดสวติ ชจ์ ากผใู้ ช้ ซง่ึ เกดิ เมอ่ื ใดกไ็ ด้ ดงั นนั้ ตอ้ งตรวจสอบภายในบลอ็ กควบคมุ ตลอดเวลา (forever) การตรวจสอบจะทาํ 2 ชนั้ คอื ตรวจสอบการกดคยี ก์ อ่ น (key space pressed?) ในบลอ็ กควบคุมถา้ มฉิ ะนนั้ (if-else) ถา้ คยี ถ์ ูก กดจะเปลย่ี นชุด เป็นสญั ลกั ษณ์ทางไฟฟ้าของหลอดไฟ ถา้ ไมไ่ ดก้ ดคยี ์ (else) จะตรวจสอบอกี ครงั้ วา่ หลอดไฟตดิ หรอื ไม่ โดยทห่ี ลอดไฟจะตดิ ได้ กต็ ่อเมอ่ื ทกุ อปุ กรณ์เช่อื มต่อแผงวงจรและ สวติ ชถ์ ูกเปิด
116 kidsangsan.com สมชาย พฒั นาชวนชม การตรวจสอบการเชอ่ื มต่อของอุปกรณ์ ทาํ ไดด้ ว้ ยการตรวจสอบตรรกะของตวั แปรทเ่ี กบ็ คา่ การ เช่อื มต่อ (battconnected, Switchconnected, bulbconnected) โดยใชโ้ อเปอรเ์ รชนั่ เทา่ กบั ถา้ เทา่ กบั 1 หมายถงึ เชอ่ื มต่อแลว้ นนั้ กค็ อื ตรวจสอบวา่ (battconnected=1) (Switchconnected=1) (bulbconnected=1) หรอื ไม่ สวติ ชจ์ ะเปิดได้ มนั ตอ้ งถูกเชอ่ื มต่อกอ่ น ดงั นนั้ ตรวจสอบแคส่ วติ ชเ์ ปิดอยา่ งเดยี ว (Switch=1) ก็ พอ การเช่อื มต่อของสวติ ชก์ ไ็ มจ่ าํ เป็นตอ้ งตรวจสอบกไ็ ด้ ดงั นนั้ ถา้ ทกุ อุปกรณ์เชอ่ื มต่อแผงวงจรและสวติ ชถ์ กู เปิด ((battconnected=1) and ((Switch=1) and (bulbconnected=1))) หลอดไฟจะตดิ โดยการเปลย่ี นชุด (switch to costume bulbon) มฉิ ะนนั้ แลว้ หลอดไฟจะดบั (switch to costume bulboff) การตรวจสอบเงอ่ื นไขหลายๆ เงอ่ื นไขพรอ้ มกนั (battconnected=1, Switch=1, bulbconnected=1) ทาํ ไดโ้ ดยใชโ้ อเปอรเ์ รชนั่ ตรรกะและ (and) ชว่ ยในการ ประมวณผล วา่ สดุ ทา้ ยแลว้ เงอ่ื นไขไดจ้ รงิ หรอื เทจ็ โดยทท่ี ุกเงอ่ื นไขตอ้ งเป็นจรงิ ทงั้ หมดจงึ จะให้ ตรรกะสดุ ทา้ ยเป็นจรงิ
Scratch 117 การเขียนโปรแกรมสาํ หรับเดก็ การประมวณผลทางตรรกะ การประมวณผลทางตรรกะใน Scratch ทาํ ได้ 3 แบบ คอื ใช้ ตรรกะและ (and) ตรรกะหรอื (or) ตรรกะไม่ (not) คาํ ตอบหาไดจ้ ากตารางความจรงิ (Truth table) ในแต่ละแบบดงั น้ี ตารางความจรงิ ของเงอ่ื นไข A กบั เงอ่ื นไข B เมอ่ื ผา่ นโอเปอรเ์ รเตอรต์ รรกะแลว้ จะไดผ้ ลลพั ธ์ C เป็นตารางความเป็นไปไดท้ งั้ หมดเมอ่ื เงอ่ื นไขของ A กบั B เป็นจรงิ (T) หรอื เป็นเทจ็ (F) ตรรกะและ (and) จะใหผ้ ลลพั ธเ์ ป็นจรงิ ไดก้ รณเี ดยี ว คอื เงอ่ื นไข A และ B ตอั งเป็นจรงิ ทงั้ คู่ กรณอี น่ื ๆ เป็นเทจ็ หมด จากตารางความจรงิ ของตรรกะและ โอเปอรเ์ รเตอรต์ รรกะและ จงึ ถกู ใชใ้ นสครปิ ตห์ ลอดไฟ เพราะตอ้ งการใหท้ ุกเงอ่ื นไขเป็นจรงิ แตก่ ารตรวจสอบเงอ่ื นไขหลายๆ เงอ่ื นไข ตอ้ งทาํ เป็นคๆู่ เชน่ ในกรณสี ครปิ ตห์ ลอดไฟ เชค็ สวติ ชก์ บั หลอดไฟก่อน ผลลพั ธท์ ไ่ี ดน้ ําไปเชค็ กบั แบตเตอรอี กี ที กจ็ ะไดค้ าํ ตอบสดุ ทา้ ย
118 kidsangsan.com สมชาย พฒั นาชวนชม ตรรกะหรอื (or) จะใหผ้ ลลพั ธเ์ ป็นเทจ็ ไดก้ รณเี ดยี ว คอื เงอ่ื นไข A และ B ตอั งเป็นเทจ็ ทงั้ คู่ กรณี อ่นื ๆ ใหค้ าํ ตอบเป็นจรงิ หมด ตรรกะไม่ (not) จะใหผ้ ลลพั ธส์ ลบั กบั ขอ้ เทจ็ จรงิ ทเ่ี ป็นอยู่ คอื จากจรงิ เปลย่ี นเป็นเทจ็ หรอื จาก เทจ็ เปลย่ี นเป็นจรงิ
Scratch 119 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องสวิตช์ สวติ ชม์ สี ามชดุ ชดุ แรกเป็นรปู สวติ ชป์ ิด ชุดทส่ี องเป็นรปู สวติ ชเ์ ปิด รปู ทส่ี ามเป็นรปู สญั ลกั ษณ์ ทางไฟฟ้าของสวติ ช์ สงั เกตแมก่ ุญแจทอ่ี ยถู ดั จากช่อื Switch จะเปิดอยู่ หมายความวา่ สวติ ชส์ ามารถใชเ้ มาสล์ ากไป มาได้ ขณะโปรแกรมทาํ งานในโหมดนําเสนอ หรอื บนเวบ็ ไซตข์ อง Scratch
120 kidsangsan.com สมชาย พฒั นาชวนชม สครปิ ตข์ องสวติ ชด์ เู หมอื นจะซบั ซอ้ น เพราะทาํ ทกุ อยา่ งภายในสครปิ ตเ์ ดยี ว ทาํ ใหส้ ครปิ ตย์ าว แต่จรงิ ๆ แลว้ ไมซ่ บั ซอ้ น โดยเฉพาะเมอ่ื ดสู ครปิ ตข์ องอปุ กรณ์อ่นื ๆ มาแลว้ สครปิ ตข์ องสวติ ชเ์ รมิ่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ กาํ หนดขนาดเรม่ิ ตน้ ของสวติ ชเ์ ทา่ ของจรงิ กอ่ น ดว้ ยบลอ็ กตงั้ คา่ ขนาด (set size to 100%) ทงั้ น้ีเพราะขนาดมผี ลต่อการเชอ่ื มเขา้ แผงวงจร จากนนั้ สวติ ชจ์ ะมาอยตู่ รงกลางแผงวงจร (go to x:133 y:-18) เพอ่ื ใหผ้ ใู้ ชน้ ํามนั ไปวางใน แผงวงจรเอง ถดั ไปเป็นการตรวจสอบการกดคยี ์ space bar การเช่อื มต่อแผงวงจร และการเปิดสวติ ชจ์ ากผใู้ ช้ ซง่ึ เกดิ เมอ่ื ใดกไ็ ด้ ดงั นนั้ ตอ้ งตรวจสอบภายในบลอ็ กควบคมุ ตลอดเวลา (forever)
Scratch 121 การเขียนโปรแกรมสาํ หรับเดก็ การตรวจสอบจะทาํ 3 ชนั้ คอื ตรวจสอบการกดคยี ก์ อ่ น (key space pressed?) ในบลอ็ ก ควบคมุ ถา้ มฉิ ะนนั้ (if-else) ถา้ คยี ถ์ ูกกดจะเปลย่ี นชดุ เป็นสญั ลกั ษณ์ทางไฟฟ้าของสวติ ช์ ถา้ ไมไ่ ดก้ ดคยี ์ (else) จะตรวจสอบชนั้ ทส่ี อง ในบลอ็ กถา้ มฉิ ะนนั้ (if-else) อกี ครงั้ วา่ สวติ ช์ เชอ่ื มต่อแผงวงจรหรอื ไม่ โดยตรวจดวู า่ หลอดไฟสมั ผสั กบั สเี หลอื งและสฟี ้า (ซง่ึ เป็นสขี องขวั้ ใน แผงวงจร) หรอื ยงั ถา้ ใช่ ใหต้ งั้ คา่ ตวั แปร Switchconnected เทา่ กบั 1 หมายความวา่ สวทิ ชต์ ่อกบั แผงวงจรแลว้ ทาํ ใหผ้ ใู้ ชส้ ามารถเปิดสวทิ ชไ์ ด้ ดงั นนั้ โปรแกรมสามารถตรวจสอบการเปิดสวทิ ชต์ ่อได้ โดย ตรวจสอบชนั้ ทส่ี าม ในบลอ็ กถา้ มฉิ ะนนั้ (if-else) อกี ครงั้ วา่ สวติ ชเ์ ปิดหรอื ยงั (touching mouse-pointer?) ถา้ ผใู้ ชน้ ําเมาสม์ าสมั ผสั ทส่ี วติ ช์ กจ็ ะเปลย่ี นชดุ เป็น Switchon แลว้ ตงั้ คา่ ตวั แปรสวติ ชเ์ ทา่ กบั 1 (switch = 1) มฉิ ะนนั้ เปล่ยื นชดุ เป็น Switchoff แลว้ ตงั้ คา่ ตวั แปรสวติ ช์ เทา่ กบั 0 (switch = 0) ถา้ สวติ ชย์ งั ไมไ่ ดเ้ ชอ่ื มต่อแผงวงจร (else ของบลอ็ กถา้ มฉิ ะนนั้ ในชนั้ ท่ี 2) ใหต้ งั้ คา่ ตวั แปร Switchconnected เทา่ กบั 0 จากนนั้ เปล่ยื นชุดเป็น Switchoff แลว้ ตงั้ คา่ ตวั แปรสวติ ชเ์ ทา่ กบั 0 (switch = 0)
122 kidsangsan.com สมชาย พฒั นาชวนชม การทาํ งานแบบมีเง่ือนไข การควบคมุ ลาํ ดบั การทาํ งานทข่ี น้ึ กบั เงอ่ื นไขมหี ลายแบบ คอื จะทาํ งานถา้ เงอ่ื นไขเป็นจรงิ เทา่ นนั้ (บลอ็ กถา้ if) ทาํ งานไดท้ งั้ กรณที เ่ี งอ่ื นไขเป็นจรงิ หรอื เป็นเทจ็ (บลอ็ กถา้ มฉิ ะนนั้ if-else) และ สดุ ทา้ ยคอื การนําบลอ็ กทงั้ สองแบบมาซอ้ นกนั (nested if) โดยนําบลอ็ กหน่ึงไปซอ้ นในอกี บลอ็ ก หน่ึง ซง่ึ จะซอ้ นกนั กช่ี นั้ กไ็ ด้ แต่มากไปกอ็ าจทาํ ใหส้ ครปิ ตด์ สู บั สนได้ และสามารถซอ้ นในสว่ นท่ี เงอ่ื นไขเป็นจรงิ (ใต้ if) กไ็ ด้ หรอื ในสว่ นทเ่ี งอ่ื นไขเป็นเทจ็ (ใต้ else) กไ็ ด้ ในสครปิ ตข์ อง Bulb และ Switch จะเหน็ การซอ้ นกนั ของบลอ็ กเงอ่ื นไขหลายรปู แบบ ลาํ ดบั การ ทาํ งานในแบบแรก (Bulb) เรมิ่ ตน้ ดว้ ยการตรวจสอบเงอ่ื นไขแรกกอ่ น (A) ถา้ เงอ่ื นไข A เป็นจรงิ ทาํ งานในสว่ น (1) ถา้ เงอ่ื นไข A เป็นเทจ็ (else) ตรวจสอบเงอ่ื นไขทส่ี อง (B) ถา้ เงอ่ื นไข B เป็น จรงิ ทาํ งานในสว่ น (2) ถา้ เงอ่ื นไข B เป็นเทจ็ (else) ทาํ งานในสว่ น (3) ลาํ ดบั การทาํ งานในแบบทส่ี อง (Switch) น่าทา้ ทายกวา่ แบบแรก ลองฝึกทาํ ดจู ะรวู้ า่ ไมย่ ากเลย
Scratch 123 การเขียนโปรแกรมสาํ หรับเดก็ การต่อยอดโปรเจก SimpleCircuit • แกไ้ ขการต่อวงจรใหถ้ กู ตอ้ ง โดยใหข้ วั้ ไฟฟ้าต่อกนั เพยี งอยา่ งเดยี ว • เมอ่ื สวติ ชเ์ ปิด แบตเตอรจี ะถกู ใชง้ าน พลงั งานจะลดลงตามเวลาในการใชง้ าน ดงั นนั้ เพมิ่ ตวั แปรพลงั งานของแบตเตอรี แลว้ จบั เวลาการใชง้ านของแบตเตอรที กุ ครงั้ ท่ี หลอดไฟตดิ เมอ่ื แบตเตอรหี มด หลอดไฟจะตอ้ งดบั • เมอ่ื พลงั งานของแบตเตอรลี ดลง เสยี งสวา่ งกจ็ ะลดลง เพมิ่ แอนิเมชนั ใหก้ บั หลอดไฟ แสดงการลดแสงลงตามพลงั งานทเ่ี หลอื ของแบตเตอรี
124 kidsangsan.com สมชาย พฒั นาชวนชม โปรเจก GardenSecret โปรเจก GardenSecret เป็นการแสดงศลิ ปะแบบโตต้ อบ (Interactive Art) เรม่ิ ตน้ ดว้ ยการเปิด โปรเจก โดยเลอื ก Open ในเมนู File จากนนั้ คลกิ ปมุ่ Examples เลอื กโฟลเ์ ดอร์ Interactive Art เลอื กโปรเจก GardenSecret ภาพรวมของโปรเจก โปรเจกน้ีเป็นการสรา้ งสวนดอกไม้ ทผ่ี เี สอ้ื เป็นผนู้ ําดอกไมม้ าทส่ี วนแหง่ น้ี โดยอาศยั การ ออกแบบจากผใู้ ช้ เป็นผชู้ น้ี ําตําแหน่งการปลกู ดอกไม้ ดว้ ยการใชเ้ มาสค์ ลกิ เพอ่ื ระบุตาํ แหน่ง ผเี สอ้ื สามารถปลกู ดอกไมไ้ ดห้ ลากหลายสสี นั ระหวา่ งการปลกู จะมเี สยี งดนตรปี ระกอบ ทาํ ให้ สวนแหง่ น้ีดมู ชี วี ติ ชวี า และถา้ โชคดี นางฟ้ากจ็ ะปรากฎ บนิ มาเทย่ี วชมสวนแหง่ น้ี
Scratch 125 การเขียนโปรแกรมสาํ หรับเดก็ ตวั ละครและฉากเวที ตวั ละครใน GardenSecret มผี เี สอ้ื นางฟ้า กลบี ดอกไม้ 5 ชนิด และใบคาํ สงั่ ในการใชง้ าน สว่ น ฉากหลงั เวทเี รยี บงา่ ยดว้ ยสฟี ้าออ่ น สคริปตข์ องตวั ละครและเวที สคริปตข์ องใบคาํ สงั่ ใบคาํ สงั่ เป็นคาํ แนะนําสนั้ ๆ ใหผ้ ใู้ ชค้ ลกิ ตําแหน่งทต่ี อ้ งการปลกู ตน้ ไมใ้ นสวนแหง่ น้ี สครปิ ตข์ องใบคาํ สงั่ เรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ แสดง (show) คาํ แนะนําการปลกู ดอกไม้ และรอ (wait) 3 วนิ าที ก่อนทจ่ี ะหายไป (hide)
126 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องผเี สือ้ ผเี สอ้ื เป็นผนู้ ําดอกไมม้ าทส่ี วนแหง่ น้ี โดยปกตมิ นั จะซอ่ นตวั และรอคาํ สงั่ จากผใู้ ชว้ า่ จะใหป้ ลกู ดอกไมต้ รงไหน เมอ่ื ใดทผ่ี เี สอ้ื รแู้ ลว้ วา่ จะปลกู ดอกไมต้ รงไหน มนั กจ็ ะบนิ ไปทน่ี นั้ และเลอื กวา่ จะ ปลกู ดอกไมช้ นิดใด ดอกไมท้ ไ่ี ดร้ บั เลอื กกจ็ ะบานออก และถา้ ดอกไหนโชคดี กจ็ ะมนี างฟ้าลงมา เชยชม สครปิ ตแ์ รกของผเี สอ้ื เรมิ่ ตน้ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ ซอ่ นตวั (hide) แลว้ ทาํ ตวั ใหเ้ ลก็ ลง (set size to 25%) และก่อนทม่ี นั จะวาดดอกไมใ้ นสวน มนั จะทาํ ใหส้ วนน้ีวา่ งเปลา่ ก่อน ดว้ ยการ ลบ (clear) ทกุ อยา่ งทอ่ี ยบู่ นเวที
Scratch 127 การเขียนโปรแกรมสาํ หรับเดก็ สครปิ ตท์ ส่ี องของผเี สอ้ื เรมิ่ พรอ้ มสครปิ ตแ์ รก คอื เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว ผเี สอ้ื ไมร่ วู้ า่ ผใู้ ชจ้ ะบอก ตําแหน่งการปลกู ดอกไมเ้ มอ่ื ไร ดงั นนั้ ตอ้ งคอยในบลอ็ กตลอดเวลา (forever) ผเี สอ้ื จะรอจนกวา่ (wait until) การชต้ี ําแหน่งจากเมาสข์ องผใู้ ช้ (mouse down?) เมอ่ื ใดทเ่ี มาส์ ถูกคลกิ ตาํ แหน่งของเมาสจ์ ะถกู เกบ็ ไว้ ในตวั แปรภายในของ Scratch นนั้ กค็ อื mouse x และ mouse y ผเี สอ้ื จะไปยงั ตําแหน่ง x ของเมาส์ และ y ท่ี -200 ซง่ึ อยดู่ า้ นล่างนอกกรอบเวที ก่อน จะปรากฏตวั (show) และสง่ เสยี ง Chimes1 โดยบลอ็ กเล่นเสยี ง (play sound) ก่อนจะเรมิ่ ตน้ วาดดอกไม้ เพอ่ื เพม่ิ ความหลากหลายสสี นั ของสวนแหง่ น้ี ผเี สอ้ื ตงั้ คา่ สขี องปากกา (set pen color to) โดย สมุ่ คา่ สตี งั้ แต่ 20 ถงึ 80 (pick random 20 to 80) และเปลย่ี นเฉดสี (change pen shade by) โดยสมุ่ คา่ ตงั้ แต่ -20 ถงึ 20 ต่อดว้ ยการกาํ หนดขนาดของปากกา (set pen size to) โดยสมุ่ คา่ ตงั้ แต่ 2 ถงึ 6
128 kidsangsan.com สมชาย พฒั นาชวนชม จากนนั้ จรดปากกา (pen down) หลงั จากน้ี ถา้ ผเี สอ้ื เคล่อื นทไ่ี ปทใ่ี ด กจ็ ะวาดลายเสน้ ไปดว้ ย ดงั นนั้ เมอ่ื มนั เคล่อื นทไ่ี ปยงั ตําแหน่งของเมาส์ ภายใน 1 วนิ าที (glide 1 secs to x: mouse x y: mouse y) กจ็ ะเป็นการวาดกา้ นของดอกไม้ เมอ่ื มนั ยกปากกา (pen up) มนั กจ็ ะหยดุ วาด ผเี สอ้ื จะเลอื กดอกไม้ เกบ็ ไวท้ ต่ี วั แปร flower (set flower to) จากการสมุ่ ดอกไมท้ ม่ี อี ยู่ 5 ชนิด (pick random 1 to 5) แลว้ สง่ สาร draw-flower เพอ่ื ใหด้ อกทไ่ี ดส้ มุ่ เลอื กไว้ วาดดอกนนั้ ๆ ก่อนทต่ี วั มนั จะจากไป (hide) มนั ยงั เชญิ ชวนใหน้ างฟ้ามาชมดอกไม้ ทจ่ี ะถกู สรา้ งขน้ึ มาน้ี โดย สมุ่ เลขแหง่ โชคมาคา่ หน่ึงตงั้ แต่ 1 ถงึ 100 มาเกบ็ ไวใ้ นตวั แปร lucky และถา้ โชคดี นางฟ้ากจ็ ะ มาเยอื น
Scratch 129 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องนางฟ้ า ทกุ ครงั้ ทผ่ี เี สอ้ื ปลกู ดอกไม้ จะเชญิ นางฟ้าใหไ้ ปเยย่ี มชมดอกทป่ี ลกู ใหม่ แต่นางฟ้าจะไปหรอื ไม่ ขน้ึ อยกู่ บั วา่ ดอกนนั้ จะมโี ชคหรอื ไม่ สครปิ ตข์ องนางฟ้า เรมิ่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว ปกตนิ างฟ้าจะไมป่ รากฎกาย (hide) แต่นางฟ้าจะ คอยตรวจสอบอยตู่ ลอดเวลา วา่ ดอกไหนมโี ชค ในบลอ็ กตลอดเวลา (forever) คา่ ความโชคดอี ยใู่ นตวั แปร lucky ทผ่ี เี สอ้ื สมุ่ ขน้ึ มา นางฟ้าจะคอยจนกระทงั่ คา่ ความโชคดมี คี า่ มากกวา่ 95 เมอ่ื ใด (wait until lucky > 95 คา่ สมุ่ สงู ขนาดน้ี ตอ้ งโชคดจี รงิ ๆ) นางฟ้ากจ็ ะปรากฎ กาย ณ ตําแหน่งของดอกไม้ (ตาํ แหน่งทเ่ี มาสค์ ลกิ mouse-pointer) วธิ กี ารเยย่ี มชมของนางฟ้า อยภู่ ายใตเ้ งอ่ื นไขวา่ ดอกไมป้ ลกู ณ ตําแหน่งใด (mouse x > 0) บน เวที ถา้ อยทู่ ซ่ี กี ตะวนั ออก (x > 0) นางฟ้าจะหนั ไปยงั ทศิ ตะวนั ตก (-90) มฉิ ะนนั้ จะหนั ไปยงั ทศิ ตะวนั ออก (90) โดยใชบ้ ลอ็ กชไ้ี ปยงั ทศิ (point to direction) เป็นตวั กาํ หนดการหนั
130 kidsangsan.com สมชาย พฒั นาชวนชม นางฟ้าจะปรากฎกาย (show) แลว้ ตงั้ คา่ ความโชคดกี ลบั เป็น 0 ใหม่ (set lucky to 0) และจะอยู่ เพยี ง 1 วนิ าที (wait 1 secs) กอ่ นจะหายตวั ไป (hide) สคริปตข์ องดอกไม้ การวาดดอกไมใ้ หม้ คี วามหลากหลายนนั้ แทนทจ่ี ะเพมิ่ ชุดแต่งกาย (costumes) มากขน้ึ ซง่ึ เป็น วธิ กี ารหน่ึง แต่ไมม่ ปี ระสทิ ธภิ าพเทา่ ทค่ี วร เน่ืองจากเปลอื งพน้ื ทก่ี ารจดั เกบ็ การวาดดอกไมใ้ น โปรเจกน้ี ใชเ้ ทคนิคการวาดกลบี ดอกไมแ้ ทน นนั้ กค็ อื การใชก้ ลบี ดอกไมเ้ พยี งไมก่ แ่ี บบ แลว้ กาํ หนดคา่ สี ความสวา่ ง ขนาด และการจดั เรยี งตาํ แหน่งของกลบี ดอกไมใ้ หม่ กอ่ นทจ่ี ะวาด ดอกไม้ ดว้ ยการตราประทบั (stamp) กลบี ดอกไมไ้ ปรอบๆ เป็นวงกลม ซง่ึ วธิ นี ้ีสามารถสรา้ ง ดอกไมใ้ หม้ คี วามหลากหลายไดอ้ ยา่ งมปี ระสทิ ธภิ าพ และแสดงแอนิเมชนั่ ของการวาดดอกไมไ้ ด้ ดว้ ย กอ่ นจะเรมิ่ วาดดอกไม้ ผเี สอ้ื เลอื กดอกไมด้ ว้ ยการสมุ่ คา่ เกบ็ ไวใ้ นตวั แปร flower แลว้ สง่ สาร draw-flower ใหด้ อกไมท้ เ่ี ลอื กไวว้ าดรปู โดยทแ่ี ต่ละดอกจะตอ้ งตรวจสอบเองวา่ ตวั เองถูกเลอื ก หรอื ไม่ เชน่ ดอกท่ี 1 (flower1) กจ็ ะตรวจสอบวา่ ตวั แปร flower = 1 หรอื ไม่ ดอกท่ี 2 (flower2) กจ็ ะตรวจสอบวา่ ตวั แปร flower = 2 หรอื ไม่ เป็นตน้
Scratch 131 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องดอกท่ี 1 สครปิ ตแ์ รกของดอกท่ี 1 เรมิ่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จากนนั้ ซ่อนตวั กอ่ น (hide) รอการเรยี กใหว้ าด รปู สครปิ ตท์ ส่ี องของดอกท่ี 1 เรม่ิ เมอ่ื ไดร้ บั สาร draw-flower ดอกท่ี 1 จะวาดดอกไม้ กต็ ่อเมอ่ื ตวั เองถูกเลอื ก ดงั นนั้ การวาดรปู ตอ้ งอยใู่ นบลอ็ กเงอ่ื นไขถา้ (if) ถา้ ผเี สอ้ื เลอื กดอกท่ี 1 (flower=1) ดอกท1่ี จะไปยงั ตาํ แหน่งของผเี สอ้ื (go to butterfly) ยา้ ย มาเลเยอรด์ า้ นหน้า (go to front) เพอ่ื วาดรปู ทบั รปู ดอกอน่ื ๆ ทถ่ี ูกวาดก่อนหน้าน้ี รวมทงั้ ตวั ผเี สอ้ื ดว้ ย เพอ่ื ใหก้ ารวาดดอกไมน้ ่าสนใจ มนั จะสง่ เสยี ง Fall1 ประกอบดว้ ย
132 kidsangsan.com สมชาย พฒั นาชวนชม กอ่ นทจ่ี ะเรม่ิ วาดดอกไม้ ตอ้ งตงั้ คา่ ต่างๆ ของปากกาใหม่ นนั่ กค็ อื สี (color) ความสวา่ ง (brightness) และขนาด (size) เพอ่ื ใหเ้ กดิ ความหลากหลายสสี นั โดยทค่ี า่ สมี าจาก ตาํ แหน่ง x ของเมาสห์ ารดว้ ย 5 (mouse x / 5) คา่ ความสวา่ งไดจ้ ากการสมุ่ คา่ ตงั้ แต่ -25 ถงึ 25 (pick random -25 to 25) สว่ นคา่ ขนาดคอ่ นขา้ งซบั ซอ้ นสกั หน่อย โดยนํา คา่ ตาํ แหน่ง y ของเมาส์ มาบวก 220 แลว้ หารดว้ ย 3 ทาํ ใหด้ อกทอ่ี ยสู่ งู จะใหญ่กวา่ ดอกทอ่ี ยู่ ดา้ นล่าง หลงั จากนนั้ บวกกบั คา่ สมุ่ ตงั้ แต่ -5 ถงึ 5 การวาดดอกไม้ ทาํ ไดจ้ ากการตราประทบั (stamp) กลบี ดอกไมไ้ ปรอบๆ เป็นวงกลม หา่ งกนั ทุกๆ 15 องศา โดยประทบั 1 ครงั้ (stamp) แลว้ กห็ มนุ ตามเขน็ นาฬกิ าไป 15 องศา (turn 15 degrees) เพอ่ื ใหไ้ ด้ 1 รอบพอดี ตอ้ งประทบั จาํ นวน (360/15) ครงั้ ในบลอ็ กทาํ ซ้าํ (repeat) สดุ ทา้ ยวาดตรงกลางของดอกไม้ ดว้ ยปากกาขนาด 8 (set pen size to 8) ดว้ ยสเี หลอื ง (set pen color) โดยจรดปากกาลง (pen down) แลว้ ขยบั ปากกา 1 กา้ ว (move 1 steps) จากนนั้ ยก ปากกา (pen up) กจ็ ะไดด้ อกไมแ้ บบท่ี 1 มา 1 ดอก
Scratch 133 การเขียนโปรแกรมสาํ หรับเดก็ การคาํ นวณใน Scratch การเขยี นโปรแกรม คงหนีไมพ่ น้ การคาํ นวณและการประมวลผลขอ้ มลู ซง่ึ พบเหน็ ไดเ้ กอื บจะทกุ โปรเจกใน Scratch โดยขอ้ มลู ทส่ี ามารถนํามาคาํ นวณได้ คอื ตวั เลข ตวั อกั ษร และขอ้ เทจ็ จรงิ การประมวลผลขอ้ มลู ทาํ ได้ โดยใชบ้ ลอ็ กในหมวดโอเปอรเ์ รชนั่ ดงั น้ี • การคาํ นวณตวั เลขทวั่ ไป กม็ กี ารบวก (+) ลบ (-) คณู (*) หาร (/) นอกจากนนั้ ยงั มี การ สมุ่ คา่ (pick random) และการใชฟ้ งั กช์ นั คณติ ศาสตรอ์ กี มากมาย • สว่ นการจดั การขอ้ มลู ตวั อกั ษรนนั้ สามารถเชอ่ื มคาํ สองคาํ ใหเ้ ป็นคาํ เดยี วกนั ได้ (join) หรอื ดงึ อกั ษรใดอกั ษรหน่ึงมาจากคาํ ได้ (letter of ) นอกจากนนั้ ยงั นบั จาํ นวนอกั ษร ทงั้ หมดในคาํ ได้ (length of) • สาํ หรบั ตรรกะทใ่ี ชใ้ นบลอ็ กเงอ่ื นไข หาไดจ้ ากการเปรยี บเทยี บตวั เลข เชน่ การ เปรยี บเทยี บ มากกวา่ (>) น้อยกวา่ (<) หรอื เทา่ กบั (=) ซง่ึ จะคนื คา่ เป็น จรงิ หรอื เทจ็ เมอ่ื มหี ลายเงอ่ื นไข กย็ งั สามารถประมวลผลระหวา่ งเงอ่ื นไขไดจ้ าก ตรรกะและ (and) ตรรกะหรอื (or) และตรรกะไม่ (not) สง่ิ สาํ คญั อยา่ งหน่ึงในการคาํ นวณทก่ี ลา่ วมา คอื ลาํ ดบั การคาํ นวณ ตวั อยา่ งเชน่ ถา้ ตอ้ งการ คาํ นวณ 3 * 5 - 4 / 2 ในโปรแกรมภาษาอน่ื จะคาํ นวณตามกฎลาํ ดบั การคาํ นวณของภาษานนั้ ๆ เพอ่ื ลดความสบั สนในเรอ่ื งลาํ ดบั การคาํ นวณ ใน Scratch จะคาํ นวณไดท้ ล่ี ะคู่ เหมอื นการใส่ วงเลบ็ ซง่ึ คนเขยี นโปรแกรมตอ้ งเป็นผรู้ วู้ า่ ลาํ ดบั การคาํ นวณเป็นอยา่ งไร แลว้ จบั คใู่ หถ้ กู ลาํ ดบั มเิ ชน่ นนั้ จะไดผ้ ลลพั ธแ์ ตกตา่ งกนั เชน่ ((3 * 5) - (4 / 2)) = 13 หรอื ((3 * (5 – 4)) / 2) = 1.5 เป็นตน้
134 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องดอกที่ 2 สครปิ ตแ์ รกของดอกท่ี 2 เหมอื นกบั สครปิ ตแ์ รกของดอกท่ี 1 สว่ นสครปิ ตท์ ส่ี องของดอกท่ี 2 คลา้ ยกบั สครปิ ตท์ ส่ี องของดอกท่ี 1 แต่ดอกท่ี 2 มกี ลบี ดอกอยู่ 2 ชนั้ โดยจะเรม่ิ ตน้ วาดดว้ ยกลบี แบบแรก (costume1) เหมอื นดอกท่ี 1 แลว้ จงึ วาดกลบี แบบทส่ี อง (costume2)
Scratch 135 การเขียนโปรแกรมสาํ หรับเดก็ โดยสครปิ ตเ์ รม่ิ เมอ่ื ไดร้ บั สาร draw-flower ถา้ ตวั เองถกู เลอื ก (flower=2) กจ็ ะไปทผ่ี เี สอ้ื ยา้ ย มาเลเยอรห์ น้าสดุ แลว้ เปลย่ี นชุดเป็นกลบี แบบแรก (switch to costume costume1) จากนนั้ สง่ เสยี ง Beep1 การตงั้ คา่ ของปากกาทาํ เหมอื นดอกท่ี 1 กอ่ นจะวาดกลบี แบบแรกดว้ ยการตราประทบั แลว้ หมนุ ตามเขม็ นาฬกิ า 15 องศา จาํ นวน (360/15) ครงั้ ไดห้ น่ึงรอบพอดี จากนนั้ เปลย่ี นชดุ เป็นกลบี แบบทส่ี อง ลดขนาดกลบี ดว้ ยการสมุ่ คา่ ตงั้ แต่ 25 ถงึ 100 (เป็น กลบี ช้นใน) จากนนั้ กป็ ระทบั ดว้ ยกลบี แบบทส่ี อง โดยคราวน้ีจะหมนุ ทวนเขน็ นาฬกิ าทุกๆ 20 องศา จาํ นวน 360/20 ครงั้ ไดก้ ลบี อกี หน่ึงชนั้
136 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องดอกที่ 3 สครปิ ตแ์ รกของดอกท่ี 3 เหมอื นกบั สครปิ ตแ์ รกของดอกท่ี 1 สว่ นสครปิ ตท์ ส่ี องของดอกท่ี 3 คลา้ ยกบั สครปิ ตท์ ส่ี องของดอกท่ี 1 โดยสครปิ ตเ์ รม่ิ เมอ่ื ไดร้ บั สาร draw-flower ถา้ ตวั เองถกู เลอื ก (flower=3) กจ็ ะไปทผ่ี เี สอ้ื ยา้ ยมาเลเยอรห์ น้าสดุ แลว้ สง่ เสยี ง Cowbell1 จากนนั้ ตงั้ คา่ ของปากกาเหมอื นดอกท่ี 1 แลว้ วาดดอกไมด้ ว้ ยการตราประทบั โดยหมนุ ตามเขม็ นาฬกิ า 30 องศา จาํ นวน (360/30) ครงั้ ไดห้ น่ึงรอบพอดี
Scratch 137 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องดอกที่ 4 สครปิ ตข์ องดอกท่ี 4 คลา้ ยกบั สครปิ ตข์ องดอกท่ี 3 มาก ต่างกนั ตรงเสยี งประกอบ ทใ่ี ชเ้ สยี ง Laser1 แทน
138 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องดอกท่ี 5 สครปิ ตข์ องดอกท่ี 5 กค็ ลา้ ยกบั สครปิ ตข์ องดอกท่ี 3 มากเหมอื นกนั ต่างกนั ตรงเสยี งประกอบ ท่ี ใชเ้ สยี ง Gong1 แทน
Scratch 139 การเขียนโปรแกรมสาํ หรับเดก็ การต่อยอดโปรเจก GardenSecret • รปู แบบตราประทบั (stamp) แบบอน่ื ๆ เชน่ กลบี เวน้ กลบี กลบี วนแลว้ มขี นาดลดลง ดว้ ย เหมอื นวงกน้ หอย (spiral) กลบี สแ่ี ฉก กลบี หา้ แฉก เป็นตน้ • การวาดดอกไม้ ดว้ ยการวาดลายเสน้ จากการเคล่อื นท่ี และการเปลย่ี นทศิ • แทนทจ่ี ะเป็นดอกไม้ เปลย่ี นเป็นพลุแทน เมอ่ื ผใู้ ชค้ ลกิ ทใ่ี ด จะมแี อนิเมชนั่ ขณะพลุขน้ึ ระเบดิ แลว้ หายไป พรอ้ มทงั้ เสยี งประกอบ การออกแบบคอ่ นขา้ งยาก แต่กท็ า้ ทาย เหมอื นกนั โดยเฉพาะทาํ ใหพ้ ลุ คอ่ ยๆ หายไปเมอ่ื เวลาผา่ นไป
140 kidsangsan.com สมชาย พฒั นาชวนชม โปรเจก PianoMachine โปรเจก PianoMachine เป็นโปรเจกทาํ แอนิเมชนั่ งา่ ยๆ เน้นทเ่ี สยี งดนตรี จงึ ถกู จดั อยใู่ นกลุม่ ของ Music and Dance เปิดโปรเจกดว้ ยการเลอื ก Open ในเมนู File จากนนั้ คลกิ ปมุ่ Examples เลอื กโฟลเ์ ดอร์ Music and Dance แลว้ เลอื กโปรเจก PianoMachine ภาพรวมของโปรเจก บนเวทมี คี ยี เ์ ปียโน ซง่ึ แต่ละคยี ม์ เี สยี งต่างกนั เมอ่ื ลกู บอลมากระทบ หรอื ผใู้ ชค้ ลกิ ทค่ี ยี เ์ ปียโน คยี น์ นั้ จะแสดงแอนิเมชนั่ งา่ ยๆ เสมอื นวา่ คยี เ์ ปียโนถกู กดลงพรอ้ มกบั เสยี งคยี น์ นั้ แลว้ คยี เ์ ปียโน กเ็ ดง้ ขน้ึ เอง ขณะทโ่ี ปรแกรมทาํ งาน ผใู้ ชส้ ามารถลากคยี เ์ หล่าน้ีไปวางตําแหน่งใหมไ่ ด้ เพอ่ื ให้ เกดิ เสยี งรปู แบบใหมๆ่
Scratch 141 การเขียนโปรแกรมสาํ หรับเดก็ บนเวทยี งั มปี มุ่ ต่างๆ (User interface) ใหผ้ ใู้ ชค้ วบคุม ขณะโปรแกรมทาํ งาน เชน่ ตอนเรม่ิ ตน้ โปรแกรม ลกู บอลจะมอี ยู่ 3 ลกู เมอ่ื กดปมุ่ จาํ นวนลกู บอล (ปมุ่ สเี หลอื ง) ลกู บอลจะเพมิ่ ขน้ึ ทล่ี ะ ลกู เมอ่ื ถงึ 6 ลกู แลว้ จะวนกลบั มาท่ี 1 ลกู ใหม่ ปกตกิ ารเคล่อื นทข่ี องลกู บอล จะเคล่อื นทไ่ี ปเรอ่ื ยๆ ถา้ ชนขอบเวทกี จ็ ะสะทอ้ นกลบั แต่ถา้ ชนคยี ์ เปียโนแลว้ อาจสะทอ้ นกลบั (rebound) หรอื ผา่ นเลยไป (through) ทงั้ น้ีขน้ึ กบั สถานะของปมุ่ ควบคุมการสะทอ้ น (ปมุ่ สนี ้ําเงนิ ) นอกจากสองปมุ่ น้ีแลว้ ยงั มสี ไลเดอรท์ ใ่ี ชค้ วบคุมความเรว็ ของลกู บอล และถา้ ผใู้ ชค้ ลกิ ทเ่ี วที ลกู บอลทุกลกู กจ็ ะเปลย่ี นทศิ เองแบบสมุ่ อกี ดว้ ย ตวั ละครและเวที โปรเจกน้ีมตี วั ละครมากถงึ 26 ตวั แต่ถา้ จดั กลุม่ แลว้ จะมใี บคาํ สงั่ 1 ใบ ปมุ่ คาํ สงั่ 2 ปมุ่ ลกู บอล 6 ลกู และคยี เ์ ปียโน 17 คยี ์ สว่ นฉากหลงั เวทเี รยี บงา่ ยเป็นเฉดสฟี ้าตามแนวรศั มวี งกลม
142 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องตวั ละครและเวที สคริปตข์ องคาํ สงั่ คาํ สงั่ ทอ่ี ยบู่ นเวที สงั่ ใหด้ คู าํ สงั่ ของโปรเจกน้ีใน Project Notes อกี ที ซง่ึ เปิดดไู ด้ โดยคลกิ เมนู File เลอื ก Project Notes … ทงั้ น้ีอาจเป็นเพราะวา่ คาํ สงั่ คอ่ นขา้ งยาว ไมเ่ หมาะทจ่ี ะใสไ่ วบ้ นเวที วธิ นี ้ีน่าจะดกี วา่ สว่ นสครปิ ตข์ องใบคาํ สงั่ กง็ า่ ยๆ คอื เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี วแลว้ มนั จะหายไป ดว้ ยเอฟเฟคหายตวั (ghost) เทา่ นนั้ เอง
Scratch 143 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องเวที สครปิ ตข์ องเวที เรมิ่ ตน้ ทกุ ครงั้ ทผ่ี ใู้ ชค้ ลกิ ทว่ี า่ งบนเวที โดยใชบ้ ลอ็ กควบคุมคอยตรวจสอบวา่ เวที ถูกคลกิ หรอื ยงั (when Stage clicked) ถา้ เวทถี ูกคลกิ เวทจี ะสง่ สาร new random direction ออกไป ซง่ึ ตวั ละครใดทร่ี อรบั สารน้ี (ลกู บอลทงั้ หมด) จะถกู กระตุน้ ใหท้ าํ งานต่อไป
144 kidsangsan.com สมชาย พฒั นาชวนชม สคริปตข์ องคียเ์ ปี ยโน เสยี งเปียโนเกดิ จากการกระทบของลกู บอลกบั ตวั คยี เ์ ปียโน หรอื ผใู้ ชค้ ลกิ ตวั คยี เ์ ปียโนโดยตรง เปียโนมเี สยี งต่างกนั 17 เสยี ง จาก 17 คยี ์ แต่ทุกคยี ใ์ ชห้ ลกั การเดยี วกนั ทาํ ใหส้ ครปิ ตอ์ อกมา คลา้ ยกนั มาก ต่างกนั แคเ่ สยี งของแต่ละคยี เ์ ทา่ นนั้ ดงั นนั้ มาดสู ครปิ ตข์ องคยี ์ keyG-55 ซง่ึ สามารถเป็นตวั แทนของคยี ท์ เ่ี หลอื ไดเ้ ป็นอยา่ งดี สครปิ ตแ์ รกของคยี ์ keyG-55 เรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว ตวั คยี จ์ ะอยใู่ นสภาวะทย่ี งั ไมไ่ ดก้ ด โดย เปลย่ี นชุดเป็น up สครปิ ตท์ ส่ี องเรมิ่ เมอ่ื คยี น์ ้ีถกู คลกิ (when keyG-55 clicked) จากการคลกิ คยี ์ น้ีโดยตรงของผใู้ ช้ กจ็ ะสง่ สาร playG-55 ออกไป สครปิ ตท์ ส่ี ามเรมิ่ เมอ่ื ตวั มนั เองไดร้ บั สาร playG-55 ตวั คยี จ์ ะเปลย่ี นชดุ เป็น down เพอ่ื แสดง การกดลงของคยี ์ จากนนั้ เลน่ เสยี งตวั โน๊ตท่ี 55 ครง่ึ จงั หวะ (play note 55 for 0.5 beats) แลว้ เปลย่ี นเครอ่ื งแต่งกายเป็น up เป็นอนั ครบรอบการแสดงแอนิเมชนั่ ของการกดคยี เ์ ปียโนหน่ึงครงั้ นอกจากการรบั สาร playG-55 จากตวั คยี เ์ องแลว้ สครปิ ตน์ ้ียงั รบั สารจากลกู บอล เมอ่ื ลกู บอล กระทบคยี น์ ้ีดว้ ย เทคนิคน้ที าํ ใหเ้ ขยี นสครปิ ตเ์ พยี งครงั้ เดยี วเทา่ นนั้ สาํ หรบั แสดงแอนิเมชนั่ การ กดคยี พ์ รอ้ มเสยี งของคยี น์ นั้ ๆ
Scratch 145 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องลกู บอล ปกตลิ กู บอลจะเคล่อื นทไ่ี ปมาตลอด เมอ่ื ชนขอบเวทกี จ็ ะสะทอ้ นกลบั แต่ถา้ ชนกบั คยี เ์ ปียโนจะ เกดิ เสยี งของคยี น์ นั้ ๆ สว่ นจะสะทอ้ นกลบั หรอื ผา่ นเลยไป ขน้ึ กบั สถานะการสะทอ้ น ในตวั แปร rebound ณ ขณะนนั้ ลกู บอลมอี ยดู่ ว้ ยกนั 6 ลกู ตอนเรม่ิ ตน้ มอี ยเู่ พยี ง 3 ลกู เทา่ นนั้ บนเวที แต่ สามารถเพม่ิ ลดได้ ดว้ ยปมุ่ ควบคุมจาํ นวนลกู บอล สครปิ ตข์ องลกู บอลนนั้ คอ่ นขา้ งยาวทเี ดยี ว มถี งึ 20 สครปิ ต์ แต่สครปิ ตส์ ว่ นใหญ่ เป็นสครปิ ตท์ ่ี คอยตรวจสอบการชนคยี เ์ ปียโนต่างๆ (17 คยี )์ ซง่ึ จะคลา้ ยกนั หมด สครปิ ตข์ องลกู บอลทงั้ 6 ลกู มลี กั ษณะคลา้ ยกนั มากๆ ดงั นนั้ มาดสู ครปิ ตข์ องลกู บอล 1 กน็ ่าจะเพยี งพอกบั การทาํ ความเขา้ ใจ ลกู บอลทเ่ี หลอื สครปิ ตแ์ รกเรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว ลกู บอลจะยา้ ยไปเลเยอรด์ า้ นหน้าสดุ (go to front) เพอ่ื ให้ เหน็ ลกู บอลตลอดเวลาขณะเคล่อื นทไ่ี ปมา จากนนั้ กาํ หนดทศิ การเคล่อื นท่ี (point in direction) แบบสมุ่ ตงั้ แต่ 1 ถงึ 360 องศา จากนนั้ ลกู บอลจะเคล่อื นทไ่ี ปเรอ่ื ยๆ ภายในบลอ็ กควบคุม ตลอดเวลา (forever) การเคล่อื นทจ่ี ะเรว็ หรอื ชา้ ถูกกาํ หนดในตวั แปร speed ซง่ึ มคี า่ ตงั้ แต่ 10 ถงึ 20 และผใู้ ชส้ ามารถปรบั เล่อื นไดด้ ว้ ยสไลเดอรบ์ นเวที จากนนั้ จะตรวจสอบการชนขอบเวที ถา้ ชนกจ็ ะสะทอ้ นกลบั ก่อนทจ่ี ะเคล่อื นทต่ี ่อไปกจ็ ะหยดุ พกั (wait) 0.01 วนิ าที
146 kidsangsan.com สมชาย พฒั นาชวนชม ระหวา่ งทล่ี กู บอลเคล่อื นทไ่ี ป กจ็ ะตรวจสอบดว้ ยวา่ ตว้ เองไปกระทบกบั คยี ไ์ หนบา้ ง การ ตรวจสอบน้ีทาํ เหมอื นกนั หมดทงั้ 17 คยี ์ มาดคู ยี ์ keyC-48 ในสครปิ ตท์ ส่ี องเป็นตวั อยา่ ง สว่ นคยี ์ อ่นื กค็ ลา้ ยๆ กนั ยกเวน้ keyC-60 ในสครปิ ตท์ ส่ี าม ทไ่ี มม่ กี ารสะทอ้ นของลกู บอลเมอ่ื คยี ถ์ กู ชน สครปิ ตท์ ส่ี องเรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว การตรวจสอบน้ีเกดิ ขน้ึ เมอ่ื ใดกไ็ ด้ ทาํ ใหต้ อ้ งทาํ ในบลอ็ ก ตลอดเวลาถา้ (forever if) ถา้ ลกู บอลสมั ผสั กบั คยี น์ ้ี (touching keyC-48) กจ็ ะตรวจสอบต่อไปวา่ ตวั แปร rebound=1 หรอื ไม่ ถา้ ใช่ กจ็ ะสะทอ้ น โดยกาํ หนดทศิ การเคล่อื นทใ่ี หมเ่ ทา่ กบั 180 + direction โดยทต่ี วั แปร direction เป็นตวั แปรภายใน ทเ่ี กบ็ คา่ ทศิ การเคล่อื นทป่ี จั จบุ นั ของลกู บอลไว้ ทาํ ใหล้ กู บอลสะทอ้ นกลบั 180 องศาจากทศิ เดมิ จากนนั้ มนั จะสง่ สารบอกคยี ท์ ม่ี นั ชน และจะรอจนกวา่ แอนิเมชนั่ ของคยี จ์ บลง (broadcast playC-48 and wait) เพอ่ื ใหเ้ กดิ การสมั ผสั คยี แ์ คค่ รงั้ เดยี ว ลกู บอลจะรอตวั มนั เองเคล่อื นออกจากคยี น์ ้ีกอ่ น โดยตรวจสอบวา่ ตวั มนั ไม่ สมั ผสั กบั คยี น์ ้แี ลว้ (not tounching keyC-48)
Scratch 147 การเขียนโปรแกรมสาํ หรับเดก็ สครปิ ตท์ ส่ี ่ี เรม่ิ เมอ่ื ไดร้ บั สาร new random direction จากการทผ่ี ใู้ ชค้ ลกิ ทว่ี า่ งบนเวที ทาํ ใหล้ กู บอลเปลย่ี นทศิ การเคล่อื นทข่ี องตวั เองแบบสมุ่ ตงั้ แต่ 1 ถงึ 360 องศา ทาํ ใหม้ โี อกาสไดเ้ สยี งใหม่ เกดิ ขน้ึ สครปิ ตท์ ห่ี า้ เรม่ิ เมอ่ื ไดร้ บั สาร number of balls changed จากการทผ่ี ใู้ ชค้ ลกิ ปมุ่ ควบคุมจาํ นวน ลกู บอล ลกู บอลแต่ละลกู จะตรวจสอบสทิ ธกิ ารปรากฎตวั ของตวั เอง จากตวั แปร balls เชน่ เมอ่ื ลกู บอล 1 (ball1) ไดร้ บั สารน้ี จะตรวจสอบดวู า่ balls > 0 หรอื ไม่ ลกู บอล 2 (ball2) กจ็ ะ ตรวจสอบดวู า่ balls > 1 หรอื ไม่ เป็นตน้ สาํ หรบั ลกู บอล 1 ถา้ balls มากกวา่ 0 กจ็ ะปรากฎบนเวที (show) ถา้ ไมใ่ ชก่ ซ็ ่อนตวั (hide) ซง่ึ ในตอนเรมิ่ ตน้ ปมุ่ ควบคุมจาํ นวนลกู บอลไดก้ าํ หนดตวั แปร balls = 3 ทาํ ใหล้ กู บอล 1-3 ปรากฎ บนเวที
148 kidsangsan.com สมชาย พฒั นาชวนชม การทาํ ซาํ้ ตวั ละครที่มีลกั ษณะคล้ายกนั ใน Scratch ตวั ละครต่างชนิดกนั มกั ถกู สรา้ งของใครของมนั แต่ถา้ ตวั ละครเป็นกลมุ่ เดยี วกนั ท่ี คลา้ ยกนั เชน่ คยี เ์ ปียโน กบั ลกู บอล ในโปรเจกน้ี แทนทจ่ี ะสรา้ งทล่ี ะตวั ควรจะเรม่ิ จากการ สรา้ งตน้ แบบของตวั ละครกอ่ น แลว้ ทาํ ซ้าํ ตวั ละครจากตน้ แบบอกี ที จาํ นวนเทา่ ไรกไ็ ด้ โดยคลกิ ขวาทต่ี วั ละครตน้ แบบในรายการตวั ละคร จากนนั้ เลอื ก duplicate ซง่ึ ตวั ละครใหมจ่ ะไดส้ ครปิ ต์ และชุดมาทงั้ หมดจากตวั ละครตน้ แบบ ต่อจากนนั้ เราสามารถแกไ้ ขเพมิ่ เตมิ ตวั ละครใหมไ่ ด้ ในกรณขี องลกู บอล จะเหน็ ประโยชน์อยา่ งมาก เพราะแต่ละลกู มี 20 สครปิ ต์ แลว้ ชดุ กเ็ หมอื นกนั หมด การทาํ ซ้าํ ตวั ละครจากตน้ แบบ จะชว่ ยลดเวลาในการสรา้ งตวั ละครใหมอ่ ยา่ งมาก สงั เกตวา่ ทุกครงั้ ทท่ี าํ ซ้าํ แมจ้ ะไดท้ กุ อยา่ งจากตวั ละครตน้ แบบ แต่ตวั ละครทไ่ี ดจ้ ากการทาํ ซ้าํ จะไดช้ ่อื ตวั ละครใหม่ ซง่ึ ถอื วา่ เป็นอสิ ระจากตวั ละครตน้ แบบ
Scratch 149 การเขียนโปรแกรมสาํ หรับเดก็ สคริปตข์ องป่ มุ ควบคมุ จาํ นวนลกู บอล ผใู้ ชส้ ามารถเพม่ิ หรอื ลดจาํ นวนลกู บอลบนเวทไี ด้ โดยคลกิ ปุม่ ควบคมุ จาํ นวนลกู บอล ทุกครงั้ ท่ี คลกิ จะเพม่ิ ลกู บอล 1 ลกู บนเวที จนกระทงั่ ครบ 6 ลกู แลว้ จะกลบั มาเรมิ่ ท่ี 1 ลกู ใหม่ สครปิ ตแ์ รกเรมิ่ เมอ่ื ผใู้ ชค้ ลกิ ธงเขยี ว จะกาํ หนดจาํ นวนลกู บอลเรม่ิ ตน้ เทา่ กบั 3 ในตวั แปร balls (set balls to 3) แลว้ เปลย่ี นชดุ เป็นหมายเลข 3 จากนนั้ สง่ สาร number of balls changed (ให้ ลกู บอลทกุ ลกู ) สครปิ ตท์ ส่ี องเรม่ิ เมอ่ื ผใู้ ชค้ ลกิ ทป่ี มุ่ น้ี (when balls clicked) ปมุ่ จะแสดงแอนิเมชนั่ สนั้ ๆ ใหร้ วู้ า่ มนั ถูกคลกิ ดว้ ยการลดขนาดเหลอื 75% (set size to 75%) แลว้ คอย 0.3 วนิ าที จากนนั้ จะ กาํ หนดคา่ ในตวั แปร balls ใหม่ โดยตอ้ งการใหเ้ พม่ิ ทล่ี ะ 1 แต่เมอ่ื ถงึ 6 ใหก้ ลบั ไปเรมิ่ 1 ใหม่ ทาํ ไดโ้ ดยใชส้ ตู ร (1 + (balls mod 6))
150 kidsangsan.com สมชาย พฒั นาชวนชม เมอ่ื เปลย่ี นคา่ ในตวั แปรแลว้ จงึ สง่ สาร number of balls changed ใหล้ กู บอลทกุ ลกู ทราบ แลว้ ก็ เปลย่ี นชุดถดั ไป (next costume) ก่อนทจ่ี ะเปลย่ี นขนาดกลบั มาเทา่ เดมิ (100%) สงั เกตวา่ ชุดตวั ละครมอี ยู่ 6 ชุด เรยี งตามตวั เลขดว้ ยความตงั้ ใจ ทงั้ น้ีเพราะเมอ่ื ใชบ็ ลอ็ ก next costume มนั จะเลอื กชดุ ถดั ไปตามลาํ ดบั เมอ่ื ไปถงึ ชดุ สดุ ทา้ ยแลว้ มนั จะยอ้ นกลบั ไปทช่ี ุดแรก โดยอตั โนมตั ิ
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185