--- title: ฝึก PE กับ bot (ASR) ห้อง 5271 การเขียนโปรแกรมภาษาคอมพิวเตอร์ อ.สุธิรา วันที่ 13 ธ.ค. 2565 ตู่ subtitle: date: วันอังคารที่ 20 ธันวาคม 2565 เวลา 09.50 น. --- (ข้อความสดจากระบบถอดความเสียงพูดทางไกล) (อาจารย์สุธิรา) สวัสดีค่ะ (ล่าม) สวัสดีค่ะ (อาจารย์สุธิรา) จากสัปดาห์ที่แล้วที่แล้วเราลงตัวเกมเราไปแค่ 1 ตัวแต่ความจริงโดนเกมเราที่จะใช้นี่เมื่อคืนถ้าสมมติน้องเดินนะคะ มันก็จะมีหลายทางรูปเล็ก ๆ อย่างนี้เขาก็จะเปลี่ยนก็เลยให้ไปค้นไปทุกคนน่าจะมีแล้วใครยังไม่มีภาพแบบนี้ยกมือหาที่นี้ก่อนเด้ออย่าลืมอย่าลืมมันจะต้องอยู่ในโฟลเดอร์ที่disk c ของเรานะแล้วก็โฟลเดอร์ชื่อที่เป็นชื่อของเด็ก ๆ นะคะ เพราะว่าไฟล์ pygame เกมที่เราโค้ดดิ้งจะอยู่ในนี้ด้วยเหมือนกันก็คือ ตำแหน่งของไฟล์ที่เราจะใช้โค้ดกับรูปภาพมันจะต้องอยู่ในที่เก็บเดียวกัน โฟลเดอร์เดียวกัน พร้อมหรือยัง ถ้าพร้อมแล้วสิ่งแรกที่เราจะทำนะคะ ให้เปิด Sublime เหมือนเดิม เปิดไฟล์ Sublime text เก่าของเราขึ้นมาเลย ใครอยู่ไหนเปิด Sublime แล้วนะคะ แล้ว ทีนี้เด็ก ๆ ดูนะคะ ข้อแรกสิ่งที่เราจะทำก็คือเราจะไป Import module ขึ้นมาอีก 1 ตัวคือตอนตอนเดิมนี่ module ที่เรา Import ก็คือโมดุลภายเกมแต่ทีนี้มีเพิ่มมาอีก 1 ตัวนะคะ แล้วลำดับที่ 2 เราก็จะมาตั้งค่าพอเราไป Import module ใหม่มาเราก็ต้องมาตั้งค่าเพื่อจะเรียกใช้ไอ้โมดูลตัวใหม่เราเนี่ยจากนั้นเราก็ไปกำหนดการแสดงผล ให้โมดูลตัวใหม่นี่ว่ามันจะแสดงผลในลักษณะนะคะ มาดูโค้ดกัน คำสั่งแรกคือ Import pygame ใช่ไหมเรา Import pygame แล้วเราคั่นแล้วคือเราไม่ต้องไปพิมพ์คำว่า Import ใหม่คั่นด้วยเครื่องหมายโคลอนแล้วก็ตามด้วย sys sys มาจาก System ตอนนี้ก็คือเราจะ Import module ที่ชื่อว่า System นะคะ ตัวนี้นะคะ สีไม่ได้ไฟไม่ไปไม่รู้ทำไม คืออะไร เราจะ Import module ที่ชื่อว่า sys หรือ System ทีนี้ พอ import module นี้เสร็จ นะคะ วันนี้จะไว้เมื่อไหร่มันจะช่วยในเรื่องของเวลา system ก็คือตัวระบบแล้วนี่เห็นไหมถ้าไปที่จะตั้ง clock.time. game.comจะกำหนดระยะเวลาแล้วพอในส่วนของการแสดงผลเรียกใช้ตัวแปรที่ชื่อเพราะเราสร้างตัวแปรเพื่อเก็บเวลานี้ clock.tick คือให้ระยะเวลาในการทำงานมันอยู่ที่ประมาณ 60 นะคะ ในคอมพิวเตอร์ไม่ใช่ 60 นาทีนะ 60 วินาทีเด็ก ๆ เพราะฉะนั้น เปิดซับลามเราขึ้นมานะคะ แล้วไปที่ตำแหน่ง Report ก็คือตำแหน่งแรกใช่ไหมบรรทัดนี้นะนะคะ ใส่อะไรคะ โคลอนใช่ไหมคะ แล้วตามด้วยโมดูลที่ชื่อว่า sys หรือ sis system เพราะคำสั่ง Import นะคะ Import module นี่จะอยู่ที่บรรทัดแรกเสมอเลยเพราะการทำงานของโปรแกรมนี่ คือมันจะอ่านจากบนลง]เพราะฉะนั้นเราอยากให้มันไปทำอะไรก่อนเราต้องเอามันไว้ข้างบนว่าฮอย่างนั้น เมื่อได้โมดุลนี้แล้วส่วนต่อมาจะอยู่ที่สวนนี้นะคะ กำหนดค่าทั่วไปตัวที่ในหมายเลข 2 เด็กเห็นนะ คือเพิ่ม Clock = นะ= นะคะ ตรงนี้ขายเกมดอทคอมเราจะเรียกใช้ไลบรารีพามนั่นเองนะคะ ฉะนั้นเราก็เลยต้องเปิด module System ขึ้นมานะคะ ในวงเล็บปั๊มนะคะ ในซับลามจะอยู่บรรทัดที่ต่อจากอะไรดูดี ๆ คลาย game.netตำแหน่งของการตั้งค่าทั่วไปนะคะ ตรงส่วนนี้นะคะ จะเตือนเด็ก ๆ เสมอว่าให้เราใส่แฮชแท็กเพื่ออธิบายว่าตรงโค้ดดิ้งนี้นะคะ เราใช้ทำอะไร เราจะได้รู้ อ๋อคำสั่งนี้มันเป็นการสั่งให้นำเข้า module ที่เรานำเข้าก็คือพายเจมส์แล้วก็ฟิน2 ตัวนี้นั่นเองเสร็จแล้วในส่วนของการตั้งค่าทั่วไปคือ pygame.init นี่ ก็คือเรียกใช้ตัวนี้ภายเกมโมเดิร์นภายเกมและตัวนึงนะคะ อันดับแรกประกาศตัวแปรชื่อว่า clock C นะคะ พิมพ์ด้วย c-l-o-c-k clock ที่แปลว่านาฬิกานะลูก วิธีการประกาศตัวแปรคือชื่อตัวแปรตามด้วยเครื่องหมายเท่ากับเครื่องหมายเท่ากับวรรคนะคะ กด Space Bar ใส่เครื่องหมายเท่ากับแล้วก็กด Space Bar อีก 1 ครั้ง แล้วก็พิมพ์ไลบรารี่พายเกมดอทคอมปุ๊บคลิกเลือดภายเกมบอกแล้วว่าเราจะไม่พิมพ์ยาวเพราะมันจะขึ้นโค้ดที่เราเขียนไปแล้วหรือตัวอะไรก็แล้วแต่เราก็มาเลือกเอานะคะ . นะคะ .t-i-m-e Time แล้วก็ . เพราะอีกทีนึงเลือก Clock นะคะ มันจะช่วยให้เราไม่ไปพิมพ์ผิดบอกให้รู้ว่าอ๋อ เราจะใช้ตัวแปรที่ว่าคอมตัวนี้แล้วก็ใส่วงเล็บมันจะไม่มีปัญหาว่าพิมพ์ตัว o เป็นตัว a อะไรนี่เพราะบางทีเด็ก ๆ มองแล้วดันเห็นไม่ชัดไม่ขยายนะคะ ตรงนี้คือส่วนของการตั้งค่าทั่วไปใครยังไม่เสร็จบรรทัดนี้ ไม่อย่างนั้นไปขั้นตอนต่อไปไม่ได้นะ ตอนนี้เราเองถอดแล้วแล้วเรามาตั้งค่ากำหนดค่าให้มันก็คือให้เป็นตัวแปรที่ชื่อว่า clock ทีนี้เราจะไปเรียกใช้งานเราจะไปที่ตำแหน่งท้าย ๆ แสดงผลจะอยู่ประมาณตรงเอาไปไว้ท้าย ๆ ก่อน นี่ ๆ แถว ๆ พวกนี้นี่ อะไรพวกเนี้ยนะเด็ก ๆ นะใส่ไอ้นี่ให้ก่อนนะคะก่อนส่วนของการแสดงผลนะคะ ส่วนใดจะได้รู้ เห็นไหมคะ สังเกตตรงการแสดงผลเรา screen.blit ก็คือให้มันแสดงพื้นหลังเรานะคะ เอาจริงตัวเดียวก็ได้นี่ ลบตัวนี้ได้เลยนะนี่เดี๋ยวค่อยมาลบนะคะ ไล่ลบ เพราะฉะนั้น คำสั่งที่ 3 ก็คือให้เดี๋ยวนะ เราจะเดี๋ยวนะคะ ตรงส่วนของการแสดงผลที่บอก ก็คือเราจะ เรียกตัวแปร clock นะคะ clock.tick ติ๊กเนี่ยแล้วระบุระบุว่าเวลาเวลาที่ให้มันทำงานอยู่ที่ประมาณวินาทีนั้นตำแหน่งก็จะอยู่ตรงเมื่อกี้ที่มาร์กไว้นะ การแสดงผลอยู่ตรงนี้นะคะ อย่ากด Space Bar กดอะไรคะ กด Tab ให้ไปตรงกับตำแหน่ง screen บอกแล้วนะคะ เพราะบางคนจะติดก็เห็นย่อหน้าที่ 2 มันวะเนี่ยไปสะปลามันจะไม่ค่อยใช้วรรคใช่ว่าจะใช้เฉพาะวรรคระหว่างคำแต่ถ้าคำย่อหน้านี่ เราจะใช้เราก็เรียกใช้ clock เลือก ของเรานะคะ แล้วก็ตามด้วย Memory ไม่ดีนะคะ จำไม่ได้ค่ะ ขอบอก สมงสมองไปหมดอากาศเย็น สกลนครหนาวนะคะ ้บอกเลยว่าหนาว เด็ก ๆ พากันไม่มา tick นี้เป็นคำสั่งใน Libary นั่นเองนะคะ แล้วก็ตามด้วยวงเล็บใส่ 60 ตัวเดิมนะ 60 เดี๋ยวตัวเลขเราก็ได้ให้นึกถึงนะ ถ้าเราลองรันโปรแกรมแล้วตัวเกมเรามันวิ่งไวเกินไปเราก็เพิ่มเวลาให้มันแต่ถ้ามันวิ่งช้า 60 แล้วมันช้า เราก็ลดเวลาลงนะคะ ก็คือนึกถึงน่ะ เวลา 1 วิ 2 วิ 3 วิ 1 คือเพิ่มใช่ไหมวันหนึ่งมันเร็วไปเราก็ต้องเพิ่มให้มันช้าก็ต้องเพิ่มแต่ถ้ามันช้าเราต้องลดตัวเลขลงนี่คือเราจะได้ยังไม่ run นะคะ เพราะตัวที่เราจะรันถ้าเรากดมันก็จะไม่แสดงผลอะไรทั้งสิ้นนะคะ ยังไม่กด run นะคะ ไปทำต่อเรายังเขียนโค้ดไม่เสร็จอย่าลืมว่าโค้ชมันไม่ได้มีแค่ 3 บรรทัดแน่นอนนะคะ เอาตัวที่ออกที่ถัดไปนะคะ ลำดับต่อมานะคะ เรากำหนดไอ้นี่ไปเรียบร้อยแล้วนะ ข้ามนะคะ เราตั้งค่าหน้าจอเกมแล้ว เราจะมาทำ loop นะคะ ทำ loop ให้เขาเราทำไปแล้ว จะข้ามส่วนนี้ แล้วเรามาทำต่อจากอันเดิมนะ นี่เราจะใส่ Moving Sprite เข้าไปได้นี่นะคะ เดี๋ยวนะคะ ต้องไปตรงนี้ก่อน เราจะมาสร้าง Class ให้ก่อนนะคะ สร้าง class เพื่อ เพื่อที่จะทำอะไร จำได้นะ ตัวเกมบอกแล้วในผลต่อเราใส่เข้าไปแค่ตัวเดียวแต่ทีนี้เราจะเอาน้องมาทั้งเซตเลย น้องการ์ตูนเรามาทั้งเซตเลยนะคะ เพราะฉะนั้น เราจะต้องสร้าง Class ให้น้องเพื่อจะเรียกใช้ เวลาเรียกใช้เราจะได้เรียกตามชื่อ class นะคะ ครั้งเดียวพอจบ ตอนนี้ช่างคะเนี่ยนะคะ รูปแบบก็คือเราจะต้องพิมพ์คำว่า Class แล้วก็ตามด้วยชื่อของคลาสคือในการเขียนโปรแกรมนี่การสร้าง class จะช่วยให้เราไม่ต้องเขียนโปรแกรมใหญ่มาก ๆ หลาย ๆ ครั้งหรือเขียนเรียกใช้ตัวอะไรก็แล้วแต่นะคะ ตัวรูปภาพนี่หลาย ๆ ครั้งมันได้ classรูปมันมีหลายรูปอ่ะไม่งั้นเราจะต้องไปเรียกรูปหลายครั้งเลยว่าอย่างนั้นนะคะ เราจะเรียกแคบMinecraft ครั้งเดียวแล้วก็ใส่โคลอนเพราะเสร็จสินค้าปลุกเน็ตจะต้องระบุโคลอนเข้าไปนะคะ แล้วก็ใส่ statement ก็คือเงื่อนไขอะไรต่าง ๆ ตามมาหอมนะคะ เราจะไปต่อนะคะ ดูดี ๆ นะคะ ชื่อคลาสจำไว้เลยนะคะ ถ้าเมื่อไหร่พี่ให้สร้าง Class เวลาตั้งชื่อ class เด็ก ๆ จะต้องพิมพ์ชื่อ class ตัวแรกด้วยตัวพิมพ์ใหญ่ เพราะฉะนั้น เตรียมกดแคปล็อกได้เลยนะคะ เมื่อเราสร้างคัดเสร็จ ลำดับต่อมาเราจะมาสร้าง method นะคะ ให้ให้ขาดของเรานั่นเองนะคะ 1 ตัวเอาไปตัดที่นี่นะคะ เราจะเปิดหน้านี้ไว้นะคะ เริ่มค่ะ ไปที่ซับลามเราทีนี้เขาบอกว่าอยากให้มันรู้อะไรมันต้องอยู่ข้างบนเสมอเลย class จะอยู่ตรงส่วนที่เมื่อกี้นอนในในที่โค้ดจะเห็นว่า class จะอยู่ต่อจากส่วนของ Import นะคะ ใส่แฮชแท็กค่ะ เพื่อจะได้รู้ว่าตรงนี้เป็นเราจะทำอะไรเราจะสร้าง class อยู่ต่อจากเมื่อกี้มันต้องอยู่ต่อจากการตั้งค่าทั่วไปนะคะ เราจะอยู่ตำแหน่งถัดมาเพราะตรงนี้จะต้องโดนเรียกใช้ก่อนแล้วก็ค่อยมาตรงนี้ ทำไมเป็นเลขไทย กดผิดหรือ ตอนนี้ใส่แฮชแท็กเพื่ออธิบายว่าเราจะสร้าง Class สำหรับนำเข้าภาพต่อเนื่อง หรือ Sprite Sheet เรานั่นเองนะคะ อธิบายไว้เด็ก ๆ จะได้รู้ถ้าใครพิมพ์แฮชแท็กหรือ comment เสร็จแล้วนะคะ ก็จะ สร้าง class ได้เลยนะคะ พิมพ์ cบางคนพิมพ์ C แล้วมันขึ้นพิมพ์ c l ก็ได้นะคะ แล้วเลือกตัวแรก Class New Classนะคะ ถวายกด enterไหมคะ มันจะสร้างโครงสร้างของคลัทช์ขึ้นมาเลยมีLast nameแล้วก็มี definitionอยากฟังค่ะ เห็นไหมคะ รูปแบบเหมือนไหมเหมือนเหมือนในในสไลด์เราไหมบางคล้าแล้วก็มีตัวนี้ส่วนของค่าต่าง ๆ เนี่ยนะคะ ขึ้นมาอาทิตย์นี้มาดูตรงนี้ Class nameเขียวเขียว ๆ และมีไฟกับเด็ก ๆ ทำแบบคอบต้องพาร์ทเม้นท์เนี่ยที่มันขึ้นสีเขียว ๆ เนี่ยขึ้นเราจะต้องเป็นคนตั้งชื่อให้คลาสของเรานะคะ ภาพที่เราจะนำมาใช้หรือตัวเกมที่เราจะนำมาใช้มันคือตัวอะไรคะ เด็ก ๆ ทำได้เนาะของใครไปดูที่ตัวนี้เกมที่เราเอามาใช้ครั้งก่อนเนี่ยเราใช้คำว่าแคทใช่ม่าของเด็ก ๆ ชื่ออะไรคะ เพราะฉะนั้นเอาชื่อครับ เป็นตัวนี้แต่อย่าลืมว่ากลัวต้นของมันตัวใหญ่เราค่อยไปลบบรรทัดนั้นเรายังไม่ทันให้มีปัญหาหัดกับแคทคนละตัวใช่ไหมพิมพ์ด้วยตัวเลขจะต้องเป็นตัวพิมพ์ใหญ่เสมอนะคะ ชื่อค้าจะต้องขึ้นต้นด้วยตัวใหญ่เสมอหน้าที่นี้มาดูในส่วนไอ้เขียว ๆ อีกทีเราจะต้องแก้เผ็ดมันนะคะ วัตถุที่เราจะเอามาวางแล้วจะระบุอะไรไปobjectอุบลตัวอะไรนะลูกบอยแต่เดิมบอยเล็กก็เป็นบ่อยใหญ่นะคะ อย่าลืมนะคะ ตัวอักษรตัวแรกต้องเป็นตัวใหญ่นะลูกถ้าเป็นชื่อครับ เวลาเราตั้งชื่อตัวแปรตัวเล็กตัวใหญ่ก็ได้แต่เมื่อตั้งไปแล้วต้องเช็ดไม่ออกมาล่ะขึ้นต้นด้วยตัวใหญ่เสมอนะคะ หล่อมากobject นี้เราจะใส่อะไรเข้าไปในคลาสของเรานะคะ มาดูกันที่เราจะใส่ก็คือเรียกใช้ลืมขายเกมเนี่ยมันจะมีไรซ์เบอรี่บอกแล้วร้านไลบรารี่ที่จะใช้ก็คือดูนะคะ เด็ก ๆ ดูดี ๆ ก็ไป 2 ครั้งเนี่ยSpice ตัวแรกตัวพิมพ์เล็กมันจะเป็นคนละตัวนะไม่ออกเนาะเพราะอะไรเพราะเห็นไหมSpice ตัวที่ 2ขึ้นต้นตัว f มันจะเป็นตัวใหญ่แล้วถ้าเวลาแม่บอกว่าเรียกใช้สบายตัวใหญ่เราต้องพิมพ์ตัวใหญ่ก่อนค่อยออกเนาะแต่ถ้าเรียกสบายเล็กก็คือพิมพ์ตัวพิมพ์เล็กทั้งหมดมันจะมี 2 ตัวนะคะ เพราะฉะนั้นใน object เราจะเรียกใช้ไลบรารี่พายเกมที่ชื่อสไปรท์spiral dot สไปรท์ใหญ่ว่างั้นเถอะโอเคไหมนะคะ วันนั้นกลับมาที่ตัวนี่เราใส่ offset ใช่ไหมคะ เราพิมพ์พี่กลัวพี่แล้วอดขายเกมส์กด Enter ได้เลยขึ้นท้ายเกมเลือกไฟล์เกมแล้วกด enterไป . นะคะ สไปรท์กินสไปรท์ใหญ่ยังไม่ยังไม่กดนะเด็ก ๆ เพราะจะไปแลกไปตัวเล็กนะคะ STITESpicy 2 เนี่ยตัวใหญ่ลองเลือกสไปรท์ตัวใหญ่อยู่ข้างล่างเกือบล่างสุดเลยคือจะไปที่ 2 มันมันสร้างไว้Library มันมีอยู่แล้วในออกเนาะโอเคนะคะ เพราะตัวโคราชเราไม่ต้องใส่เลยสังเกตถ้าเราอย่างเงี้ยไอ้พวกเรื่องไหนมันจะไม่หายดูใหม่นะไอ้สไปรท์ที่ 2 เดี๋ยวดูใหม่นะFacebook ให้เลื่อนไปหาสไปรท์ใหญ่ไหมคะ แล้วกด Enter เพราะมันเป็นตัวที่เป็นอยู่ใน Library แล้วว่างั้นเถอะแต่จะไปเล็กเนี่ยมันบอกให้รู้ว่าฉันสร้างตัวนี้ขึ้นมาเพื่อจะเรียกใช้เอาบ่ตรงนี้เราจะลบออกนะคะ เป็นแค่อธิบายซึ่งเราอธิบายไว้ข้างบนแล้วเรากด delete ได้เลยเราเราต้องพยายามลดบรรทัดในการเขียนโค้ดคือ 1 บรรทัดจะใช้พื้นที่ในการเมื่อกี้เราสร้าง Class ไปแล้วทีนี้เราจะมาสร้างส่วนของ statement เนี่ยนะคะ คือส่วนนี้เห็นไหมdfds ย่อมาจาก tetanus นะคะ มันจะพิมพ์ของมันมาแล้วเพราะฉะนั้นถ้าเด็กเด็กพิมพ์ไม่ถูกมันพิมพ์มาแล้วเราจะมาแก้เฉพาะในวงเล็บเอาเอาตัวนั้นออกมันบังโพสต์เรานะเราจะพิมพ์จนถึงตัวนี้ก่อนSuper amoled เนี่ยน่าจะพิมพ์มาแล้วนะคะ แล้วต่อจากเซลล์เห็นไหมคะ แล้วตามด้วยอะไรคะ หาดูนะคะ โค้ด sy8 นะคะ แน่นอนtosมันจะได้เห็นว่าโพสต์มาจาก Position นั่นเองนะคะ tosโพสต์มาจาก Position แล้วก็ตามด้วย underscore คือตำแหน่งแกน x ตำแหน่งของแกน x แกน Y นั่นเองเมื่อคืนเราจะเอาไอ้รูปนี้ไปวางในตำแหน่งนี้แกน x แกน Y ที่ระบุนะคะ อันนี้นะคะ ก็คือจะเริ่มกำหนดว่าตำแหน่งของสิ่งที่เราจะเรียกมาเนี่ยจะอยู่ตรงไหนอะไรยังไงบอกตำแหน่งระบุตำแหน่งบรรทัดต่อมามันจะเริ่มยาวขึ้นแล้วนะเด็ก ๆ ดูดี ๆ นะคะ ช่องนี้เห็นไหมคะ Class name เราไม่ต้องระบุลงไป ลบออกให้มันเป็น เปล่า ๆ แล้วเหลือแค่นี้บรรทัดวิธีต่อจาก definition นะคะ บรรทัดซุปเปอร์นี่ลบออก ตรงที่อยู่ในวงเล็บในลบออกนะคะ อันนี้เราจะเหลือแค่นี้นะคะ บรรทัดถัดจากนี้ตั้งแต่พอเริ่ม เรียก self นี่ มันจะยาวขึ้นนะคะ เราจะพิมพ์แค่ 1 ครั้งเราใช้วิธีคัดลอกแล้วก็ไปแก้ แก้เฉพาะตัวนะคะ ดูนะคะ self ตัวแรกตัวแรกนี่ Sprite แล้วไปเล็กแล้วเติม s ให้เขาด้วยมันจะเป็นคนละตัวกับตัวบนนะคะเด็ก ๆ เติม s เข้าไป ตรงนี้ค่าที่ใส่ก็คือสี่เหลี่ยมวงเล็บแบบสี่เหลี่ยมเคไหมดูดี ๆ นะคะ Sprites เนี่ยเป็น Spice ที่เติม ed เข้าไปด้วยเราเรียกไปปุ๊บใช่ไหมกดมี ขึ้นมาเนี่ยแล้วเติม s เพิ่มเท่าไรดีน ะมันจะเป็นคนละตัวนะมันมีหลายตัวดูดี ๆ sprites พอเขาเรียกไปแล้วนี่ ตัวนี้ 1 ใช่ไหมจะไปใหญ่ sprites ตอนนี้ sprites เรามี 3sprites นะคะ บรรทัดที่เหลือจะเริ่มจะเริ่มไปเรียกใช้คำสั่งที่มันให้โหลดรูปที่เราเก็บไว้น่ะมานะคะ เราต้องวางเรียงจนครบทั้งหมดเรามีกี่รูปเราก็ใส่เข้าไปทั้งหมดจำนวนรูปนั้นนะคะ เดี๋ยวเขียนให้ดูก่อนตอนนี้เราระบุไปแล้ว เราระบุ sprites ไปแล้วจะไปเอสไปแล้วสิ่งที่เราจะทำต่อมาบรรทัดต่อไปเราก็พิมพ์เซลล์เหมือนเดิมเลือกนะคะ self เหมือนเดิมนะคะ จะไปเหมือนกันแต่เลือก sprites จะไปที่มีตัว S ไหมคะเลือกให้ถูกตามด้วย self.sprites เพราะตัวแรก sprites แรกเราป่ะโปรแกรมไปแล้ว 5 เราสร้าง สไปซ์มานะ้นครั้งที่ 2 เราเรียกใช้มาได้เลยนะคะ จอดแล้วก็ตามด้วยหัวจะยาวรอบหนึ่ง .append แล้วก็โหลด OK append เป็นนะคะ เลือกใช้คำ Library append พิมพ์ append ผิดบ้างอะไรบ้าง ในวงเล็บใส่วงเล็บนะคะ แล้วกด Enter ให้มันเรียกใช้ไฟล์เกม .image เหมือนเดิม im เลือก image นะคะ โหลดเลือกโหลด ใครไม่ขึ้นแสดงว่าบางทีพิมพ์ผิดลองลบออกก่อน เดี๋ยวย่อลงก่อน ที่ต้องย่อเพราะว่ามันยังมีต่ออีกเดี๋ยวเด็ก ๆ จะไม่เห็นว่าในบรรทัดนี้มันมีอะไรต่อนะคะ ก็คือตอนนี้เราจะมาเรียก self.append แล้วก็ให้สั่งให้ใครเกมมันไปโหลดภาพแล้วมาดูภาพที่เราจะโหลดกดผิดนี่น่ะ วงเล็บที่หลังวงเล็บหลังโหลด pygame.image.load not loadชื่อลูกรูปตัวไหนชื่อรูปเด็ก ๆ ดูนะคะ บอกแล้วบอกวิธีไปแล้วเนะถ้าไม่อยากพิมพ์ผิดเหมือนอย่างนี้เราไปที่ไฟล์ภาพเราแล้วเราคิดขวาใช่ไหมคะ ที่ตำแหน่ง Properties แล้วเราก็ก๊อบชื่อไฟล์มันมาเลยมันจะทำให้เราไม่พิมพ์ชื่อไฟล์ผิดแล้วก็เช็กด้วยว่านามสกุลมันเป็นนามสกุลอะไร PNG โอเค png แบบนี้นะคะ มันจะไม่เกิดปัญหาในการพิมพ์ชื่อฝ่ file ผิดเพราะฉะนั้น ภาพที่เป็น sprites เรามีกี่ลูกบรรทัดต่อไปไม่ต้องพิมพ์ใหม่ได้ดูนะคะ ใช้วิธี Copy บรรทัดที่เราสั่งมันโหลดภาพกด Ctrl + C แล้วก็กด Ctrl + V ลงไปเราก็เปลี่ยนแค่อะไรคะ หมายเลขใช่ไหม 2 ไหมคะ ตรงนี้นะคะ sprites เด็ก ๆ จะต้องไปสั่งให้มันโหลดรูปที่เราจะเอามาใช้น่ะ ให้ครบตามจำนวน เพราะฉะนั้น เพิ่มบรรทัดเองนะของใครมีกี่ลูรูปจำนวนบรรทัดของลูกที่โหลดมันก็จะเท่ากับค่าของตัวเองไม่ออกเนาะ Copy A1 แล้วก็ไปเปลี่ยนหมายเลขถูกไหม ถ้าของใครมีหมายเลขแต่ถ้าของใครไม่มีหรอกนะ นะคะ แล้วก็วางจนกว่ามันจะครบจำนวนไอ้ตัวนั้นของเรานะคะ เดี๋ยวตรงนี้นะคะ ชื่อไฟล์ภาพนี่ ให้ดูในเครื่องตัวเองนะลูกไม่ใช่มันพิมพ์ตาม ก็คือชื่อภาพใครภาพมัน ภาพของใครของมัน อันนี้เป็นชื่อไฟล์ภาพที่อยู่ในเครื่องของแม่นะ ของเด็กชื่ออะไรเด็ก ๆ ก็ดูเอาในโฟลเดอร์ตัวเองน่ะค่ะนะคะ มีกี่รูปเดี๋ยวขอไปดูก่อนนะ ของเรามีทั้งหมดกี่รูปของเครื่องแม่มีถึง 10 นะคะ ก็ต้องเพิ่มอีก 5 ตัว มีเยอะมันจะก๊อบแผงใหญ่ ๆ เลย 5 แล้วก็นับต่อ 6 7 8 9 10 เพราะฉะนั้น ให้เด็ก ๆ ดูในโฟลเดอร์ตัวเองนะ ไฟล์ภาพใครชื่ออะไรก็ก๊อบมาว่างแล้วค่อยมาแก้อย่างนี้นะคะ อันนี้ของแม่มี 10 ภาพแม่ก็ใส่จนครบแล้ว 10 รูปนะคะ ของเด็ก ๆ มีรูปเดี๋ยวไปช่วยดูให้ตรวจให้นะคะ ใครมีกี่รูปถอดใส่วงเล็บมาถูกแล้ว เอาล่ะไม่ใส่ไม่ขึ้นตรงตรง pygame ใส่วงเล็บนั่นล่ะก็ว่าใส่แล้วไม่ได้ตอนแรกเอาไปละ เราก็ว่ามันไม่ขึ้นก็เลยเข้าใจว่าเจ้าของเดี๋ยวไปเดินดูนะคะ มันจะต้องขึ้นอย่างนี้่เป็น ๆ เป็นเซ็ต ๆ เลย self สีส้มเป็นสีฟ้าแล้วก็ไปปิดด้วยโหลด (อาจารย์สุธิรา) เหมือนเดิมเลย ดูนะคะ ชื่อไฟล์เราลืมแน่ ๆ เลยเมื่อกี้เดินไปผิดแน่ต้องใส่อะไรเครื่องหมายอะไร คำพูด นึกออกนะใส่เครื่องหมายคำพูดจะเอา Single quoat Double quotโหดก็ได้ใส่ลงไปลืมเด็ก ๆ ใส่เครื่องหมายคำพูดลงชื่อไฟล์ที่เราจะเรียกใช้ด้วยลืมเยอะหลายอย่าลืม นี่นะ เมื่อกี้ลืมใส่นะคะ ใส่เครื่องหมายคำพูดเข้าไปให้น้องด้วย เห็นไหมเพราะถ้าเช็กจากสไลด์นี่ ชื่อไฟล์มันจะเป็นสีเหลืองถึงจะถูกต้ง องเพราะขออภัยจากหลักสไลด์เนี่ยตรงชื่อไฟล์มันจะเป็นสีเหลืองใช่ไหมคะ อันนั้น Single หรือ Double Code ก็ได้ไปตอนไหนก็ได้นะคะ ตัวใดตัวนึงเลือกเอาใครถนัดใส่ Single ก็ใส่ดับเบิ้ลก็ใส่ Doubleนาทีนี้บางรูปของบางคนเนี่ยรูปมันไม่ต่อเนี่ยมันเป็นอาหาร เพราะฉะนั้น เรียกรูปมาใส่ก็มีส่วนนะคะ เช็กราคาเช็กอันดับแรกเช็ที่ชื่อไฟล์ภาพที่เราจะนำมาใช้ชื่อถูกต้องโอเคไหมแล้วก็จำนวนรูปที่เอามาใช้ทั้งหมดกี่รูป สังเกตนะคะ ถ้าใครแก้ครบแล้วไอ้ตัวชื่อไฟล์ภาพจะเป็นสีเหลืองทั้งหมด นั่นแสดงว่าถูกต้องแล้วนะเด็ก ๆ ต้องเป็นอย่างนี้นะคะ ในโค้ดเราต้องเป็นอย่างนี้ถึงจะถูกตัวเอ คือคำสั่งมันเยอะเพราะมัน เป็น class มันจะมันจะลำบากตอนแรกเท่านั้นนะคะ ไหนลองสิมันเป็นมันได้อยู่มันเป็นนามสกุลชื่อน่ะ ชื่อห้ามผิดนามสกุลนะมันรู้อยู่โปรแกรมมันจะรู้มันน่าจะเว้นวรรคผิดเดี๋ยวตอน Error ก็จะรู้กันสร้าง method แล้วทำไรต่อ โหลด Sprite Sheet แล้ว มีบรรทัดต่อนะคะเด็ก ๆ เราจะระบุตำแหน่งว่าตำแหน่งปัจจุบันของตัวต่อไปเราจะเริ่มที่ 0 แล้วก็จะมาเรียกใช้จะสร้างจะทำ Animation เห็นไหม Create Animation แล้วขั้นต่อไปเราโหลดตอนนี้เราสั่งให้มันไปโหลดภาพ ต่อมาเราจะสร้างส่วนของ Animation นะคะ ใส่แฮชแท็กเราจะเข้าสู่การสร้างแอนิเมชันแล้ว สร้างภาพเคลื่อนไหวก็ได้ เดี๋ยวจะงง เอาเป็นภาษาไทยสร้างการเคลื่อนไหวนะคะ แฮชแท็กไว้จะได้รู้ส่วนตำแหน่งอยู่ตรง self นะคะ กด Tab นะคะ เด็ก ๆ ใช้วิธีกด Tab นะกดเป็นมา Tab เข้าไปให้ตรงกับตำแหน่ง selเดิมเรา self จะไม่เปลี่ยนพิมพ์ seเลือดเซลล์น็อตดูนะคะ คำสั่งนี้ยาวหน่อย self.current_sprites สไปรท์สไปรท์ธรรมดานะคะ อันนี้อันนี้จะเป็นตัวแปรนะ current underscores เพราะฉะนั้นเราจะต้องพิมพ์เองนะคะ see you s-p-r-i-t-e อันนี้เป็นตัวแปรที่เราจะสร้างก็ระบุว่าตำแหน่งเริ่มต้นหรือตำแหน่งปัจจุบันคือให้มันเริ่มที่ 0 current_= 0นะคะ คำสั่งแรกก็คือกำหนดให้ตัวแปรที่ชื่อ current_sprite มีค่าเริ่มต้นที่ศูนย์ไอ้ตัวนี้ก็คือเป็นคำสั่งที่บอกว่kนี่ค่าเริ่มต้นของภาพนะคะ ต้องเริ่มที่ 0 เสมอ self.current_sprite = 0 underscore ด้วยจะแยก 2 คำบางทีสาเหตุที่มีอันเดอร์สกอร์มีอะไรเงี้ยคือบางทีประโยคมันยาวเนี่ยถ้าเราไปพิมพ์ติดกันเวลาเราเช็คโค้ดมันจะไลน์ไปบอกเนาะเพราะนั้vecteezy นเราใช้ตัวอันเดอร์สกอร์มาเพื่อในการแยกคำไปบรรทัดต่อไปนะคะ เราจะกำหนดให้เรียกใช้เรียกรูปนั่นเองนะคะ พิมพ์ self แล้วเลือกเซลล์เดิมตามด้วยเครื่องหมายอะไร .Image นะคะ คิด IF ไหมคะ เท่ากับใช้เครื่องหมายเท่ากับเท่ากับแล้วอีกครั้งนึงค่ะ ใช้ self อีกครั้งหนึ่งกด F แล้วเลือกเซลล์สไปรท์สไปรท์ที่เราจะใช้ตัวนี้คือสไปรท์เด็ก ๆ ไปหาสไปรท์ S นะคะ จะไปที่มี F ข้างหลังอ่ะค่ะ เล่าเรื่องพวกนี้แล้วก็ใส่วงเล็บสี่เหลี่ยมใหญ่เข้าไป แล้วพิมพ์ใช้ self.current_sprite ละ 5 รอบในวงเล็บสี่เหลี่ยมใหญ่เนี่ยเราจะเรียกใช้ self พิมพ์ C แล้วเลือก current sprites อยู่ไหนคะเลือก ที่มันขึ้นมานี่เลยเราสร้างไว้นั่นเองนะคะ บรรทัดต่อมาให้นะคะ พิมพ์ self เหมือนเดิมนะคะ เลือก self อันนี้พิมพ์เองนะคะ เล็ก self เล็กแล้วเล็กเท่ากับ self. เลือก self.image ค่ะ I เลือก Image แล้วก็ .get G เห็นไหมคะ .get_rect นะคะ แล้วก็วงเล็บ ก็กำหนดอีกตัวหนึ่งนะคะ self เหมือนเดิม เลือก self เจอเหมือนเดิมจอดเหมือนเดิมค่ะ กำหนดตำแหน่งหาเลข Top นะคะ rect เลือก rect นะคะ top top บนซ้าย Top left Top left นะคะ เท่ากับวงเล็บใหญ่วงเล็บสี่เหลี่ยมใหญ่โพสต์เรื่องโพสต์ underscore x แล้วก็ใส่โคลอนแล้วก็เลือกโพสต์ underscores y ระบุตำแหน่งและอยู่ที่โพสต์โพสต์วายของเรานะครับ ให้ค่าเริ่มต้นในการทำงานเริ่มที่นี่เช็คดี ๆ นะคะ พระพิมพ์ถูกแล้วสีจะขึ้นแบบนี้เลยสีเจลสีตัวเลขสีเท่ากับจะขึ้นอย่างนี้เลยถ้าใครไม่ค่อยมีแสดงว่าพิมพ์ตรงไหนตรงหนึ่งผิดแน่นอนโครงสร้างผิดแน่นอนนะคะ กับรามจะช่วยในการเช็คโค้ดดิ้งไม่ดีเลยใครยังพิมพ์ 1234 บรรทัดนี้ไม่เสร็จเสร็จยังคะดูดี ๆ นะคะ sprites ที่ใช้ที่เรียกใช้คือ sprites S นะคะ ตอนนี้ตรงตำแหน่งนี้เรียกผิดชีวิตเปลี่ยนนะคะ มันจะไม่ขึ้น ไม่อย่างนั้นก็จะ Error ไปเลย โอเคนะคะ ยังไม่จบยังไม่จบโค้ดมันเยอะหน่อยหนึ่งแต่พอเวลาไปเรียกไ*******อย่างนิดเดียวจริง ๆ พ่อทำร้ายก็คือเรา create animation แล้ว สิ่งที่เราจะทำต่อไปนี่นะคะ เราจะมาเรียกใช้มันแล้วนี่ไม่ใช่เรียกใช้เราจะทำสไปรท์น่ะ จัดจับมันกรุ๊ปมันน่ะค่ะ กรุ๊ปมันรูปมันน่ะจากภาพใหญ่ ๆ ให้มันเป็นภาพเดียว นี่นะคะ สร้าง sprites แล้วก็ group น้องด้วยนะคะ เลยอ๋อมันเรียนรวมสอบแล้วหรือ ดูนะคะ ส่วนต่อมาเมื่อกี้เราเราจะเรียกใช้มันเราจะสร้างมันแล้วก็ตำแหน่งจะอยู่ที่หลังเงื่อนไขนะ ตำแหน่งโค้ดเสร็จหมดแล้วนะคะ ตรง 4 บรรทัดนี้ใครยังไม่เสร็จโอเคนะคะ เสร็จหมดแล้วเรามาที่ตำแหน่งนี้ตำแหน่งของการแสดงผลนี่ ตำแหน่งนี้นิดหนึ่งแฮชแท็กเข้าไปเพื่อจะอธิบายว่าตรงส่วนนี้เราจะสร้าง สร้างภาพต่อเนื่อง แล้วก็มันไม่สร้างนี่ มันสร้างไปแล้วเราจะทำภาพต่อเนื่องให้มันเป็น group มันเข้าไปให้มันเป็นเหมือนรูปเดียว คือพอแปลเป็นไทยนี่แปลลำบากมากเลยขอเป็นภาษาอังกฤษแล้วกัน อธิบายยาก คำไทยเอาแปลเป็นไทยดีแต่ลำบากมากเลยขอเป็น c-r-e-a-t-e sprites คือไอ้ sprites ที่เขาทำเสร็จแล้วเนี่เราจะนำมันมารวมให้มันเป็นเหลือรูปเดียวจากหลาย ๆ รูปน่ะนะคะ เรียน ๆ ๆ กำหนดตัวแปร Moving เคลื่อนไหวนะคะ เคลื่อนไหว moving_ การเคลื่อนไหวของภาพเรา Movie_sprites = pygame moving เลือก pygame.sprite พิมพ์ไปเลือกไซส์เล็กนะคะ สไปรท์ตัวเล็กที่ไม่มีอีก s ดูดี ๆ นะคะ เด็ก ๆ จะไปตัวที่เลือกในภายเกมต่อไปนี้เป็นสเปคที่ไม่มีนะคะ กรุ๊ปใช้ตัวใหญ่เพราะตัวนี้มันเป็นฟังก์ชันที่เขาสร้างไว้แล้วนะคะ ชื่อว่า group ไม่ใช่ฟังชันล่ะถ้าตัวใหญ่นี่มันคือฟ้าฟ้าที่ชื่อว่า ที่อยู่ใน Library อ่ะค่ะ เราจะไปเรียกใช้ Class กรุ๊ปนะคะ ตอนนั้นเลยใช้ตัวใหญ่สังเกตกรุ๊ปใหญ่นะคะ ต่อไป บรรทัดต่อไปนะคะ สิ่งที่เราจะทำต่อมา ก็คือประกาศตัวแปรเพื่อเรียกใช้ไอ้ตัว ตัว class ของเรานะคะ class เราชื่อ cat ตัวใหญ่มันใช้ว่าแคทใช่ไหมนั้นตัวแปรเราก็จะใช้ชื่อมันเป็นตัวเล็กนะคะ แล้วจะเป็นแคทเล็กเท่ากับ cat ใหญ่เพราะเราจะเรียกใช้ class เราต้องเรียก cat ใหญ่นะคะ วงเล็บด้วยในวงเล็บใส่อะไรตำแหน่งค่ะ ตำแหน่งของไอ้ตัวนี้ ลองใส่ก่อนนะ ขอลองที่ 10 10 เสียก่อน อยากรู้เหมือนกันมันจะไปโผล่ตรงไหน แล้วก็กำหนดให้ตัวแปร moving_sprite นี้นะคะ นำเข้า รูปนั้นน่ะให้มัน gropu พิมพ์เอ็มแล้วเลือกวิ่งไปไปนะคะ จะไปนี้ใช้สไปรท์ที่มี sจะไปที่นะคะ ดูดี ๆ ใช้ไม่เหมือนกันนะลูก add ก็คือเพื่อจะให้มัน Add อะไรเข้าไปให้มัน Add ตัวแปร cat ของเราเข้าไป OK มันเอาไปไว้ที่ cat ตอนนี้คือเป็นเอาภาพที่มันต่อกันหลาย ๆ ภาพนี่มาให้มันทำให้มันเป็นภาพเดียวค่ะ รวมกันเป็นภาพ 1 ภาพให้มันดูเหมือนเป็นรูปเดียวนะคะ 3 บรรทัดนี้เสร็จหรือยังคะ ใครยังไม่เสร็จ ยังนะคะ ไม่อย่างนั้นเดี๋ยวไปต่อไม่ได้มันจะขาดตอนเช็กนะคะ เช็กตรงสไปรท์สไปรท์แรกไม่มี s นะคะ ไปที่ 2 เรียกฉายหลังเนี่ย vs นะคะ ต่างกันตรงนี้เพราะมันจะไม่ขึ้น Error นะเพราะมันสร้างแล้วมันโดนสร้างแล้วแต่ดูดี ๆ แค่นั้นเองเช็กตรงนี้ 2 จุดนี้นะคะ จะไปที่กำหนดใน Moving.sprite นี่ไม่มี s เวลาเรียกน่ะ ต้องมี SMS นะคะ ต้นอ่ะ น่าจะเสร็จกันหมดแล้วทุกคนดูที่เราจะต้องทำต่อเราจะสร้างฟังก์ชั่นให้มันวิ่งอยู่นี่กำหนดฟังก์ชัน run ไปหาอัปเดตมันวิ่งไปแล้ว เด็ก ๆ บอกว่าทำไมวันนี้โค้ดเยอะจังเลยคือมันยาวน่ะแต่พอสร้างแล้วมันจะใช้ไปได้ครั้งต่อไปได้ เพราะฉะนั้น ตัวนี้นะคะ เราจะไปที่บรรทัดที่ต่อจาก class ไหมคะ บรรทัดสุดท้ายของคลาส Enter ลงไป ใส่ hashtag หน่อยเราจะบอกเขาว่าโปรแกรมบอกตัวเองออกตัวเองนี่ ถ้าใส่แฮชแท็กในบอกตัวเองนะคะ ว่าตรงส่วนนี้เราทำอะไรสร้างฟังก์ชันค่ะ ฟังก์ชัน ตรงส่วนนี้เราจะสร้างฟังก์ชัน run นะคะ ที่ชื่อว่า Run กับ Update Run กับ Update ก็อัพเดทรูปแบบของการสร้างฟังก์ชันก็คือ definition นั่นเอง เพราะคำว่า def นั่นเองนะคะ Tap Tap เข้าไปแค่ 1 ครั้งนะคะ มันจะไม่อยู่ตรงกับ self นะมันจะอยู่ก่อน self ดี เลือกแบบฟังก์ชันนะคะ แต่เด็กแล้วก็เลือกฟังก์ชัน definition ที่ฟังก์ชันก็คือ run ตัวแรกตัวแรกเขียว ๆ นี่ในวงเล็บนี่ไม่ใช่ในวงเล็บขึ้นคำว่าฟังก์ชันนี่เราแก้เป็น run นะคะ เพราะฟังก์ชันที่เราใช้มันชื่อว่า run เราจะใช้มัน Balance แล้วก็เรียก self มา และเลือก self ในส่วนของบรรทัดที่ 2 นะคะ พิมพ์ self ค่ะ คลิกเสร็จแล้วเลือก self กด run underscore Animate นะคะ Animate มาจาก Animation แหละจะยาวไป Anน่ะRun Anime Anime Anime Anime Anime นี่สั้นไป จะงงไหมนี่ เอาแอนนิเมทละกัน True ทำงานเมื่อเป็นจริงจะใส่เงื่อนไขแล้วนะคะ เท่ากับทรูใช้ทรูใหญ่นะที่เลือกครูผู้ใหญ่ไหมคะ เรามีฟังก์ชันแล้วสร้างอีก 1 ฟังก์ชันนะคะ dep มันเดิมเลือกแบบฟังก์ชันเหมือนเดิมตำแหน่งชื่อฟังก์ชันเปลี่ยนเป็นเราสร้าง 2 ตัวนะเราบอกเราจะสร้าง 2 ตัวก็คือรันกับ Update นะคะ ชื่อฟังก์ชันไม่จำเป็นต้องใช้ตัวใหญ่เรียกใช้ self ค่ะ แล้วก็ใส่โคลอนแล้วก็เรียกใช้ speed ในส่วนของ statement หรือ past นี่นะคะ เราจะมากำหนดเงื่อนไขให้มันมันทำงานนั่นเองนะคะ ก็คือใช้คำสั่ง If ค่ะ เลือก if statement นี่ If Condition ตัวแรก ไม่พิมพ์เองนะเด็ก ๆ ไม่อย่างนั้น เดี๋ยวรูปแบบมันจะผิดให้เลือก i If condition นะคะ ไม่พิมพ์นะคะ เลือกใช้เรียก self มาแล้ว . เลือก Run Anime เราที่สร้างไว้มาใช้งานถ้ามี if คำสั่งเท่ากับของ if เราต้องกด 2 ตัวนะคะ = = True True พิมพ์ t ละเลือกผู้ใหญ่นะคะ ตรงส่วนสไปรท์น้านะคะ พิมพ์เซลล์เดิม self self CU เลือก current.sprite กด Enter เราจะเพิ่มนึกออกนะ พอพอเวลาเวลาที่มันเคลื่อนนะคะ ตำแหน่งปัจจุบันมันเริ่มที่ 0 มันจะนั่นเราจะต้องเพิ่มค่าให้มันบวกนะคะ บวกใส่เครื่องหมายบวกแล้วก็เท่ากับ ก็คือเพิ่มความหมายก็คือค่าไฟบวกแล้วเท่ากับแสดงว่าเพิ่มนะคะ บวกอะไรเข้าไปให้บวกเข้าไปใน Speed speed ที่เราสร้างไว้ กด sp แล้วเลือก speed กด Enterนะคะ เราจะเพิ่มเงื่อนไขซ้อนเงื่อนไขอันนี้เพิ่มแค่เพิ่มความเร็วเข้าไป กด i แล้วเลือก condition เหมือนเดิม if int i-n-t นี้นะคะ ไม่ใช่ตัวแปรมันเป็นวงเล็บค่ะ ใส่เปิดแล้วปิดใส่เข้ามาทีเดียวเลยนะ จะได้วงเล็บจะได้ไม่หายว่าอย่างนั้นเถอะ self พิมพ์ self และเลือดนะคะ .current Spice หาพิมพ์และเลือก currentเงื่อนไขก็คือให้มันเช็กว่ามันยังน้อยกว่าหรือเท่ากับ length length นะคะ l-e-n- length ใส่วงเล็บค่ะ เราจะเลือก self.sprites นะคะ รอบนี้จะเลือก spritนะ s p r i t e s sprites S ไหมคะ ใน length เลือก self.sprites นะคะ ตรง statement pass นะคะ พิมพ์ self เหมือนเดิมเลือก self พิมพ์ cu และเลือก self.current.sprites = 0 าหารลำต้นของเซลล์พาเลสเท่ากับศูนย์ตอนนี้มันกำลังเช็คให้มันเช็คค่ามันจะวนมันหมดลูกอ่ะแล้วก็เป็นเหมือนเดิม run animate นะคะ เลือก run animate 2 โอเคถ้าไม่เป็นจริงกระจกกันทำงานแล้วทำเมื่อจริงมันจะเข้ามาเช็กค่าก่อนเปิดแอปใหญ่และเลือกฟ้องบรรทัดนี้เสร็จแล้วอ่ะย้อนหลังกลับไปที่ตำแหน่งแรกนะคะ ตามค่า พิมพ์เซลล์ค่ะ แล้วI เลือก Image = self เหมือนเดิม sprites S นะคะ ไปที่เติม sprites เลือก sprites สี่เหลี่ยมใหญ่วงเล็บสี่เหลี่ยมใหญ่ เรียก int int int น่ะเลือกในวงเล็บเข้าไปในวงเล็บเลือก self.current.sprites นะคะ สำเร็จไปอันนี้เราทำส่วนของฟังก์ชัน Run กับ Update เสร็จแล้วนะคะ มี 2 ตั้งแต่ออกมาทันทีเลย เดี๋ยวจะไปเช็กตำแหน่งนะคะ เด็ก ๆ ตำแหน่งของฟังก์ชันดูต่อก่อนนะคะ วันนี้อาจจะยาวหน่อยแต่ผลน่าจะคุ้มค่าพอใจน่าจะเป็นที่พอใจของเด็ก ๆ อยู่ เราจะมาเรียกใช้ตัวนี้ที่เรากำหนดแล้วแต่เราต้องเรียกใช้มันนะคะ ตรง... เงื่อนไข if key ปกติ velo Movie จะต้องเป็น pygame.left K_RIGHT ดูนะคะ เด็ก ๆ จะเรียกใช้ตัวแปร cat ที่เรียกฟังก์ชัน run มาทำงาน นะคะ ทีนี้ที่เราจะไปลบพอจะมีตรงไหนบ้าง เราจะเริ่มลบแล้วนะลบตรงนี้นะคะ นำเข้าภาพนี่ ลบออกเลยเพราะเราเอาไปไว้ที่ขาดแล้วเด็ก ๆ ไปหาตัวเดิมโพสเดิมเก่าลบออกนะคะ เดี๋ยวมันยังลงดีที่เรานำรูปเข้าในสัปดาห์ก่อนนะ เราเขียนแฮชแท็กไว้อยู่ลบออกนะคะ Continuous ลองกด b ดู test ค่ะ C + B ก็มาหาบรรทัดที่อะไร นี่ LINE 75 LINE 75ว่าอย่างไร ดูบรรทัดนะคะ ของใครของมันมันบอกว่ายังไง Identity unexpected ครับ มันบอกว่า identation unexpected ขอดูโค้ด ประโยชน์ของ code นะคะ ไปที่การตั้งค่าทั่วไป3 พอย้ายตำแหน่ง เอา screen ไปใส่ข้างล่างไปใส่ล่าง screen.blit นะคะ โอเค ไปต่อ ไปต่อ เราน่าจะต้องสร้างตรงนี้อีกตัวหนึ่งรู้แล้วเราลืมตรงนี้ไปด้วย โอเคนะคะ เพิ่มโค้ดอีก 3 บรรทัดนี่เห็นนะ Moving Spice ที่เราสร้างเสร็จแล้วอ่ะต้องมาอยู่ตรงนี้ เราจะไปเราจะไปที่ตำแหน่งการแสดงผลของเรานะคะ เพิ่มโค้ดอีกแล้วก็ให้เด็ก ๆ เดี๋ยวก่อนอื่นเลือกตรงส่วนของการตั้งค่าทั่วไป 3 บรรทัดนี้นะ แล้วก็กด Ctrl + X เอาไปไว้ข้างล่าง class นะคะเด็ก ๆ นี่เอาวางไว้ก่อนหน้ากำหนดหน้าจอเกม ต้องขยับตำแหน่งอะไรสักอย่างหนึ่ง พิมพ์ Moving เห็นไหม moving ก็ให้มันวาดนะคะ ให้มัน d r a w draw อะไรให้มันวาดยีนส์แล้วก็เลือกใช้คำสั่ง Update นะคะ Movie เลือก Update เรียก function Update ให้ค่าเริ่มต้นอยู่ที่ 0 ตำแหน่งนะคะ 25 เลือก pygame มาใช้งาน น็อตคลิ flIP นะคะ ใส่วงเล็บน่าจะ 76 มันบอกว่าอย่างไร screen.blit Unexpected ไม่รู้จัก attribute module เรียกฟังก์ชันผิดนี่เอง ไม่เป็นไร ทำไมไม่ขึ้น moving spirte cat cat You Are Not function of the fastest ผิดอีกหรือ บอกว่าไม่รู้จัก attribute clock เล็ก 74 อยู่ไหน 74 in module tract moving error function of the fastest มันจะเป็นไปได้ไงไม่รู้จัก Add ไม่รู้จัก add ใส่... เข้าไม่ได้ข้ามตัวไหนไป self.image to event dino movingนี่ไหม ไม่นี่ หา_sprites.add add ไม่เจอ หมดแล้วนี่น่ะ ติดไว้ก่อน error 1 บรรทัดนะครับ จะไปลองอยู่ในเครื่องตัวเองเรื่องของเรื่องคือ run เครื่องตัวเองออกแล้วมันอยู่นี่ไม่ออกคือคืออะไรครับ พี่น้องข้ามไปก่อนเดี๋ยวเรามาต่อสัปดาห์หน้า มันยังไม่วิ่งให้เรา ขึ้น Error มันหายไปไหนท่อนหนึ่ง สำหรับวันนี้จะพอแค่นี้ก่อนนะคะ ขอบคุณพี่ล่ามนะคะ เดี๋ยวเราจะมาต่อกันในสัปดาห์หน้าค่ะ ขอบคุณค่ะ วิธีอัปเดต