26
การใช้โปรแกรม Scratch โปรแกรม Scratch มีความสามารถผลิต Digital Media ที่มีศักยภาพเทียบเท่าโปรแกรม FASH และ Switch โดยที่มีขั ้นตอนการทางานที่ไม่สลับสับซ้อน มีความง่ายต่อการใช้งานมากกว่า โปรแกรม FASH และ Switch เป็นอย่างมาก เหมาะสาหรับผู้ที่มีประสบการณ์ผลิตสื่อ Digital น้อย เมื่อสร้างงานโดย Scratch สามารถนาเสนอได้ใน Moodel LMS และ และยังนาเสนอใน รูปแบบ Social Network ได้ใน Website VoiceThread ได้อีกด้วย การเตรียมไฟล์ข้อมูล 1.คลิกที่แทบ Costumes และคลิกที่ปุ ่ม Import 2.จากนั ้นเลือกภาพที่ต้องการนามาสร้างงาน ดังภาพข้างล่าง

การใช้โปรแกรม Scratch.docx

Embed Size (px)

DESCRIPTION

tyyy7y

Citation preview

Page 1: การใช้โปรแกรม Scratch.docx

การใชโปรแกรม Scratch

โปรแกรม Scratch มความสามารถผลต Digital Media ทมศกยภาพเทยบเทาโปรแกรม FASH และ Switch โดยทมขนตอนการท างานทไมสลบสบซอน มความงายตอการใชงานมากกวา โปรแกรม FASH และ Switch เปนอยางมาก เหมาะส าหรบผทมประสบการณผลตสอ Digital นอย เมอสรางงานโดย Scratch สามารถน าเสนอไดใน Moodel LMS และ และยงน าเสนอในรปแบบ Social Network ไดใน Website VoiceThread ไดอกดวย

การเตรยมไฟลขอมล

1.คลกทแทบ Costumes และคลกทปม Import

2.จากนนเลอกภาพทตองการน ามาสรางงาน ดงภาพขางลาง

Page 2: การใช้โปรแกรม Scratch.docx

3.จะไดภาพทตองการจนครบดงภาพขางลาง ในขนตอนนอาจสรางการตนเองกไดจากโปรแกรมชวยสรางงานกราฟกอนๆ

Page 3: การใช้โปรแกรม Scratch.docx

ขนตอนสราง Animation

1. เมอไดภาพจนครบแลว ใหคลกทแทบ Scripts และคลกทปม Control จากนนเลอกคลก Icon When Click แลวลากมาปลอยไวในพนท Script เพอตองการน าเสนองานโดยการคลก

Page 4: การใช้โปรแกรม Scratch.docx

2. เลอกคลก Icon forever แลวลากมาปลอยไวในพนท Script เพอตองการน าเสนองานซ าๆ กนตลอดเวลา ดงภาพขางลาง

Page 5: การใช้โปรแกรม Scratch.docx

3. คลกทปม Look จากนนเลอกคลก Icon next costume แลวลากมาปลอยไวในพนท Script ภายใน Icon forever เพอตองการน าเสนอภาพภายใน Costume ตามล าดบจนครบ ดงภาพขางลางน

Page 6: การใช้โปรแกรม Scratch.docx

4. คลกทปม Control จากนนเลอกคลก Icon wait แลวลากมาปลอยไวในพนท Script ภายใน Icon forever ภายใต Icon next costume แลวก าหนดเวลาหยดเปน 0.2 วนาท เพอหยดการน าเสนอชวขณะของแตละภาพภายใน Costume ตามล าดบจนครบ ทตองหยดชวขณะเพอใหภาพตอเนองโดยการชลอการน าเสนอ (จากนนจะน าเสนอซ าๆ ตามค าสงของ Icon forever) ดงภาพขางลางน

Page 7: การใช้โปรแกรม Scratch.docx

ขนการสรางฉากหลง

1.ไปคลกท Stage จากนนเลอกคลกแทบ Background และคลกปม Import เพอน าภาพมาเปนภาพ Background ตามล าดบ

Page 8: การใช้โปรแกรม Scratch.docx

2. แลวเลอกภาพ Background ทตองการ ตามภาพขางลาง

