(อาจารย์สุธิรา) สวัสดีค่ะ ได้ยินนะคะ เดี๋ยวเราจะมาทำต่อจากสัปดาห์ที่แล้ว สัปดาห์ที่แล้วเราลงตัวเกมเราไปแค่ 1 ตัวแต่ความจริงโดนเกมเราที่จะใช้นี่เมื่อคืนถ้าสมมติน้องเดินนะคะ มันก็จะมีหลายทางรูปเล็ก ๆ อย่างนี้เขาก็จะเปลี่ยนก็เลยให้ไปค้น Sprite sheet ทุกคนน่าจะมีแล้วใครยังไม่มีภาพแบบนี้ยกมือนะคะ ที่นี้โฟลเดอร์อย่าลืมอย่าลืมมันจะต้องอยู่ในโฟลเดอร์ที่ไหนฟรีของเรานะแล้วก็โฟลเดอร์ชื่อที่เป็นชื่อของเด็ก ๆ นะคะ เพราะว่าไฟล์ pygame เกมที่เรา coding จะอยู่ในนี้ด้วยเหมือนกัน ก็คือตำแหน่งของไฟล์ที่เราจะใช้โค้ดกับรูปภาพมันจะต้องอยู่ในที่เก็บเดียวกัน โฟลเดอร์เดียวกัน พร้อมยังถ้าพร้อมแล้วสิ่งแรกที่เราจะทำนะคะ ให้เปิด sublime เหมือนเดิม เปิดไฟล์ sublime text Find some text เก่าเราขึ้นมาเลยใครอยู่ไหน เปิด sublime แล้วนะคะ แล้ว... ทีนี้เด็ก ๆ ดูนะคะ ข้อแรกสิ่งที่เราจะทำ ก็คือเราจะไป Import module ขึ้นมาอีก 1 ตัวนะ คือ ตอนตอนเดิมนี่โมดูลที่เรา Import ก็คือโมดูลภายเกมแต่ทีนี้มีเพิ่มมาอีก 1 ตัวนะคะ แล้วลำดับที่ 2 เราก็จะมาตั้งค่าพอเราไป Import module ใหม่มาเราก็ต้องมาตั้งค่าเพื่อจะเรียกใช้ไอ้โมดูลตัวใหม่เรานี่ จากนั้นเราก็ไปกำหนดการแสดงผลไปโมดูลตัวใหม่นี้ว่ามันจะแสดงผลในลักษณะนะคะ มาดูโค้ดกันคำสั่งImport pygame ใช่ไหมเรา Import pygame แล้วเราคั่นแล้วคือเราไม่ต้องไปพิมพ์คำว่า Import ใหม่คั่นด้วยเครื่องหมายโคลอนแล้วก็ตามด้วย sys sys มาจาก System ตอนนี้ก็คือเราจะ Import module ที่ชื่อว่าSystem นะคะ ตัวนี้นะคะ สีไม่ได้ ไฟไม่กะพริบ ไม่รู้ทำไม สี ๆ ๆ เราจะ Import module ที่ชื่อว่า sys หรือ System นะ ทีนี้นะคะ วันนี้จะไว้เมื่อไหร่มันจะช่วยในเรื่องของเวลา system ก็คือตัวระบบแล้วนี่เห็นไหมตั้ง clock Top = พาย game.comจะกำหนดระยะเวลาแล้วพอในส่วนของการแสดงผลเรียกใช้ตัวแปรที่ชื่อเพราะเราสร้างตัวแปรเพื่อเก็บเวลานี้ clock.tick 60 คือ ให้ระยะเวลาในการทำงานมันอยู่ที่ประมาณ 60นะคะ ในคอมพิวเตอร์ไม่ใช่ 60 นาทีนะ 60 วินาทีเด็ก ๆ เพราะฉะนั้นเปิด sublime เราขึ้นมานะคะ แล้วไปที่ตำแหน่ง import ก็คือตำแหน่งแรกใช่ไหมบรรทัดนี้นะไซส์อะไรคะ โคลอนใช่ไหมคะ แล้วตามด้วยโดนที่ชื่อว่า system หรือ s-y-s นะคะ เพราะคำสั่ง Import นะคะ Import module นี่ จะอยู่ที่บรรทัดแรกเสมอเลย เพราะการทำงานของโปรแกรมนี่คือมันจะอ่านจากบนลงหน้า เพราะฉะนั้น เราอยากให้มันไปทำอะไรก่อนเราต้องเอามันไว้ข้างบนว่าอย่างนั้นเถอะ เมื่อได้โมดูลนี้แล้วส่วนต่อมาจะอยู่ที่ส่วนนี้นะคะ กำหนดค่าทั่วไปตัวที่ในหมายเลข 2 เด็ก ๆ เห็นนะ ก็คือเพิ่ม... เพิ่ม Clock = นะคะ = นะคะ ตรงนี้ pygame.time เราจะเรียกใช้ไลบรารีพามนั่นเองนะคะ ฉะนั้นเราก็เลยต้องเปิด module System ขึ้นมานะคะ clock = pygame.time.คอมในวงเล็บปั๊มนะคะ ในซับลามจะอยู่บรรทัดที่ต่อจากอะไรดูดี ๆ คลาย game.net ตำแหน่งของการตั้งค่าทั่วไปนะคะ ทำไมมันลบล่ะนะคะ ตรงส่วนนี้นะคะ ตรงส่วนนี้จะแก้เป็น... จะเตือนเด็ก ๆ เสมอว่าให้เราใส่ # เพื่ออธิบายว่าตรง coding นี้นะคะ เราใช้ทำอะไรอ่ะเราจะได้รู้ออกคำสั่งนี่มันเป็นการสั่งให้นำเข้ามาโมดูลที่เรานำเข้าก็คือ พายเจมส์แล้วก็ฟิน2 ตัวนี้นั่นเองเสร็จแล้วในส่วนของการตั้งค่าทั่วไปคือพาย game.net นี่ก็คือเรียกใช้ตัวนี้ pygame และตัวนึงนะคะ อันดับแรกประกาศตัวแปรชื่อว่า clock C นะคะ พิมพ์ด้วย c-l-o-c-k clock ที่แปลว่านาฬิกาน่ะลูก วิธีการประกาศตัวแปร คือ ชื่อตัวแปรตามด้วยเครื่องหมายเท่ากับ วรรคเครื่องหมายเท่ากับวรรคนะคะ กด Space Bar ใส่เครื่องหมายเท่ากับแล้วก็กด Space Bar อีก 1 ครั้งแล้วก็พิมพ์ไลบราร ี่pygame.time คลิกปุ๊บเลือก pygame.time บอกแล้วว่าเราจะไม่พิมพ์ยาวเพราะมันจะขึ้นโค้ดที่เราเขียนไปแล้วหรือตัวอะไรก็แล้วแต่ เราก็มาเลือกเอานะคะ นะคะ .t-i-m-e Time แล้วก็ .clock อีกทีหนึ่ง เลือก Clock นะคะ มันจะช่วยให้เราไม่ไปพิมพ์ผิดบอกให้รู้ว่าเราจะใช้ตัวแปรที่ว่า clock ตัวนี้แล้วก็ใส่วงเล็บ มันจะไม่มีปัญหาว่าพิมพ์ตัวเป็นตัวเองอะไรนี่ เพราะบางทีเด็ก ๆ มองแล้วดันเห็นไม่ชัดไม่ขยายนะคะ ตรงนี้คือส่วนของการตั้งค่าทั่วไป ใครยังไม่เสร็จบรรทัดนี้พิมพ์ให้เสร็จนะคะ ไม่อย่างนั้นไปขั้นตอนต่อไปไม่ได้นะคะ ตอนนี้เราเองถอดแล้วแล้วเรามาตั้งค่ากำหนดค่าให้มันก็คือให้เป็นตัวแปรที่ชื่อว่า clock ทีนี้เราจะไปเรียกใช้งาน เราจะไปที่ตำแหน่งท้าย ๆ แสดงผล จะอยู่ประมาณตรง... เดี๋ยวนะเอาไปไว้ท้าย ๆ ก่อน นี่ ๆ ๆ แถว ๆ พวกนี้นี่แถว ๆ screen.blit อะไรพวกนี้นะเด็ก ๆ ใส่ไอ้นี่ให้ก่อนนะคะ ใส่ก่อน ส่วนของการแสดงผลนะ คั่นส่วนไว้จะได้รู้ สังเกตตรงการแสดงผลเรา เพราะ screen.blit ก็คือให้มันแสดงพื้นหลังเรานะคะ เอาจริงตัวเดียวก็ได้นี่ ลบตัวนี้ได้เลยนะนี่ เดี๋ยวค่อยมาลบนะคะ ไล่ลบ เพราะฉะนั้น คำสั่งที่ 3 ก็คือให้... เดี๋ยวนะ เราจะนี่นะคะ ตรงส่วนของการแสดงผลที่บอก ก็คือเราจะเรียกตัวแปร clock นะคะ clock.tick นี่ แล้วระบุระบุว่าเวลาเวลาที่ให้มันทำงานอยู่ที่ประมาณวินาทีนั้นตำแหน่งก็จะอยู่ตรงเมื่อกี้ที่มาร์กไว้นะ การแสดงผล ก็คือตรงนี้นะคะ อย่ากด Space Bar กดอะไรคะ กด Tab ให้ไปตรงกับตำแหน่ง screen บอกแล้วนะคะ เพราะบางคนจะติด ก็เห็นย่อหน้าที่ 2 มันวะเนี่ยไปซะปลามันจะไม่ค่อยใช้วรรคใช่ว่าจะใช้เฉพาะวรรคระหว่างคำ แต่ถ้าทำย่อหน้านี่เราจะใช้ Tab นะคะ เราก็เรียกใช้ clock พิมพ์ c ปุ๊บเลือก clock ของเรานะคะ แล้วก็ตามด้วย . memory ไม่ดีนะคะ จำไม่ได้ค่ะ ขอบอก สมงสมองไปหมดอากาศเย็น สกลนครหนาวนะคะ ได้บอกเลยว่าหนาว เด็ก ๆ พากันไม่มานี่ t-i tick นี่เป็นคำสั่งใน library นั่นเองนะคะ แล้วก็ตามด้วยวงเล็บใส่ 60 ตัวเดิมนะ 60เดี๋ยวตัวเลขเราก็ได้ให้นึกถึงนะ ถ้าเราลองรันโปรแกรมแล้วตัวเกมเรามันวิ่งไวเกินไปเราก็เพิ่มเวลาให้มัน แต่ถ้ามันวิ่งช้า 60 แล้วมันช้า เราก็ลดเวลาลงนะคะ ก็คือคิดถึงน่ะเวลา 1 วิ 2 วิ 3 วิ คือ เพิ่มใช่ไหมวันหนึ่งมันเร็วไปเราก็ต้องเพิ่มให้มันช้าก็ต้องเพิ่มแต่ถ้ามันช้าเราต้องลดตัวเลขลงนะคะหลักการ นี่คือเราจะได้ run นะคะ ยังไม่ run นะคะ เพราะตัวที่เราจะรันถ้าเรากดมันก็จะไม่แสดงผลอะไรทั้งสิ้นนะคะ ยังไม่กด run นะคะ ไปทำต่อเรายังเขียนโค้ดไม่เสร็จ อย่าลืมว่าโค้ชมันไม่ได้มีแค่ 3 บรรทัดแน่นอนนะคะ กดผิดอันอีก ไม่ save จะเอาตัวที่ออกชี้ออก ไปท ลำดับต่อี่ถัดไปนะค ะมานะคะ เรากำหนดไอ้นี่ไปเรียบร้อยแล้ว ข้ามนะคะ เราตั้งค่าหน้าจอเกมแล้วตั้งไปแล้ว set.mode หรือ เราจะมาทำ loop นะคะ ทำ loop ให้เขาเราทำไปแล้ว จะข้ามส่วนนี้ เรามาทำต่อจากอันเดิมนะ นี่ ๆ เราจะใส่ Moving sprinte เข้าไปได้นี่นะคะ ต้องไปตรงนี้ก่อน เราจะมาสร้าง Class ให้ก่อนนะคะ สร้าง class เพื่อที่จะทำอะไรจำได้นะ ตัวเกมบอกแล้วในผลต่อเราใส่เข้าไปแค่ตัวเดียวแต่ทีนี้เราจะเอาน้องมาทั้งเซ็ตเลย น้องน้องการ์ตูนเราน่ะมาทั้งเซ็ตเลยนะคะ เพราะฉะนั้น เราจะต้องสร้าง Class ให้น้อง เพื่อจะเรียกใช้เวลาเรียกใช้เราจะได้เรียกตามชื่อ class ครั้งเดียวพอจบนะคะ คราวนี้นะคะ รูปแบบก็คือเราจะต้องพิมพ์คำว่า Class แล้วก็ตามด้วยชื่อของคลาสคือในการเขียนโปรแกรมนี่การสร้างค้าจะช่วยให้เราไม่ต้องเขียนโปรแกรมใหญ่มาก ๆ หลาย ๆ ครั้ง หรือเขียนเรียกใช้ตัวอะไรก็แล้วแต่นะคะ ตัวรูปภาพนี่หลาย ๆ ครั้ง ใน class นี่รูปมันมีหลายรูปอ่ะ ไม่อย่างนั้น ไม่งั้นเราจะต้องไปเรียกรูปหลายครั้งเลยว่าอย่างนั้นเถอะนะคะ เราจะเรียกแคบครั้งเดียวแล้วก็ใส่โคลอน เพราะเสร็จจะต้องระบุโคลอนเข้าไปนะคะ แล้วก็ใส่ statement ก็คือเงื่อนไขอะไรต่าง ๆ ตามมาหอมนะคะ เราจะไปต่อนะคะ ดูดี ๆ นะคะ ชื่อคลาสจำไว้เลยนะคะ ถ้าเมื่อไหร่ให้สร้าง Class เวลาตั้งชื่อครับ เด็ก ๆ จะต้องพิมพ์ชื่อ class ตัวแรกด้วยตัวพิมพ์ใหญ่ เพราะฉะนั้น เตรียมกด capslock ได้เลยนะคะ เมื่อเราสร้างคัดเสร็จลำดับต่อมาเราจะมาสร้าง method นะคะ ให้ class ของเรานั่นเองนะคะ 1 ตัวเอาไปตัดที่นี่นะคะ เราจะเปิดหน้านี้ไว้นะคะ เริ่มค่ะ ไปที่ sublime เราทีนี้เขาบอกว่าอยากให้มันรู้อะไรมันต้องอยู่ข้างบนเสมอเลยอที่เมื่อกี้นะ ในที่โค้ชจะเห็นว่าๅ จะอยู่ต่อจากส่วนของ Importนะคะแฮชแท็กค่ะ เพื่อจะได้รู้ว่าตรงนี้เป็นเราจะทำอะไร เราจะสร้าง class อยู่ต่อจาก เดี๋ยวนะเมื่อกี้ มันต้องอยู่ต่อจากการตั้งค่าทั่วไปนะคะ เราจะอยู่ตำแหน่งนี้ ถัดมา เพราะตรงนี้จะต้องโดนเรียกใช้ก่อนแล้วก็ค่อยมาตรงนี้ได้ ทำไมเป็นภาษาไทย กดผิดหรือ ตอนนี้ใส่แฮชแท็กเพื่ออธิบายว่าเราจะสร้าง class สำหรับนำเข้าภาพต่อเนื่องหรือ Sprite sheet ของเรานั่นเองนะคะ อธิบายไว้ เด็ก ๆ จะได้รู้ ถ้าใครพิมพ์แฮชแท็กหรือ comment เสร็จแล้วนะคะ เราจะสร้าง class ได้เลยนะคะ พิมพ์นะคะ พิมพ์ c บางคนพิมพ์ c แล้วมันไม่ขึ้น พิมพ์ c-l ก็ได้นะคะ แล้วเลือกตัวแรก Class New Class นะคะ กด enter ไหมคะ มันจะสร้างโครงสร้างของ class ขึ้นมาเลยมี ClassNameแล้วก็มี definition ค่ะ เห็นไหมคะ รูปแบบเหมือนไหมเหมือนเหมือนในในสไลด์เราไหม สร้าง class แล้วก็มีตัวนี้ส่วนของค่าต่าง ๆ นี่นะคะ ขึ้นมาตรงนี้มาดูตรงนี้ Class name เขียว ๆ เด็ก ๆ ทำแบบคอบต้องพาร์ทเม้นท์นี่ที่มันขึ้นสีเขียว ๆ นี่ยขึ้นเราจะต้องเป็นคนตั้งชื่อให้คลาสของเรานะคะ ภาพที่เราจะนำมาใช้หรือตัวเกมที่เราจะนำมาใช้มันคือตัวอะไรคะเด็ก ๆ จำได้นะ ของใครให้ดูตัวนี้ ตัวเกมที่เราเอามาใช้ครั้งก่อนนี่เราใช้คำว่า "cat" ใช่ไหมคะ ม่าของเด็ก ๆ ชื่ออะไรคะ เพราะฉะนั้น เอาชื่อครับ เป็นตัวนี้แต่อย่าลืมว่ากลัวต้นของมันตัวใหญ่เราค่อยไปลบบรรทัดนั้นเรายังไม่ทันให้มีปัญหา กด c-a-t cat คนละตัวใช่ไหมพิมพ์ด้วยตัวเลขจะต้องเป็นตัวพิมพ์ใหญ่เสมอนะคะ ชื่อ class จะต้องขึ้นต้นด้วยตัวใหญ่เสมอนะคะ ที่นี้มาดูในส่วนไอ้เขียว ๆ อีกทีเราจะต้องแก้มันนะคะ วัตถุที่เราจะเอามาวางแล้วจะระบุอะไรไป object ของอุบลตัวอะไรนะลูก ก็ boy แต่เดิม boyเล็กก็เป็น Boy ใหญ่นะคะ อุบลตัวอะไรนะลูกอย่าลืมนะคะ ตัวอักษรตัวแรกต้องเป็นตัวใหญ่นะลูกถ้าเป็นชื่อครับ เวลาเราตั้งชื่อตัวแปรตัวเล็กตัวใหญ่ก็ได้แต่เมื่อตั้งไปแล้วต้องเช็กไม่ออกมาล่ะขึ้นต้นด้วยตัวใหญ่เสมอนะคะ ต่อมา object ใน object นี้เราจะใส่อะไรเข้าไปในคลาสของเรานะคะ มาดูกัน object ที่เราจะใส่ก็คือเรียกใช้ลืม pygame นี่ มันจะมี library บอกแล้ว library ที่จะใช้ก็คือดูนะคะ เด็ก ๆ ดูดี ๆ ก็ไป 2 ครั้งนี่ยSpice ตัวแรกตัวพิมพ์เล็กมันจะเป็นคนละตัวนะไม่ออกนะ เพราะอะไรเพราะเห็นไหม sprite ตัวที่ 2ขึ้นต้นตัว f มันจะเป็นตัวใหญ่แล้วถ้าเวลาแม่บอกว่าเรียกใช้สบายตัวใหญ่เราต้องพิมพ์ตัวใหญ่ก่อนค่อยออกเนาะแต่ถ้าเรียกสบายเล็กก็คือพิมพ์ตัวพิมพ์เล็กทั้งหมดมันจะมี 2 ตัวนะคะ เพราะฉะนั้น ใน object เราจะเรียกใช้ library pygame ที่ชื่อสไปรท์ sprite ์ใหญ่ว่างั้นเถอะโอเคไหมนะคะ วันนั้นกลับมาที่ตัวนี่เราใส่ offset ใช่ไหมคะ เราพิมพ์พี่กลัวพี่แล้วอด pygame กด Enter ได้เลย ขึ้นท้ายเกมเลือกไฟล์เกมแล้วกด enterไป . นะคะ ขึ้น Sprite ใหญ่ยังไม่ยังไม่กดนะเด็ก ๆ เพราะ spite แรกเป็นไปตัวเล็กนะคะ STITESpicy 2 เนี่ยตัวใหญ่ลองเลือกสไปรท์ตัวใหญ่อยู่ข้างล่างเกือบล่างสุดเลย คือ spite ที่ 2 มันสร้างไว้ Library มันมีอยู่แล้วในออกนะ โอเคนะคะ เพราะตัวโคลอนเราไม่ต้องใส่เลยสังเกตถ้าเราอย่างนี้ไอ้พวกเรื่องไหนมันจะไม่หายดูใหม่นะไอ้ sprite ที่ 2 เดี๋ยวดูใหม่นะให้เลื่อนไปหา sprite ไหมคะ แล้วกด Enter เพราะมันเป็นตัวที่เป็นอยู่ใน Library แล้วว่าอย่างนั้นเถอะ แต่จะไปเล็กนี่มันบอกให้รู้ว่าฉันสร้างตัวนี้ขึ้นมาเพื่อจะเรียกใช้เขาบอกตรงนี้เราจะลบออกนะคะ เป็นแค่อธิบายซึ่งเราอธิบายไว้ข้างบนแล้วเรากด delete ได้เลยเรา เราต้องพยายามลดบรรทัดในการเขียนโค้ดนึกออกนะ คือ 1 บรรทัดจะใช้พื้นที่ในการเก้บ เมื่อกี้เราสร้าง Class ไปแล้ว ทีนี้เราจะมาสร้างส่วนของ statement นี่นะคะ ต่อ ก็คือส่วนนี้เห็นไหม def def ย่อมาจาก definition นะคะ มันจะพิมพ์ของมันมาแล้ว เพราะฉะนั้น ถ้าเด็กเด็กพิมพ์ไม่ถูกมันพิมพ์มาแล้วเราจะมาแก้เฉพาะในวงเล็บ เอาตัวนั้นออกมันบังโค้ดเรานะคะ เราจะพิมพ์จนถึงตั วนี้ก่อน Super init() นี่น่าจะพิมพ์มาแล้วนะคะ แล้วต่อจาก self เห็นไหมคะ แล้วตามด้วยอะไรคะ ดูนะคะ pos_xใช้ _ คัโค้ด pos_y ่น แล้วแต่จะตั้ง มันจะได้เห็นว่าโพสต์มาจาก Position นั่นเองนะคะ pos มาจาก Position แล้วก็ตามด้วย underscore คือตำแหน่งแกน x ตำแหน่งของแกน x แกน y นั่นเอง ก็คือเราจะเอาไอ้รูปนี้ไปวางในตำแหน่งนี้แกน x แกน y ที่ระบุ นะคะ บรรทัดนี้นะคะ ก็คือจะเริ่มกำหนดว่าตำแหน่งของสิ่งที่เราจะเรียกมานี่จะอยู่ตรงไหนอะไรอย่างไร บอกตำแหน่ง ระบุตำแหน่ง บรรทัดต่อมามันจะเริ่มยาวขึ้นแล้วนะเด็ก ๆ ดูดี ๆ นะคะ ช่องนี้เห็นไหมคะ Class name เราไม่ต้องระบุลงไป ลบออกให้มันเป็นเปล่า ๆ แล้วเหลือแค่นี้ บรรทัดที่ต่อจาก definition นะคะ บรรทัด super นี่ตรงที่อยู่ในวงเล็บในลบออกนะคะ อันนี้เราจะเหลือแค่นี้นะคะ บรรทัดถัดจากนี้ตั้งแต่พอเริ่มเรียก self นี่มันจะยาวขึ้นนะคะ เราจะพิมพ์แค่ 1 ครั้ง แล้วใช้วิธีคัดลอกแล้วก็ไปแก้ แก้เฉพาะตัวนะคะ ดูนะคะ แล้วก็ sprite เล็กนะคะ self ตัวแรก arg ตัวแรกนี่ sprite sprite เล็ก แล้วไปเล็กแล้วเติม s ให้เขาด้วย มันจะเป็นคนละตัวกับตัวบนนะคะเด็ก ๆ เติม s เข้าไป ตรงนี้ค่าที่ใส่ก็คือสี่เหลี่ยม วงเล็บแบบสี่เหลี่ยม โอเคไหม ดูดี ๆ นะคะ sprite ใน self นี่เป็น Spice ที่เติม ed เข้าไปด้วยเราเรียกไปปุ๊บใช่ไหมกดมีสไปรท์ขึ้นมาเนี่ยแล้วเติม s เพิ่มเข้าไป ดูดี ๆ นะ มันจะเป็นคนละตัวนะมันมีหลายตัวดูดี ๆ sprite พอเขาเรียกไปแล้วนี่ตัวนี้ 1 ใช่ไหมจะไปใหญ่ 3 sprites ตอนนี้เรามี 3 sprite นะคะ โอเคนะคะ บรรทัดที่เหลือจะเริ่มไปเรียกใช้คำสั่งที่มันให้โหลดรูปที่เราเก็บไว้น่ะมา บรรทัดที่เหลือจะเริ่มจะเริ่มไปไปไปเรียกใช้คำสั่งที่มันให้โหลดรูปที่เราเก็บไว้อ่ะมานะคะ เราต้องวางเรียงจนครบทั้งหมดเรามีกี่รูปเราก็ใส่เข้าไปทั้งหมดจำนวนรูปนั้นนะคะ เดี๋ยวเขียนให้ดูก่อน ตอนนี้เราระบุ sprites ไปแล้ว สิ่งที่เราจะทำต่อมาบรรทัดต่อไปเราก็พิมพ์เซลล์เหมือนเดิมเลือกนะคะ พิมพ์ self เหมือนเดิมนะคะ จะไปเหมือนกันแต่เลือก sprite จะไปที่มีตัว S ไหมคะ เลือกให้ถูกตามด้วย self.spite. เพราะตัวแรกจะไป s แรกเรา โปรแกรมไปแล้ว 5 เราสร้าง sprite มานะวันนั้นครั้งที่ 2 เราเรียกใช้มาได้เลยนะคะ จอดแล้วก็ตามด้วยหัวจะยาวรอบหนึ่ง append แล้วก็ load a-p-p-e-n-d- นะคะ เลือกใช้คำ Library append. พิมพ์ append ผิดตรงไหนนะ ในวงเล็บใส่วงเล็บนะคะ แล้วกด Enter ให้มันเรียกใช้ pygame.image เหมือนเดิม im เลือก image นะคะ load เลือกโหลดใครไม่ขึ้นแสดงว่าบางทีพิมพ์ผิดลองลบออกก่อนยอดตรงไหนนะคะ ที่ต้องย่อเพราะว่ามันยังมีต่ออีกเดี๋ยวเด็ก ๆ จะไม่เห็นว่าในบรรทัดนี้มันมีอะไรต่อนะคะ แล้วคือตอนนี้เราจะมาเรียก self sprite.append แล้วก็ให้สั่งให้ pygame มันไปโหลดภาพ แล้วมาดูภาพที่เราจะโหลด กดผิดนี่นะ วงเล็บที่หลังวงเล็บหลัง load นะ pygame.image.load ชื่อรูปตัวไหนชื่อรูปเด็ก ๆ ดูนะคะ บอกแล้วบอกวิธีไปแล้วนะ ถ้าไม่อยากพิมพ์ผิดเหมือนอย่างนี้เราไปที่ไฟล์ภาพเราแล้วเราคิดขวาใช่ไหมคะ ที่ตำแหน่ง Properties แล้วเราก็ก๊อปฯ ชื่อไฟล์มันมาเลย มันจะทำให้เราไม่พิมพ์ชื่อไฟล์ผิด นึกออกนะ แล้วก็เช็กด้วยว่านามสกุลมันเป็นนามสกุลอะไร PNG .PNG แบบนี้นะคะ มันจะไม่เกิดปัญหาในการพิมพ์ชื่อฝ่ายผิด เพราะฉะนั้น ภาพที่เป็น sprite เรามีกี่ลูก บรรทัดต่อไปไม่ต้องพิมพ์ใหม่ เด็ก ๆ ดูนะคะ ใช้วิธี Copy บรรทัดที่เราสั่งมันโหลดภาพ กด Ctrl + C แล้วก็กด Ctrl + V ลงไป เราก็เปลี่ยนแค่อะไรคะ หมายเลขใช่ไหม 2 ถูกไหมคะ ตรงนี้นะคะ sprite เด็ก ๆ จะต้องไปสั่งให้มันโหลดรูปที่เราจะเอามาใช้น่ะให้ครบตามจำนวน เพราะนั้นเพิ่มเพิ่มบรรทัดเองนะของใครมีกี่รูป จำนวนบรรทัดของลูกที่โหลดมันก็จะเท่ากับค่าของตัวเองไม่ออกนะ Copy อันที่ 1 แล้วก็ไปเปลี่ยนหมายเลขถูกไหมถ้าของใครมีหมายเลขแต่ถ้าของใครไม่มีนะคะ แล้วก็วางจนกว่ามันจะครบจำนวนไอ้ตัวนั้นของเรานะคะ เดี๋ยวตรงนี้นะคะ ชื่อไฟล์ภาพนี่ให้ดูในเครื่องตัวเองนะลูก ไม่ใช่มันพิมพ์ตาม ก็คือชื่อภาพใครภาพมันภาพของใครของมัน อันนี้เป็นชื่อไฟล์ภาพที่อยู่ในเครื่องของแม่ ของเด็กชื่ออะไรเด็ก ๆ ก็ดูเอาในโฟลเดอร์ตัวเองนะคะ มีกี่รูปหว่าเดี๋ยวขอไปดูก่อนนะ ว่าของเรามีทั้งหมดกี่รูป ของเครื่องแม่มีถึง 10 นะคะ ก็จะใส่เพิ่มอีก 5 ตัว มีเยอะก็จะก๊อปแผงใหญ่ ๆ เลย 5 แล้วก็นับต่อ 6 7 8 9 10 เพราะฉะนั้น ให้เด็ก ๆ ดูในโฟลเดอร์ตัวเองนะ ภาพใครชื่ออะไรก็ครับ วางแล้วค่อยมาก๊อปอย่างนี้นะคะ อันนี้ของแม่มี 10 ภาพแม่ก็ใส่จนครบแล้ว 10 รูปนะคะ ของเด็ก ๆ มีรูปเดี๋ยวไปช่วยดูให้ตรวจให้นะคะ ของใครมีกี่รูป ใส่วงเล็บมาถูกแล้ว เราก็ว่าใส่ทำไมไม่ขึ้น ตรง pygame ใส่วงเล็บเข้าไปด้วยนะ ตรงนั่นแหละ ก็ว่าใส่แล้วไม่ได้ ตอนแรกน่ะใส่แล้ว ก็ว่าตอนแรกมันไม่ขึ้น ก็เลยเข้าใจว่าเจ้าของใส่ผิด เดี๋ยวไปเดินดูนะคะ มันจะต้องขึ้นอย่างนี้เป็น ๆ เป็นเซ็ต ๆ self สีส้มเป็นสีฟ้าแล้วก็ไปปิดด้วย load ดูนะคะ ชื่อไฟล์เราลืมแน่ ๆ เลยเมื่อกี้เดินไปผิดแน่ ต้องใส่อะไร เครื่องหมายอะไรคำพูด นึกออกนะ ใส่เครื่องหมายคำพูดจะเอา '' หรือ "" ก็ได้ ใส่ลงไป ลืม ๆ เด็ก ๆ ใส่เครื่องหมายคำพูดลงชื่อไฟล์ที่เราจะเรียกใช้ด้วย ลืม ๆ เยอะหลาย อย่าลืมนี่นะเมื่อกี้ลืมใส่นะคะ ใส่เครื่องหมายคำพูดเข้าไปให้น้องด้วย เพราะถ้าเช็กจากสไลด์นี่ชื่อไฟล์มันจะเป็นสีเหลืองใช่ไหมคะ มันถึงจะถูกต้องนะคะ เพราะฉะนั้นแก้ ใส่ Single หรือ Double ก็ได้นะคะ ตัวใดตัวหนึ่งเลือกเอาใครถนัดใส่ Single ก็ใส่ดับเบิ้ลก็ใส่ Double นี่บางรูปของบางคนเนี่ยรูปมันไม่ต่อนี่มันเป็นอาหารวันนั้นเรียกลูกมาไทยก็มีส่วนนะคะ เช็กนะคะ เช็กอันดับแรกเช็กที่ชื่อไฟล์ภาพที่เราจะนำมาใช้ชื่อถูกต้องโอเคไหมแล้วก็จำนวนรูปที่เอามาใช้ทั้งหมดกี่รูป สังเกตนะคะ ถ้าใครแจ้งครบแล้วไอ้ตัวชื่อไฟล์ภาพจะเป็นสีเหลืองทั้งหมดนั่นแสดงว่าถูกต้องแล้วนะเด็ก ๆ ต้องเป็นอย่างนี้นะคะ ในโค้ดเราต้องเป็นอย่างนี้ถึงจะถูก ตัวเองนี่เห็นไหม คือคำสั่งมันเยอะนะคะ เพราะมันเป็น class มันจะมันจะลำบากตอนแล้วเท่านั้นนะคะ ไหนลองสิ ไม่มีส่วน ตัวเล็กตัวใหญ่มันเป็นนามสกุลไฟล์ภาพ มันได้อยู่มันเป็นนามสกุล แตชื่อน่ะ ชื่อห้ามผิด นามสกุลน่ะมันรู้อยู่ โปรแกรมมันจะรู้ มันน่าจะเว้นวรรคผิด เดี๋ยวตอน Error ก็จะรู้กัน สร้าง method แล้วทำอะไรต่อ โหลด Sprite sheet แล้ว มีบรรทัดต่อนะคะเด็ก ๆ เราจะระบุตำแหน่งว่าตำแหน่งปัจจุบันของตัว sprite เราจะเริ่มที่ 0 แล้วก็จะมาเรียกใช้ จะสร้างจะทำ Animation ให้ไหม create Animation แล้วขั้นต่อไป เราโหลดตอนนี้เราสั่งให้มันไปโหลดภาพ ต่อมาเราจะสร้างส่วนของ animation นะคะ ใส่ # ค่ะ ใส่ # เราจะเข้าสู่การสร้าง Animation แล้ว สร้างภาพเคลื่อนไหวก็ได้ เดี๋ยวจะงง เอาเป็นภาษาไทย สร้างการเคลื่อนไหวนะคะ # ไว้จะได้รู้ส่วน ตำแหน่งอยู่ตรง self นะคะ กด Tab นะคะเด็ก ๆ ใช้วิธีกด Tab หน้ากดเป็นมาแอบเข้าไปให้ตรงกับตำแหน่ง self เดิมเรา self จะไม่เปลี่ยนพิมพ์เซลล์เม็ดเลือดเซลล์น็อตดูนะคะ คำสั่งนี้ยาวหน่อยเซลล์ดอท current underscore สsprite sprite ธรรมดานะคะ อันนี้อันนี้จะเป็นตัวแปรนะ current_ เพราะฉะนั้นเราจะต้องพิมพ์เองนะคะ ตัวแปรที่เราจะสร้างก็ระบุว่าตำแหน่งเริ่มต้นหรือตำแหน่งปัจจุบันนี่ คือ ให้มันเริ่มที่ 0 current_sprite = 0 นะคะ คำสั่งแรกก็คือกำหนดให้ตัวแปรที่ชื่อมีค่าเริ่มต้นที่ 0 ไอ้ตัวนี้ก็คือเป็นคำสั่งที่บอกว่านี่ค่าเริ่มต้นของภาพนะคะ ต้องเริ่มที่ 0 เสมอ กำหนดไว้ self.current_sprite = 0 ใส่ underscore ด้วยจะแยก 2 คำบางทีสาเหตุที่มีอันเดอร์สกอร์มีอะไรเงี้ยคือบางทีประโยคมันยาวเนี่ยถ้าเราไปพิมพ์ติดกันเวลาเราเช็คโค้ดมันจะไลน์ไปบอกเนาะเ พราะนั้นเราใช้ตัว _ มาเพื่อในการแยกคำน่ะค่ะ ไปบรรทัดต่อไปนะคะ เราจะกำหนดให้เรียกใช้เรียกรูปนั่นเองนะคะ พิมพ์ s แล้วเลือก self เดิม ตามด้วยเครื่องหมาย . อะไร .imageนะคะ คิด IMF ไหมคะ เท่ากับใช้เครื่องหมายเท่ากับเท่ากับแล้วอีกครั้งหนึ่งค่ะ เฮียใช้ self อีกครั้งหนึ่งกด F แล้วเลือกเซลล์ sprite ที่เราจะใช้ตัวนี้คือ sprite เด็ก ๆ ไปหาสไปรท์ S นะคะ จะไปที่มี s ข้างหลังอ่ะค่ะ เล่าเรื่องพวกนี้แล้วก็ใส่วงเล็บสี่เหลี่ยมใหญ่เข้าไป แล้วพิมพ์เรียกใช้ self.current_sprite ในวงเล็บสี่เหลี่ยมใหญ่เนี่ยเราจะเรียกใช้ C แล้วเลือก current อยู่ไหนคะ เลือก currentที่มันขึ้นมานี่เลยเราสร้างไว้นั่นเองนะคะ บรรทัดตอบมาให้นะคะ พิมพ์ self เหมือนเดิมนะคะ กินเซลล์เหมือนเดิมนะคะ เลือก phelps Dodgeอันนี้พิมพ์เองนะคะ เล็ก เล็กแล้วเล็กเท่ากับ self นะคะ เลือก self. เลือก self.image ค่ะ เลือก self.image ค่ะ I เลือก Image แล้วก็ .get_ r-e-c-t reก็กำหนดอีกตัวหนึ่งนะคะ sct นะคะ แล้วก็วงเล็บ elf เหมือนเดิม เลือก self เหมือนเดิม . เหมือนเดิมค่ะ กำหนดตำแหน่ง rect top นะคะ rect เลือก left นะคะ top บนซ้าย topleft = วงเล็บใหญ่ วงเล็บสี่เหลี่ยมใหญ่ pos_ แล้วก็ใส่โคลอนแล้วก็เลือก pos_ ระบุตำแหน่งและอยู่ที่ pos_y ของเรานะครับ ให้ค่าเริ่มต้นในการทำงานเริ่มที่นี่เช็กดี ๆ นะคะ ถ้าพิมพ์ถูกแล้วสีจะขึ้นแบบนี้เลย สี self สีตัวเลข สีเท่ากับจะขึ้นอย่างนี้เลย ถ้าใครไม่ค่อยมีแสดงว่าพิมพ์ตรงไหนตรงหนึ่งผิดแน่นอน โครงสร้างผิดแน่นอนนะคะ sublime จะช่วยในการเช็ก Coding ไม่ดีเลยใครยังพิมพ์ 1234 บรรทัดนี้ไม่เสร็จเสร็จยังคะดูดี ๆ นะคะ sprite ที่ใช้ที่เรียกใช้คือ sprites นะคะ ตอนนี้ตรงตำแหน่งนี้เรียกผิดชีวิตเปลี่ยนนะ มันจะไม่ขึ้นไม่อย่างนั้นก็จะ Error ไปเลยนะคะ ยังไม่จบ ยังไม่จบ โค้ดมันเยอะหน่อยหนึ่งแต่พอเวลาไปเรียกอย่างนิดเดียวจริง ๆก็คือเราอนิเมชั่นแล้วสิ่งที่เราจะทำต่อไปนี่นะคะ เราจะมาเรียกใช้มันแล้วนี่ เราจะทำ spirte น่ะ group มัน จัด group มันน่ะค่ะ group มันรูปมันน่ะสักภาพใหญ่ ๆ ให้มันเป็นภาพเดียวสร้าง sprite แล้วก็ group น้องด้วยเลย อ๋อ มันเรียนรวม สอบแล้วหรือ ส่วนต่อมาเมื่อกี้เราเราจะเรียกใช้มันเราจะสร้างมันแล้วก็ตำแหน่งจะอยู่ที่หลังเงื่อนไขนะคะ ตำแหน่งโค้ดเสร็จหมดแล้วนะคะ 4 บรรทัดนี้ใครยังไม่เสร็จ โอเคนะคะ เสร็จหมดแล้วเรามาที่ตำแหน่งนี้แม่คะตำแหน่งของการแสดงผลนี่ ตำแหน่งนี้นิดหนึ่ง ใส่ # เข้าไปเพื่อจะอธิบายว่าตรงส่วนนี้เราจะสร้างภาพต่อเนื่อง แล้วก็มันไม่สร้าง มันสร้างไปแล้ว เราจะทำภาพต่อเนื่องให้เป็น group มันเข้าไปให้เป็นเหมือนมันเข้าไปเป็นให้มันเหมือนมันเป็นรูปเดียว เอาแปลเป็นไทยนี่แปลยากมากเลย ขอเป็นภาษาอังกฤษแล้วกัน อธิบายยากคำไทยคำเยอะอธิบาย เรานะคอมพิวเตอร์เราแปลด้วยภาษา อังกฤษ creat sprite and group คือ ไอ้รูป sprite ที่เขาทำเสร็จแล้วนี่เราจะนำมันมารวมให้มันเป็นเหลือรูปเดียวจากหลาย ๆ รูปนะคะ เรียน ๆ ๆ กำหนดตัวแปร moving เคลื่อนไหวนะคะ เคลื่อนไหว moving_ การเคลื่อนไหวของภาพไฟล์ moving_sprite = pygame กด p เลือก pygame พิมพ์ไปเลือก sprite เล็กนะคะ sprite ตัวเล็กที่ไม่มี s ดูดี ๆ นะคะเด็ก ๆ จะไปตัวที่เลือกใน pygame ต่อไปนี้เป็นสเปคที่ไม่มีนะคะ กรุ๊ปใช้ตัวใหญ่ เพราะตัวนี้มันเป็นฟังก์ชันที่เขาสร้างไว้แล้ว นะคะ ชื่อว่า group ไม่ใช่ฟังชั่นล่ะ ถ้าตัวใหญ่นี่มันคือฟ้าฟ้าที่ชื่อว่ากุ๊กที่อยู่ใน Library นะคะ เราจะไปเรียกใช้ Class กรุ๊ปนะคะ ตอนนั้นเลยใช้ตัวใหญ่สังเกตกรุ๊ปใหญ่นะคะ เอาไปวัน ๆ ต่อไปนะคะ สิ่งที่เราจะทำต่อมา ประกาศตัวแปรเพื่อเรียกใช้ไอ้ตัวตัวคลาสของเรานะคะ คลาสเราชื่อชื่อคลาสตัวใหญ่มันใช้ว่า cat ใช่ไหม นั้นตัวแปรเราก็จะใช้ชื่อมันเป็นตัวเล็กนะคะ แล้วจะเป็น cat เล็กเท่ากับ Cat ใหญ่ เพราะเราจะเรียกใช้ขาเราต้องเรียก Cat ใหญ่นะคะ วงเล็บด้วยในวงเล็บใส่อะไรตำแหน่งค่ะ ตำแหน่งของไอ้ตัวนี้ ลองใส่ก่อนนะ ขอลองที่ 10, 10 อยากรู้เหมือนกันมันจะไปโผล่ตรงไหน แล้วก็กำหนดให้ตัวแปร moving_sprite นี่นะคะ นำเข้ารูปนั้นน่ะ ให้มันgroup พิมพ์ m แล้วเลือก moving ไปนะคะ จะไปนี้ใช้ sprite ที่มี Sจะไปที่นะคะ ดูดี ๆ ใช้ไม่เหมือนกันนะลูก ก็คือเพื่อจะให้มัน App อะไรเข้าไปให้มัน Appตัวแปร cat เล็กของเราเข้าไป cat เล็ก มันเอาไปไว้ที่ cat ตอนนี้คือเป็นเอาภาพที่มันต่อกันหลาย ๆ ภาพนี่มาให้มันทำให้มันเป็นภาพเดียวนะคะ รวมกันเป็นภาพ 1 ภาพให้มันดูเหมือนเป็นรูปเดียวนะคะ หน้า 3 บรรทัดนี้เสร็จหรือยังคะ ใครยังไม่เสร็จ ยังไม่เสร็จยังนะคะ ไม่อย่างนั้นเดี๋ยวไปต่อไม่ได้ มันจะขาดตอน เช็กนะคะ เช็กตรง sprite sprite แรกไม่มี s นะคะ ไปที่ 2เรียกฉายหลัง . นะคะ ต่างกันตรงนี้เพราะมันจะไม่ขึ้น Error นะเพราะ มันสร้างแล้วมันโดนสร้างแล้วแต่ดูดี ๆ แค่นั้นเองเช็กตรงนี้ 2 จุดนี้นะคะ จะไปที่กำหนดใน Moving_sprite นี่ไม่มี s เวลาเรียกต้องมี s นะคะ น่าจะเสร็จกันหมดแล้วทุกคนดูที่เราจะต้องทำต่อ เราจะสร้างฟังก์ชันให้มันวิ่งทีนี้ กำหนดฟังก์ชัน run ไปหา update มันวิ่งไปแล้ว เด็ก ๆ ก็บอกว่าทำไมตอนนี้โค้ดเยอะจังเลย คือ มันยาวน่ะแต่พอสร้างแล้วมันจะใช้ครั้งต่อไปได้ เพราะฉะนั้น อัเราจะไปบรรทัดที่ต่อจาก class นนี้นะะค เห็นไหมคะ บรรทัดสุดท้ายของ class นี่ Enter ลงไป ใส่ # หน่อย เราจะบอกเขาว่าโปรแกรมบอกตัวเองออกตัวเองนี่ถ้าใส่ # ในบอกตัวเองนะคะ ว่าตรงส่วนนี้เราทำอะไรสร้างฟังก์ชันค่ะ สร้างฟังก์ชัน ตรงส่วนนี้เราจะสร้างฟังก์ชัน run นะคะ ที่ชื่อว่า run กับ update นั่นแหละ run แล้วก็ update 2 ตัว รูปแบบของการสร้างฟังก์ชัน ก็คือ definition คำว่า "def" นั่นเองนะคะ Tab เข้าไปแค่ 1 ครั้งนะคะ มันจะไม่อยู่ตรงกับ self นะ มันจะอยู่ก่อน self d เลือก def ฟังก์ชันนะคะ แต่เด็กแล้วก็เลือกฟังก์ชันdefinitionที่ฟังก์ชันก็คือลั่นตัวแรกตัวแรกเขียว ๆ นี่ในวงเล็บนี่ไม่ใช่ในวงเล็บขึ้นคำว่าฟังก์ชันนี่เราแก้เป็น run นะคะ เพราะฟังก์ชันที่เราใช้มันชื่อว่า run เราจะใช้มัน Balance แล้วก็เรียก self มา เลือก self ในส่วนของบรรทัดที่ 2 นะคะ พิมพ์ self ค่ะ กด s เลือก self.run _animate นะคะ animate มาจาก animation นั่นอนิเมะมาจาก Animation แหละจะยาวไปอนิเมทน่ะ Run Anime Anime Anime ดีกว่า Anime จะสั้นกว่าอีก อนิเมะงงไหมนี่ เอา anime แล้วกัน = True ทำงานเมื่อเป็นจริง จะใส่เงื่อนไขแล้วนะคะ เท่ากับ True ใช้ทรูใหญ่นะที่เลือกครูผู้ใหญ่ไหมคะ เรามีฟังก์ชันแล้วสร้างอีก 1 ฟังก์ชันนะคะ def เหมือนเดิม เลือก def ฟังก์ชันเหมือนเดิม เลือกแบบฟังก์ชันเหมือนเดิมตำแหน่งชื่อฟังก์ชันเปลี่ยนเป็นเราสร้าง 2 ตัวนะเราบอกเราจะสร้าง 2 ตัวก็คือ run กับ update นะคะ ชื่อฟังก์ชันไม่จำเป็นต้องใช้ตัวใหญ่ เรียกใช้ self ค่ะ self ในส่วนของ แล้วก็ใส่ : แล้วก็เรียกใช้ speed statements หรือ pass นี่นะคะ เราจะมากำหนดเงื่อนไขให้มันทำงานนั่นเองนะคะ ก็คือใช้คำสั่ง If ค่ะ เลือก if statement if condition ตัวแรก ไม่พิมพ์เองนะเด็ก ๆ ไม่อย่างนั้นเดี๋ยวรูปแบบมันจะผิดให้เลือก i if condition นะคะ ไม่พิมพ์เองนะคะ เรียกใช้ เรียก self มา self. เลือก run มาใช้งาน ถ้มี if คำสั่งเท่ากับของ if เราต้องกด 2 ตัวนะคะ == True เลือก True ใหญ่นะคะ ตรงส่วน statements pass เราจะเรียก current sprite มา พิมพ์ self เหมืนอเดิม self self พิมพ์ CU เลือก current เราจะเพิ่มเนื้อออกน พอเวลาเวลาที่มันเคลื่อนนะคะ ตำแหน่งปัจจุบันมันเริ่มที่ศูนย์มันจะนั่นเราจะต้องเพิ่มค่าให้มันบวกนะคะ บวกใส่เครื่องหมายบวกแล้วก็เท่ากับ ก็คือเพิ่มความหมาย ก็คือค่บวกแล้วเท่ากับแสดงว่าเพิ่มนะคะ บวกอะไรเข้าไปให้บวกเข้าไปใน Speed ที่เราสร้างไว้ กด SP แล้วเลือก speed กด enter นะคะ เราจะเพิ่มเงื่อนไขซ้อนเงื่อนไข เพราะอันนี้เพิ่มแค่ speed นะคะ เพิ่มความเร็วเข้าไป แล้วเลือก condition เหมือนเดิม if int i-n-t ตัวแปรนี้นะคะ ไม่ใช่ตัวแปรหรอก มันเป็น... วงเล็บค่ะ ใส่เปิดแล้วปิดใส่เข้ามาทีเดียวเลยนะ วงเล็บจะได้ไม่หายว่าอย่างนั้นถ พิมพ์ self ใส่เปิดแล้วปิดใส่เข้ามาทีเดียวเลยนะวงเล็บจะได้ไม่หายว่างั้นเถอะกินเซลล์และเลือดและเลือกเซลล์นะคะ น็อต current Spice หาพิมพ์และเลือก current เงื่อนไขก็คือิให้มันเช็กว่ามันยังน้อยกว่าหรือเท่ากับ len len นะคะ l-e-n ใส่วงเล็บค่ะ self พิมพ์ s แล้วเลือก self รอบนี้จะเลือก sprites นะ sprites นะคะ ใน len เลือก sprites นะคะ ตรง statement pass นะคะ พิมพ์ s. พิมelf เหมือนเดิม เลือก self พ์ cu แล้วเลือก current sprite เท่ากับ 0 นะคะ ของ self เท่ากับศูนย์ตอนนี้มันกำลังเช็คให้มันเช็กค่ามันจะวนมันหมดลูกอ่ะแล้วก็เป็นเหมือนเดิม run animate นะคะ เลือก run animate เอากับเค้ามีธุระแล้วก็ต้องมี 2โอเคถ้าไม่เป็นจริงกระจกกันทำงานแล้วทำเมื่อจริงมันจะเข้ามาเช็คค่าก่อนเปิดแอปใหญ่และเลือก False บรรทัดนี้เสร็พิมพ์ self ค่ะ s self. iบแล้วกดย้อนหลังกลับไป if แรก if ที่ 1 เลือก image = self เหมือนเดิม เลือก self เลือก S นะคะ เลือกsprite ที่เ EMSสี่เหลี่ยมใหญ่วงเล็บสี่เหลี่ยมใหญ่ เรียก intint in น่ะเลือก int ในวงเล็บเข้าไปในวงเล็บเลือก Set current sprite นะคะC สำเร็จไป อันนี้เราทำส่วนของฟังก์ชัน run กับ update เสร็จแล้วนะคะ มี 2ตั้งแต่ออกมาทันทีเลย อยากจะไปเช็กตำแหน่งนะคะ เด็ก ๆ ตำแหน่งของฟังก์ชัน ดูต่อนะคะวันนี้น่าจกยาวหน่อย แต่ผลน่าจะคุ้มค่าพอใจ น่าจะเป็นที่พอใจของเด็ก ๆ เราจะมาเรียกใช้ตัวนี้ คีย์เรากำหนดแล้วแต่เราต้องเรียกใช้มันน่ะ ตรง... เดี๋ยวนะ เงื่อนไข if ปุ๊บ คีย์ volo moving cat cat cat ตำแหน่งจะต้องเป็น pygame.quit เป็นl K_RIGHT ตำแหน่งนี้นะครับ ดูนะคะ เด็ก ๆ จะเรียกใชเรียกฟังก์ชัน run ้ตัวแปร cat ที่มาทำงานนะคะ ทีนี้ที่เราจะไปลบ เดี๋ยวเด้อลบตรงไหนบ้าง เราจะเริ่มลบแล้วนะ ลบตรงนี้นะคะ นำเข้าภาพนี่ลบออกเลย เพราะเราเอาไปไว้ที่ขาดแล้ว เด็กไปหาตัวเดิม ลบตัวเดิมเก่าลบออกนะคะ เดี๋ยวมันยังลงดีที่เรานำรูปเข้าในสัปดาห์ก่อนนะเนาะเราเขียน # ไว้อยู่ ลบออกนะคะ ไหนอีก icon เด โอเค ลองกด b ดูเทสต์ี๋ยวเด้อค่ะ Ctrl + B เทสต์ อ้าว Error Error ก็มา บรรทัดที่เท่าไรนี่LINE 75 LINE 75 ว่าไงนะ ดูบรรทัดนะคะ ของใครของมัน มันบอกว่ายังไง Identity assistance 75 clock มันบอกว่า identation error I didn't finish Shell Command python clock.tick err ไปย้อนโค้ดนะคะ ไปที่การตั้งค่าทั่วไป พอย้ายตำแหน่ง or เดี๋ยวนะ ขอดูต่อ ขอดูโค้ดเอา screen ไปใส่ข้างล่างนะคะ เอ้ย เดอา clock.tick ไปใส่ข้างล่าง blit นะคะ แล้วก็ไปต่อ ไปต่อ เราน่าจะต้องสร้างอีกตัวหนึ่ง รูโอเคนะคะ เพิ่มโค้ดอีก 3 บรร้แล้วเราลืมตรงนี้ไปด้วย ทัดนี้เห็นไหม Moving_sprite ที่เราสร้างเสร็จแล้วน่ะ ต้องมาอยู่ตรงนี้ เรียนจนเบลอเหมือนกัน เราจะไปที่ตำแหน่งการแสดงผลขแล้วก็ให้เด็ก ๆ เดี๋ยวก่อองเรานะคะ เพิ่มโค้ดอีก นอื่น เลือกตรงส่วนการตั้งค่าทั่วไป 3 บรรทัดนี้ แล้วก็กด Ctrl + X เอาไปไว้ข้างล่าง class นะเด็ก ๆ นี่เอาไว้ก่อนหน้ากำหนดหน้าจอเกม ต้องขยับตำแหน่งสักหน่อยหนึุ่ง พิมพ์ moving เห็นไหม เลือก moving_sprite เห็นไหม draw ให้มัน draw draw อะไรให้มันวาด screen แล้วก็เลือกใช้คำสั่ง update เลือก m Update เรียก function Update ให้ค่าเริ่มต้นอยู่ที่ 0 ตำแหน่งนะคะ 25 แล้วก็ เรียก pygame.display .ljมาใช้งาน เลือก display นะคะ แล้วก็ flip f-l-i-p flip นะคะ ใส่วงเล็บน่าจะ 76 มันบอกว่าอย่างไร screen.blit unexpected ไม่รู้จัก attribute module ผิดตรงไหนเรียกฟังก์ชันผิดนี่เอง ไม่เป็ นอะไร ทำไมไม่ขึ้น moving_sprite cat ผิดอีกหรือ บอกว่าไเดี๋ยวนะ มีความ... clock เล็ก เลือก clock เล็ก 74 in modulemoving_sprite attribute error ม่รู้จัก attribute add error มันจะเป็นไปได้อย่างไร ไม่รู้จัก add หรือ Dino run ไม่รู้จัก add ใส่ dino เข้าไม่ได้ ข้ามตัวไหนไห current self self.image dinomoving _sprite.add มีไหม ไม่นี่ หา add ไม่เจอ หมดแล้วนี่หว่า เดี๋ยวติดไว้ก่อน error อยู่ 1 บรรทัดนะครับ เดี๋ยวจะไปลอง run เครื่องตัวเอง เรื่องของเรื่องคือเรื่องตัวเองออกแล้วมันอยู่นี่ไม่ออกคือ... คืออะไรครับพี่น้อง ติดไปก่อนเดี๋ยวเรามาต่อสัปดาห์หน้ามันยังไม่วิ่งให้เรา มันขึ้น Error มันหายไปไหนท่อนหนึอันนี้ก็เรียกใช้ไม่ได้ สำหรับวันนี้จะพอแค่นattribute add ่ง ี้ก่อนนะคะ ขอบคุณพี่หล้านะคะ เดี๋ยวเราจะมาต่อกันในสัปดาห์หน้าค่ะ ขอบคุณค่ะ display ขอบคุณค่ะวิธีอัพเดท