Test Animation #2 : Design
posted on 01 Nov 2005 03:39 by 9tawan in Project
งานนี้คงเป็นตัวทดสอบที่ค่อนข้างเข้าใกล้ "ตัวจริง" แล้ว คือ ผมพยายามจะสร้างชุดคำสั่งที่มันใช้ง่าย เขียนลักษณะ Script ได้ (คือ พยายามเขียนไม่ให้ต้องใช้ชุดคำสั่งใน Loop) รวมทั้งการออกแบบโดยยึดหลัก Object Oriented เป็นหลัก แต่จะไม่ใช่ยึดติดกับ OOP อะไรที่ไม่จำเป็นก็จะไม่ใช่ครับ
ตอนนี้กำลังพยายามคิดถึงส่วนที่เป็น Graphic อยู่ ก็มี Animation และ Event-Response Animation ที่ไว้ทำ GUI ต่าง ๆ
คลาส Animation ก็จะต้องมี method "void Draw(Image *buffer ,int frame)" เพื่อที่จะวาดภาพอนิเมชั่นลงไป โดย Buffer คือภาพที่จะวาดลงไป ส่วน frame หมายถึง จำนวนเฟรมที่ผ่านไปจากการเรียกครั้งสุดท้าย (เพื่อทำ frameskip น่ะครับ)
คลาส EvAnimation นั้น จะเป็นคลาสที่สืบทอดมาจาก Animation อีกทีนึง โดยที่คลาสนี้สามารถรับ Event จากเมาส์และคีย์บอร์ดได้ โดยจะมี method "bool DoAction(MouseAction m, KeyboardAction k)" ซึ่ง ตัวจัดการ Event จะเรียกฟังก์ชั่นนี้ โดยเรียกจากหน้าสุดลงไป ส่วนค่าที่คืนกลับมานั่นจะเป็นค่าที่บอกว่า จะให้เรียกฟังก์ชั้นนี้จาก object ที่อยู่ต่ำกว่าหรือไม่ (true ก็ใช่ false ก้ไม่ เป็นต้น) ส่วนการเช็คว่าชนไม่ชน ทำอะไรยังไง คนที่Implement Object นั้น ๆ ต้องเป็นคนจัดการเอง เหอ ๆ
คลาส EvAnimation จะมีคลาสลูกที่พิเศษแน่ ๆ อยู่หนึ่งก็คือ คลาส MessageBox ทำหน้าที่วาด MessageBox ที่ข้างใต้ของจอ (ตามมาตรฐาน RenAi Game) โดยคิดว่าจะให้คลาสนี้ทำงานแบบ Singleton (ทุกครั้งที่มีการสร้าง Instance ก็จะได้ Instance เดิมกลับไป) ยังไม่รู้ว่าจะทำอย่างนี้ดีมั้ย เหอ ๆ อ้อ Object ของคลาสนี้ปกติแล้วจะอยู่ใต้สุดของ Event Stack ครับ
อันอื่นไม่ค่อยหน้าหนักใจแฮะ อุอุอุ ไม่ค่อยมีอะไร เสียงก็สั่ง Playsound ไปเลยง่าย ๆ ไม่ได้เล่นผ่าน Network ด้วย หนักใจส่วน Graphic สุดนี่ล่ะ
คิดว่าอย่างน้อย ๆ น่าจะเสร็จก่อนวันศุกร์นี้ .. วันเสาร์-อาทิตย์จะได้ไปงาน Fat Festival ได้อย่างสบายใจ ..
อ้อ Test Animation #3 จะใส่ระบบ Script เพิ่มลงไปใน Test Animation #2 ตอนนี้ยังไม่แน่ว่าจะเป็น Script อะไร แต่คิดว่าน่าจะเป็น Ruby เพราะว่า 1. มันเป็น OO 2. คนใช้ RPG MakerXP จะคุ้นมืออยู่แล้ว
แต่ตอนนี้เอา #2 ให้เสร็จก่อนเถอะ !!
edit @ 2005/11/01 03:39:18
ตอนนี้กำลังพยายามคิดถึงส่วนที่เป็น Graphic อยู่ ก็มี Animation และ Event-Response Animation ที่ไว้ทำ GUI ต่าง ๆ
คลาส Animation ก็จะต้องมี method "void Draw(Image *buffer ,int frame)" เพื่อที่จะวาดภาพอนิเมชั่นลงไป โดย Buffer คือภาพที่จะวาดลงไป ส่วน frame หมายถึง จำนวนเฟรมที่ผ่านไปจากการเรียกครั้งสุดท้าย (เพื่อทำ frameskip น่ะครับ)
คลาส EvAnimation นั้น จะเป็นคลาสที่สืบทอดมาจาก Animation อีกทีนึง โดยที่คลาสนี้สามารถรับ Event จากเมาส์และคีย์บอร์ดได้ โดยจะมี method "bool DoAction(MouseAction m, KeyboardAction k)" ซึ่ง ตัวจัดการ Event จะเรียกฟังก์ชั่นนี้ โดยเรียกจากหน้าสุดลงไป ส่วนค่าที่คืนกลับมานั่นจะเป็นค่าที่บอกว่า จะให้เรียกฟังก์ชั้นนี้จาก object ที่อยู่ต่ำกว่าหรือไม่ (true ก็ใช่ false ก้ไม่ เป็นต้น) ส่วนการเช็คว่าชนไม่ชน ทำอะไรยังไง คนที่Implement Object นั้น ๆ ต้องเป็นคนจัดการเอง เหอ ๆ
คลาส EvAnimation จะมีคลาสลูกที่พิเศษแน่ ๆ อยู่หนึ่งก็คือ คลาส MessageBox ทำหน้าที่วาด MessageBox ที่ข้างใต้ของจอ (ตามมาตรฐาน RenAi Game) โดยคิดว่าจะให้คลาสนี้ทำงานแบบ Singleton (ทุกครั้งที่มีการสร้าง Instance ก็จะได้ Instance เดิมกลับไป) ยังไม่รู้ว่าจะทำอย่างนี้ดีมั้ย เหอ ๆ อ้อ Object ของคลาสนี้ปกติแล้วจะอยู่ใต้สุดของ Event Stack ครับ
อันอื่นไม่ค่อยหน้าหนักใจแฮะ อุอุอุ ไม่ค่อยมีอะไร เสียงก็สั่ง Playsound ไปเลยง่าย ๆ ไม่ได้เล่นผ่าน Network ด้วย หนักใจส่วน Graphic สุดนี่ล่ะ
คิดว่าอย่างน้อย ๆ น่าจะเสร็จก่อนวันศุกร์นี้ .. วันเสาร์-อาทิตย์จะได้ไปงาน Fat Festival ได้อย่างสบายใจ ..
อ้อ Test Animation #3 จะใส่ระบบ Script เพิ่มลงไปใน Test Animation #2 ตอนนี้ยังไม่แน่ว่าจะเป็น Script อะไร แต่คิดว่าน่าจะเป็น Ruby เพราะว่า 1. มันเป็น OO 2. คนใช้ RPG MakerXP จะคุ้นมืออยู่แล้ว
แต่ตอนนี้เอา #2 ให้เสร็จก่อนเถอะ !!
edit @ 2005/11/01 03:39:18
ใช่ซี้ เรามัน low tech
#1 By มิ้น : minimint on 2005-11-01 04:09