Page 9: การใช้โปรแกรม Scratch.docx

ขนการน าเสนอเสยงเพลงประกอบ

1. กลบไปคลก scripts แลวเลอกคลกทปม Control จากนนคลกแลวลาก Icon when clicked และ forever มาจดวางจากบนลงลางตามล าดบ

Page 10: การใช้โปรแกรม Scratch.docx

2. เลอกเพลงโดยคลกทแทบ Sound แลวกดปม Import ตามล าดบ ตามภาพขางลาง

3. เลอกเพลงทตองการ

Page 11: การใช้โปรแกรม Scratch.docx

4. ตอไปใหคลกทแทบ Sound จากนนคลกลาก Icon play sound until ไปปลอยวางภายใน Icon forever

Page 12: การใช้โปรแกรม Scratch.docx

ขนตอนการน าเสนอ Preview

1. คลกทปมธงสเขยวเมอตองการน าเสนอ ตามภาพขางลาง

Page 13: การใช้โปรแกรม Scratch.docx

2. คลกทปมวงกลมทแดงเมอตองการหยดน าเสนอ ตามภาพขางตน

การเขยนโปรแกรม Scratch ส าหรบมอใหม ลองอานบลอกนกอนนะครบ ท าความรจกกบ Scratch และ เรมตนงายๆ กบ Scratch การสอนเขยนโปรแกรมดวย Scratch ใหเดกๆ หรอมอใหมฝกเขยนโปรแกรม ท าไดหลายวธ แตในทน เราจะเรยนร Scratch ผานโปรเจกตางๆ ทมากบโปรแกรม Scratch ซงมมากมาย และหลากหลายหมวดหม และคอนขางแนนอนวา ผเรยนนาจะมโปรเจกเหลาน เมอ ดาวนโหลด โปรแกรม Scratch มาเปนทเรยบรอยแลว

Page 14: การใช้โปรแกรม Scratch.docx

การศกษาโปรเจกตางๆ ของคนอน ท าใหเราเขาถงความคด หรอมมมองใหมๆ ของโปรเจกนนๆ ศกษาการเขยนโปรแกรม เขยนสครปตอยางไร ใหบรรลตามสงทคด สงทตองการ เมอเรามพนฐานของโปรเจกนนๆ แลว การตอยอดโปรเจก ดเหมอนจะเปนกาวแรกทจะลองเขยนโปรแกรมใหท างานตอไดจรง กอนทเราจะเรมโปรเจกใหมเปนของเราเอง หลกการเขยนโปรแกรมใน Scratch ตอนท 1 Posted on June 7, 2011by คดสรางสรรค หลกการทใชในการเขยนโปรแกรมมมากมาย แต Scratch น ามาใชไมทงหมดแตอาจมเพมเตมไดในเวอรชนตอๆไป หลกการแรกเปรยบเหมอนค ากลาวของ Albert Einstein “Everything should be made as simple as possible, but not simpler.” Albert Einstein ในการเขยนโปรแกรม งาน(ใหญ)ควรแบงเปนงานยอยๆ แตไมควรยอยเกนไป เนองจากคอมพวเตอรมไดฉลาดสามารถคดขนตอนการท างานไดเอง (ในอนาคตกไมแน) อกทงงานเดยวกนยงอาจท าไดหลายวธแตกตางกน ดงนนเปนหนาทของโปรแกรมเมอรทตองออกแบบการท างาน แบงงาน และล าดบขนตอนการท างาน (algorithm) ใหกบคอมพวเตอร ยกตวอยางเชนในโปรเจก Aquarium เราตองการใหปลาวายน าไปมาดเปนธรรมชาตอยในตปลาซงกคอกรอบของฉากเวทนนเอง เราสามารถแบงเปนงานยอยได คอ การเคลอนทของปลาไปเรอยๆ การสะทอนกลบทศเมอเจอผนงตปลา การเปลยนทศเองในแตละชวงขณะหนงเพอใหดเปนธรรมชาต ตวอยางนคอนขางงาย แตเตมไปดวยหลกการในการเขยนโปรแกรม นนคอ

Page 15: การใช้โปรแกรม Scratch.docx

การท างานถกแบงเปนขนตอนหรอชดค าสง (sequence) เชนชดค าสงท 1. เคลอนทไปขางหนา 1 หนวย 2. ตรวจสอบดวาชนผนงหรอไม ถาชนใหสะทอนกลบ การทปลาตองเคลอนทไปเรอยๆ พรอมทงตรวจสอบดวาชนผนงหรอไม เปนหลกการท างานแบบซ าๆหรอวนซ า (iteration, looping) ของชดค าสงชดหนง (repeating a sequence of instructions) ในชดค าสงนยงมการตรวจสอบขอเทจจรง (conditional statement) ดวยวาปลาชนผนงตหรอไม ซงอาศยตรรกะ (logic) ถาจรง (true) กอาจจะท างานอยางหนง ถาเทจ(false) กอาจจะท างานอกอยางหนง การเกดเหตการณหนง (event) ท าใหตองท างานอยางหนง (event handling) ในตวอยางน จะเหนวาในชวงขณะหนง ปลามโอกาศทจะเปลยนทศทาง นนกคอเหตการณทถกก าหนดจากเวลา (time event) คอทกๆ 1 วนาท ปลาจะสมโอกาสวาควรจะเปลยนทศหรอไม นนคอการตอบสนองตอเหตการณ (event handling) การเคลอนทของปลาไปเรอยๆ และการเปลยนทศของปลาทกๆ 1 วนาทนนท างานแยกจากกนแตเกดขนพรอมกน ซงกคอหลกการท างานคขนาน (parallel execution, threading) ทใหโปรแกรมสครปตท างานพรอมๆกนหลายๆสครปต หลกการเขยนโปรแกรมใน Scratch ตอนท 2 ตวอยางการเลาเรองใน MadLibs กมหลกการเขยนโปรแกรมทส าคญดงน

Page 16: การใช้โปรแกรม Scratch.docx

การโตตอบแบบทนท (real-time interaction) เปนการโตตอบระหวางผใชกบโปรแกรมผานการรบรไดหลายทางเชน เมาส คยบอรด เสยง เปนตน ในโปรเจกนผด าเนนเรองมการถาม และใหผใชงานตอบผานคยบอรด ตวแปร (variables) มหนาทเกบคาทตองการน ามาใชใหมผานการเรยกชอของตวแปร เชนโปรเจกนสรางตวแปรมาเกบคาของค าตอบทไดจากผใชงาน และน ากลบมาใชใหมขณะเลาเรอง ตวแปรยงระบตอนสรางไดวาเปนตวแปรสวนตว (private variables) ใชไดกบตวละครทสรางมนขนมาเทานน หรอ ตวแปรสวนรวม (global variables) สามารถใชไดกบทกตวละคร เปนการแชรขอมลระหวางกน ตวแปรทใชเกบค าตอบนนเปนตวแปรสวนรวมซงวาฬสองตวเอาไปใชไดขณะเลาเรอง การสงตอการท างาน (synchronization) ระหวางตวละคร ใชวธการสงรหสสญญาณออกไป (broadcast) โดยอาศยชอของรหส (event) ทแตกตางเปนตวสงไมใหระหวางกน ตวละครหรอฉากเวททรอฟงรหสทมนสนใจ (event listening) กจะรวามนควรจะเรมท างานตอหรอยง เชนโปรเจกน ผด าเนนเรองไดถามตอบกบผใชเสรจแลว กสงสญญาณใหเรมเลาเรองได (“start story”) วาฬสองตวพรอมทงฉากเวทสนใจในรหสนกตางเรมตนท างานของตนเอง จากนนเปนการเลาเรองระหวางวาฬสองตว วาฬทงสองตวจงผลดกนรบสงรหสเพอใหการเลาเรองตอเนองกนอยางราบรนนนเอง

หลกการเขยนโปรแกรมใน Scratch ตอนท 3

Scratch ไมไดใชการเขยนโปรแกรมเชงวตถ (Object oriented) อยางจรงจง แตโปรเจก GravityBlocks สะทอนการใชหลกการเขยนโปรแกรมเชงวตถอยบาง มาลองดกน การเขยนโปรแกรมเชงวตถ (Object oriented) เปนการมองแบบรวมศนยอยทตววตถ (object) คอสนใจวาวตถทจะสรางนนมองคประกอบหรอคณสมบตอะไรบาง และท างานอะไรไดบาง โดยทวไปการเขยนโปรแกรมเชงวตถนนเปนการสรางวตถหลากหลายชนดหลายวตถใหท างานรวมกน โตตอบกน สงขอมลระหวางกน ตามล าดบขนตอนทออกแบบไวจนไดผลลพททตองการ ขนแรกของการเขยนโปรแกรมเชงวตถคอการสรางตนแบบหรอแผนพมพเขยวของวตถ (class) ซงประกอบดวยคณสมบตหรอขอมล (properties, attributes, data แลวแตจะเรยก) ของวตถ และสงทมนสามารถท าได (function, method)

Page 17: การใช้โปรแกรม Scratch.docx

การเขยนโปรแกรมเชงวตถใน Scratch ตวละครหนงตวกคอหนงวตถ ดงนนขอมลพนฐานของวตถกไดจากตวละคร เชนชอตวละคร เครองแตงกาย เสยง ต าแหนงบนเวท ทศทางการเคลอนท ความสามารถในการหมน การกลบทศ นอกจากนนถาเราสรางตวแปรสวนตวกเขาขายเปนขอมลของวตถ การเขยนสครปตกคอการเขยน method ใหกบวตถนนเอง การสรางบลอกสตวแรกในโปรเจก GravityBlocks เปนการสรางตนแบบ (class) ขนมา นนกคอ สรางบลอกทมสองส สบานเยนเปนแถบบางๆอยดานบน สฟาออนในสวนทเหลอของบลอก ต าแหนงของบลอกบนเวท สวนการท างานของบลอก คอการเคลอนทลง การหยดการเคลอนท เมอมแผนพมพเขยวแลว กสามารถสรางวตถออกมาได (instantiation) อกหลายๆตว เชนในโปรเจก GravityBlocks เราสรางตนแบบบลอก (เปนวตถดวย) เฉพาะตวแรกตวเดยว จากนนท าซ าเพอสรางบลอกอนๆอก 14 บลอก วตถทไดจากตนแบบเดยวกนจะมเอกลกษณของมนเอง ถงแมวาตอนสรางวตถ ทกตวจะเรมตนดวยขอมลและหนาทเหมอนกนหมด แตหลงจากนนวตถจะเปนตวของตวเอง ท าอะไรกไดทมนสามารถท าไดโดยไมตองท าเหมอนตวอน เปลยนคณสมบตกได เชน บางบลอกก าลงเคลอนท บางบลอกอาจอยนงๆบนพนหรอบนบลอกอน เมอบลอกถกลากหรอเคลอนทลง ต าแหนงของมนกจะเปลยนตามไปดวย

หลกการเขยนโปรแกรมใน Scratch ตอนท 4 ในมมมองหนง การเขยนโปรแกรม คอการบงคบทศทางของขอมล ทเราปอนเขาไปในโปรแกรม ผานกระบวนการตางๆ จนไดขอมลใหมออกมา ขอมลทเขาและออกยงอาจเกดขน ขณะทโปรแกรมท างาน ตวอยางเชน โปรแกรมฟงเพลง ผใชเลอกเพลงทอยากฟง (ขอมลเขา ชอเพลง) โปรแกรมกเปดเพลงนนใหฟง (ขอมลออก เสยง) ขณะฟงเพลง ผฟงสามารถลดเสยง หรอหยดเพลงชวขณะไดเปนตน

ขอมลทรบเขามา อาจมการพกตวอยในตวแปร (variables) จากนนสามารถปรบเปลยนขอมลใหทนสมยได สามารถสรางชออางองทมความหมายใหกบขอมลได เรยกใชขอมลผานชอทตงใหมได และสามารถสงตอขอมล จากงานหนงสอกงานหนงได กลไกทท าใหโปรแกรมท างานไดคอ การควบคมล าดบการท างานและการสงผานขอมลระหวางงาน (control flow)

Page 18: การใช้โปรแกรม Scratch.docx

มาลองดตวอยางในโปรเจก SimpleCircuit เพอดวธการควบคม ใหงานและขอมลลนไหลในโปรแกรมไดถกตองตามทตองการ ใน Scratch มการควบคมการท างานอย 3 แบบ คอ 1. การท างานเมอมเหตการณหนงมากระตน 2. การท างานซ าๆ และ 3. การท างานแบบมเงอนไข

ตงแตเรมจนจบโปรแกรม มเหตการณเกดขนมากมายหลายแบบ เชนในสครปตของเวท (ซายมอ) เมอผใชคลกธงเขยว สครปตทรบเหตการณนกเรมตนท างาน และระหวางโปรแกรมท างาน ผใชยงโตตอบกบโปรแกรมได โดยกดแปนเวนวรรค (space bar) ท าใหเวทสบเปลยนพนฉากหลง เปลยนหนาตาของแผงวงจร อกตวอยางหนงคอ การสงรหสจากสครปตหนง ท าใหอกสครปตทรบรหสนท างาน

การควบคมการท างานซ า มหลายรปแบบ เชน แบบรจ านวนรอบแนนอน (บลอก repeat) แบบไมรจ านวนรอบแนนอน แตอาศยเงอนไขมาชวยในการหยด (บลอก forever if) และแบบท าซ าจนกวาจะจบโปรแกรม ตวอยางเชน สครปต Stage และ Bulb จะท างานวนซ าไปเรอยๆ จนกวาจะจบโปรแกรม โดยน าสงทตองการท าซ ามาใสในบลอก forever

Page 19: การใช้โปรแกรม Scratch.docx

การท างานทขนกบเงอนไข กมหลายแบบคอ จะท างานถาเงอนไขเปนจรงเทานน (บลอก if) ท างานไดทงกรณทเงอนไขเปนจรงหรอเทจ (บลอก if else) และสดทายคอการน าเงอนไขมาซอนกน โดยน าเงอนไขหนงไปซอนในอกเงอนไขหนง ซงจะซอนกนกชนกได แตมากไปกอาจท าใหสครปตดสบสนได ในสครปต Bulb จะเหนการซอนกนของเงอนไข โดยเชกทเงอนไขแรกกอน คอแปนเวนวรรคถดกดหรอไม ถาใชจะเปลยนชด แตถาไมใชกจะพบกบอกเงอนไขหนง ทเชกการครบวงจร เพอจะตดสนใจวาจะเปดหรอปดหลอดไฟ

หลกการเขยนโปรแกรมใน Scratch ตอนท 5 การเขยนโปรแกรม คงหนไมพนการค านวณและการประมวลผลขอมล โดยขอมลทสามารถน ามาค านวณได คอ ตวเลข ตวอกษร และ ตรรกะ (ถก หรอ ผด) ซงพบเหนไดเกอบจะทกโปรเจกใน Scratch

การค านวณตวเลขทวไป กมการบวก (+) ลบ (-) คณ (*) หาร (/) นอกจากนนยงม การสมคา การใชฟงกชนคณตศาสตรอกมากมาย

สวนการจดการขอมลตวอกษรนน สามารถรวมสองค าใหเปนค าเดยวกนได (join) หรอดงอกษรใดอกษรหนงมาจากค าได (letter of ) นอกจากนนยงนบจ านวนอกษรทงหมดในค าได (length of)

Page 20: การใช้โปรแกรม Scratch.docx

ส าหรบตรรกะทใชในเงอนไข หาไดจากการเปรยบเทยบตวเลข เชน การเปรยบเทยบ มากกวา (>) นอยกวา (<) หรอ เทากบ (=) ซงจะคนคาเปน จรงหรอเทจ เมอมหลายเงอนไข กยงสามารถประมวลผลระหวางเงอนไขไดจาก ตรรกะและ (and) ตรรกะหรอ (or) ตรรกะไม (not)

สงส าคญอยางหนงในการค านวณทกลาวมา คอล าดบการค านวณ ตวอยางเชน ถาตองการค านวณ 3 * 5 -4 /2 ในโปรแกรมภาษาอน จะค านวณตามกฎล าดบการค านวณของภาษานนๆ เพอลดความสบสน ใน Scratch จะท าการค านวณไดทละค เหมอนการใสวงเลบ คนเขยนโปรแกรมตองรวา ตองการค านวณอยางไร เพราะจะไดผลตางกน เชน ((3*5)-(4/2)) = 13 หรอ ((3 * (5 – 4)) /2) = 1.5 เปนตน

มาดตวอยาง GardenSecret ในสครปตของดอกไม 1 ซงจะเหนบลอกค านวณสเขยวออน อยหลายบลอก เชน บลอกเงอนไข (flower = 1) ในบลอกถา (if) การเลนเอฟเฟคส ความสวาง ขนาดของดอกไมน ตางใชการค านวณเพอสรางความหลากหลาย เชน สเปลยนโดยน าเอาต าแหนง x ของเมาส มาหารดวย 5 คาความสวาง เกดจากการสม สวนการเปลยนขนาด น าเอาต าแหนง y ของเมาส บวกดวย 220 แลวหารดวย 3 สดทายบวกกบคาสม

Page 21: การใช้โปรแกรม Scratch.docx

สงเกตการใชบลอกซอนในบลอก เสมอนการใสวงเลบ นนคอ (((mouse y + 220) / 3) + random)

ในบลอกท าซ า (repeat) หาจ านวนครง ในการหมนใหได 1 รอบ ดวยการค านวณ (360 / 15)

หลกการเขยนโปรแกรมใน Scratch ตอนท 6

การออกแบบหนาตาโปรแกรม (user interface) เปนเรองส าคญทไมควรมองขาม โดยเฉพาะโปรแกรมทตองการโตตอบกบผใช แมเปนโปรแกรมเลกๆ แตอาจใชงานยาก ถาหนาตาโปรแกรมไมสอถงการใชงาน หรอไมสามารถดงศกยภาพของโปรแกรมออกมาได เพราะไมมชองทางใหตดตอ

Scratch สามารถสรางชองทางการตดตอ ระหวางผใช กบโปรแกรมไดหลายวธ ลองมาดตวอยางในโปรเจก PianoMachine ขอความบนเวท เปนการสอสารตรงไปยงผใช สวนใหญเปนค าสง หรอวธใชงาน ตวแปรเมอสรางแลว สามารถแสดงบนเวทได แตถาตองการใหผใชปรบเปลยนมนได ขณะทโปรแกรมท างาน ท าไดโดยแสดงตวแปรในรปแบบสไลด เหมอนตวแปรความเรว (speed)

การสรางปมค าสง ท าไดโดยการสรางตวละคร ทรบการคลกเมาสจากผใช เพอใหโปรแกรมท างาน เชน เมอคลกทคยเปยโนใดๆ กจะมเสยงออกมาจากคยนนๆ แตการสรางตวละครใหเปนปมค าสงโดยเฉพาะกม เชน ปมเพมหรอลดจ านวนลกบอล และปมการสะทอนของลก

Page 22: การใช้โปรแกรม Scratch.docx

บอล นอกจากนน โปรแกรมยงรบค าสงจากผใชผานการกดคยตางๆ บนคยบอรด เชน a-z 0-9 คยลกศร และคยเวนวรรค (space bar)

หลกการเขยนโปรแกรมใน Scratch ตอนท 7

โดยทวไป โปรแกรมมกประกอบไปดวยงานยอย (sub-program) หลายๆ งานเขาดวยกน ซงงานยอยในโปรแกรม มกเรยกไดหลายแบบตามแตละบรบท ค าทนาจะใชเรยกทวไป คอฟงกชน (function) เปนการท างานทรบขอมลเขาไป แลวท างานตามขนตอนทก าหนดไว สดทายใหผลลพธออกมา ในบางโปรแกรมภาษา อาจไดยนค าวา โปรซเจอร (procedure) ซงคลายฟงกชน แตไมคนผลลพธออกมาใหน าไปใชตอ สวนในการเขยนโปรแกรมเชงวตถ (object oriented) มกใช เมธเธด (method) เปนฟงกชนทผกตดกบวตถ ถาจะเรยกใชงาน ตองเรยกผานวตถนนๆ

ทกโปรแกรมจะตองมฟงกชนหลก (main function) เปนจดเรมตนของโปรแกรม ทสามารถรบขอมลเขามาใชภายในโปรแกรม การจดล าดบการท างานของโปรแกรมจะอยภายในฟงกชนหลก (work flow) โดยการเรยกใชและสงผานขอมลใหฟงกชนตางๆ ท างาน และสดทายสามารถสงขอมล ออกจากโปรแกรมได

ใน Scratch หลกการของฟงกชนนนไมสมบรณ โปรแกรมทเขยนดวย Scratch จะประกอบดวยสครปตหลายๆ สครปต ในแตละตวละคร แตละสครปตถกมองวาเปนการท างานเฉพาะอยาง ซงคลายกบหนาทของฟงกชน ปกตแลว ฟงกชนตองมชอ สามารถรบหรอคนขอมลได และจะท างานเมอถกเรยกชอฟงกชน พรอมกบขอมลเขา (function call) แตสครปตใน Scratch ไมมชอ รบหรอสงขอมลไมได

อยางไรกตาม สงท Scratch สามารถท าไดใกลเคยงคอ ใชการสงรหส (broadcast) แทนการเรยกฟงกชน และการใชตวแปรโกลบอล (global variable) ททกตวละครสามารถเขาถงและใชงานได เพอรบสงขอมลระหวางสครปต

ฟงกชนหลกของ Scratch คอสครปตทท างานเมอธงเขยวถกคลก สงเกตวามนอาจมสครปตแบบนไดหลายสครปต ทงนเพราะ Scratch ใชหลกการท างานแบบคขนาน (parallel) ซงแตละตวละครท างานพรอมกนได และในตวละครหนงๆ ยงท างานไดหลายอยางพรอมกนอกดวย

Page 23: การใช้โปรแกรม Scratch.docx

ลองมาดตวอยางการใชฟงกชนในโปรเจก FishChomp

ในตวอยางนทง ปลาทอง 1 (goldfish1) และ ปลาตวใหญ (hungry fish) เรมท างานพรอมกนในสครปตหลก เมอธงเขยวถกคลก ปลาทอง 1 ท างานในสครปตหลกอยสครปตเดยวตลอดโปรแกรม แตปลาตวใหญยงมอกสครปตหนง ทเปนฟงกชนรอการเรยกใชงาน ระหวางเลนเกมน ปลาทอง 1 จะสงรหส “got-me” ออกไป ถาถกปลาตวใหญกน และเมอปลาตวใหญรบรหส “got-me” กจะแสดงแอนเมชนการกนพรอมเสยง “chomp” งานหลกของการสงรหส (broadcast) คอการเชอมตอการท างานใหสอดคลองกน หมายความวา ณ เวลาทปลาทอง 1 ถกกน กสงรหสสญญาณ บอกปลาตวใหญใหแสดงทาทางการกนพรอมเสยงการเคยวดวย เพอใหเกมดสมจรง

แตในมมมองของการใชฟงกชน การสงรหสคอ การเรยกชอฟงกชน got-me ใหท างาน (function call) สครปตทรบรหส got-me เปรยบเสมอนฟงกชนทมชอวา got-me ซงอาจเปนสครปตในตวละครเดยวกนกได หรอ ตวละครอนกได เชนในกรณน เปนสครปตหนงในปลาตวใหญ

เรองของฟงกชนใน Scratch ยงมตอในคราวหนา

Page 24: การใช้โปรแกรม Scratch.docx

หลกการเขยนโปรแกรมใน Scratch ตอนท 8 ฟงกชนมการท างานทชดเจน รวาตองการใชขอมลใดบาง และจะคนขอมลใดบางออกมา ท

ส าคญเมอใสขอมลเดมเขาไปแลว ตองไดผลลพธเหมอนเดมทกครงจงจะเปนฟงกชน ลองสงเกตด บลอกในหมวด Operator เชน บวก ลบ คณ หาร ฯลฯ เปนฟงกชนทางคณตศาสตร แตมอย

หนงบลอกในหมวดนทไมใชฟงกชน รมยวาคอบลอกอะไร ค าตอบหาไมยากเลย

การใชฟงกชนท าใหโปรแกรมสนลง เนองจากงานบางอยางอาจเกดขนหลายครง แตถางานนนอยในรปของฟงกชน กเขยนขนมาเพยงครงเดยว แลวใชวธเรยกฟงกชนแทน นอกจากนน โปรแกรมยงดงายขน การแกไขปรบปรงกงายขน (กโปรแกรมมนสนลง) เพราะแกไขทฟงกชนทเดยว

รปแบบฟงกชนใน Scratch มหลากหลาย และซบซอนกวาทคด มาลองดตวอยางใน Delicious Fish เมธเธด (method) คอฟงกชนทใชเฉพาะกบตวละครตวใดตวหนง (object function) คลายกบการเขยนโปรแกรมเชงวตถ ปกตเมธเธดของวตถใดจะท างาน เมอมการสงสาร (massage) มายงวตถนนโดยตรง ใน Scratch สามารถสรางสครปตใหเปนเมธเธดได โดยสรางรหสใหกบวตถนนโดยเฉพาะ เชน ปลาทองเมอถกกน จะสงรหส “got-me” ออกไป แตมเฉพาะปลาตวใหญเทานนทรบรหสน อาจพดไดวา สครปตทรบรหส “got-me” ของปลาตวใหญ เปนเมธเธดหรอฟงกชนของวตถ นอกจาก “got-me” แลว ยงมรหสทท าหนาทเหมอนกนอก คอ “got 1″ กบ “oh-no”

การสงและรบรหสเปนรปแบบหนงของฟงกชนทขนกบเหตการณ การสงรหสเปนเหตการณแบบหนง (event) และเมอมฟงกชนใดทสนใจรหสน (event listening) ไดรบรหสน กจะเรมท างานเพอตอบสนองกบเหตการณทเกดขน (response function) ตวอยางเชน เมอเรมตนเกม ตวควบคมเกมจะสงรหส “setup” ใหปลาทกตวเตรยมพรอมส าหรบการเลน ปลาทกตวกตอบสนองรหสนดวยการซอนตว (hide) เทานนเอง แตเมอเขาสแตละระดบเกม ปลาจะไดรบรหส “level1″ ตามมาดวย “level2″ จนกระทงจบเกม เมอไดรบรหส “game-over” ปลาแตละตวจะตอบสนองตางกนไป

Page 25: การใช้โปรแกรม Scratch.docx

การใชการรบสงรหส เปนการประสานงานใหสอดคลองกนระหวางตวละคร แตฟงกชนทขนกบเหตการณ ยงมอกหลายแบบ ทไมขนกบรหส เชน ขนกบเวลา (time event) ในเกมทมการควบคมเวลา เวลาหมดถอเปนเหตการณหนง ทท าใหเกดการเปลยนระดบเกม หรอการจบเกม นอกจากนน ผเลนยงเปนคนท าใหเกดเหตการณตางๆ อก เชน การใชเมาสลากไปมา (mouse event) ท าใหปลาตวใหญเคลอนทตามเมาส

เมอปลาตวใหญกนปลาแตละชนดได มนจะรบรหสจากปลาทงสามชนด และตองแสดงแอนเมชนการเคยวพรอมเสยงประกอบ แตถาตองเขยนสครปตแสดงแอนเมชนทเหมอนกนหมด ส าหรบปลาทงสามชนด จะท าใหสครปตยาวขน และในอนาคตถาตองการเพมปลาชนดอนอก กตองเขยนสครปตเหมอนกนอก ซงไมใชวธการเขยนโปรแกรมทด ดงนนในสครปตปลาตวใหญ จงน าสวนทเปนแอนเมชน (chomp) ออกมาเปนฟงกชนตางหาก ซงเปนฟงกชนทถกเรยกใชภายในสครปตปลาตวใหญเทานน เปนฟงกชนสวนตว (private function) ดวยวธน ฟงกชน oh-on, got 1, got-me จะเรยกใชฟงกชน chomp เพอแสดงแอนเมชนแทน ซงเปนการเรยกใชฟงกชนภายในฟงกชนอกทหนง

เมอปลาแตละชนดถกกน คะแนนจะเปลยนแปลง อาจขนหรอลงกได และจ านวนปลาแตละชนดทถกกนกเพมขนดวย การ

Page 26: การใช้โปรแกรม Scratch.docx

ทจะตามการเปลยนแปลงนได ตองสรางตวแปรโกลบอล (Score, goldfish, goldfish1, greenfish) มาเกบคาเหลานไว