ตอนนี้กำลังพัฒนาโปรแกรมSdts Controler ซึ่งเป็นโปรแกรมเขียนคำสั่ง เพื่อแสดงเส้นสามมิติ
ซึ่งเป็นแนวคิดที่สำคัญของLife Filling และพัฒนาให้สามารถใช้กับCollada Fileได้ สำหรับคนที่ใช้
โปรแกรมสร้างสามมิติ ตามทฤษฎีแล้ว ถ้าดึงค่าดั้งเดิมของไฟล์packageได้ ก็สามารถใช้Item
ของThe Sims 3ได้ ในทางปฏิบัติ ไม่แนะนำให้ใช้ เพราะอาจมีปัญหาทางด้านความไม่เข้ากันของคำสั่ง
หรือปัญหาด้านลิขสิทธิ์ การเขียนSdtsแบบง่ายๆ
ในที่นี้จะมาสอนคำสั่งการเขียนสามมิติด้วยsdts fileแบบง่ายๆ ที่ใครๆก็สามารถทำได้
สร้างเสร็จแล้วสามารถนำไปใช้ในLife Fillingได้ หรือใช้สร้างAtimation หรือใช้นำเสนอผลงาน
หรือใช้ทำอื่นๆก็ได้ (แต่ต้องใช้กับโปรแกรมที่รองรับไฟล์Sdts หรือไฟล์Collada) รูปแบบการคำสั่ง คำสั่งหลักที่จะทำเป็นอันดับแรก จะอยู่ในระบบMain
sdts(0001)
system Main()
{
//เขียนคำสั่งที่นี่
}
รูปแบบจะคล้ายกับการเขียนภาษาคอมพิวเตอร์ทั่วไป แต่ไม่ต้องมีสัญลักษณ์ ; ต่อท้ายคำสั่ง
ใช้คำสั่ง// เพื่ออธิบายข้อมูลต่างๆ โดยจะไม่รันไปทำงานด้วย นับตั้งแต่// จนจบบรรทัด
ใช้คำสั่ง/*และ*/ เพื่ออธิบายข้อมูลต่างๆ เหมือน// แต่ต่างตรงที่จะอธิบายนับตตั้งแต่/* จนถึง*/เท่านั้น
คำสั่งหลัง*/ จะถูกรันไปทำงาน ส่วนในบรรทัดหลัง// จะไม่ถูกรันไปทำงานทั้งหมด
คำสั่งการแสดงผลสองมิติ การแสดงผลสองมิติ เป็นการแสดงผลแบบธรรมดาของคอมพิวเตอร์ คำสั่งที่ใช้สั่งการคือ
point(x1,y1,0/ x2,y2,0/ x3,y3,0 ......) ซึ่งจะแสดงผลเป็นเส้นตรงจากจุดที่หนึ่งไปจุดที่สอง โดยใช้แกนsdts
ซึ่งเป็นระบบพิกัดคาร์ทีเซียน(Cartesian Coordinate) ซึ่งเป็นแบบที่รู้จักในคณิตศาสตร์
ค่าแกนy จะมากขึ้นจากล่างไปบน มีหน่วยเป็นพิกเซล(Pixel)
ตัวอย่าง สร้างรูปสี่เหลี่ยม(0,0) (10,0) (10,10) (0,10)
sdts(0001)
system Main()
{
point(0,0,0/ 10,0,0/ 10,10,0/ 0,10,0)
}
โปรแกรมจะสร้างเส้นจากจุด0,0 ไปยัง10,0 จากจุด10,0 ไปยัง10,10 จากจุด10,10 ไปยัง0,10
และจุดสุดท้ายจะถูกสร้างเส้นเชื่อมต่อกับจุดแรกอัตโนมัติ แต่ถ้าไม่ต้องการให้เชื่อมกับจุดแรก
ให้ใส่& ต่อท้ายจุดสุดท้าย เช่น point(0,0,0/ 10,0,0/ 10,10,0/ 0,10,0&)
ที่ต้องใส่,0 ต่อท้ายแต่ละจุด เช่น จุด10,10 ต้องเขียนเป็น 10,10,0 เพราะคำสั่งpoint เป็นคำสั่ง
สำหรับแสดงผลสามมิติ ตอนนี้เราอยู่ในบทการแสดงผลสองมิติ จึงให้แกนzเป็น0 จึงต้องต่อท้ายด้วย,0
ในกรณีที่ต้องการแสดงผลในระบบพิกัดหน้าจอ(Screen Coordinate) ที่เป็นระบบพิกัดในคอมพิวเตอร์ทั่วไป
ค่าแกนy จะมากขึ้นจากบนไปล่าง โดยใช้คำสั่งpoint.sc(x1,y1/ x2,y2/ x3,y3 ......) การเขียนคล้ายกับ
คำสั่งpoint เพียงแต่ไม่ต้องใส่ค่าแกนz เพราะคำสั่งpoint.sc รองรับเฉพาะสองมิติเท่านั้น
ภาษาsdtsเน้นพัฒนาระบบพิกัดคาร์ทีเซียน(Cartesian Coordinate)เป็นหลัก เพราะพัฒนาต่อยอดได้ง่าย
แต่ก็ใช้เวลาในการทำงานนานกว่าระบบพิกัดหน้าจอ(Screen Coordinate)
(แกนx แกนy แกนz ในภาษาsdts นับจากจุดศูนย์กลางของแกนระบบ ซึ่งอาจจะอยู่ตรงไหนของหน้าจอก็ได้
ไม่จำเป็นต้องอยู่ตรงมุมหน้าจอเสมอไป)
คำสั่งการแสดงผลสามมิติ การแสดงผลสามมิติของsdts จะใช้หลักการองศาการมอง และหลักการซ้อนทับของภาพ คำสั่งที่ใช้สั่งการเหมือน
กับการแสดงผลแบบสองมิติ คือใช้คำสั่งpoint(x1,y1,z1/ x2,y2,z2/ x3,y3,z3 ......) ในการแสดงผลสามมิติ
จะใช้ระบบพิกัดคาร์ทีเซียน(Cartesian Coordinate)เท่านั้น
ทั้งหมดที่สอนในที่นี้ ทั้งสองมิติ และสามมิติ จะเป็นเส้นสีดำ พื้นที่ในรูปจะเป็นสีขาว ถ้าต้องการเป็นสีอื่น
หรือตั้งค่าอื่นๆ จะต้องเขียนคำสั่งเพิ่มเติม แต่สำหรับตอนนี้ เพียงแค่นี้ก็คงเยอะสำหรับบางคนแล้ว
ยังมีอีกหลายเรื่อง เช่น ตัวแปร การคำนวณ การแสดงผลทางหน้าจอ การซ้อนทับ ระบบเฉพาะพิเศษ และอื่นๆ
เดี๋ยวจะมาสอนเพิ่มเติมในภายหลัง ส่วนโปรแกรมSdts Controlerกำลังพัฒนา
ตอนนี้แค่มาสอนล่วงหน้าก่อน พัฒนาโปรแกรมเสร็จ จะได้ใช้กันได้เลย ใครจะลองใช้Editorไปก่อนก็ได้
(แต่รันทำงานไม่ได้ เพราะโปรแกรมยังไม่เสร็จ) -----------------------------------------------------------------------------------------------------------------------------------------------------------------
quote : MANAMiiz
เราไม่ชบอคำพูดของ จขทก. เลยอ่ะ
อืมม' เป็นเจ้าของกระทู้แต่มาคอยพูดแซะคนอื่น ?
ในกรณ๊ที่ไปคอมเม้นท์กทไหนที่ไม่ชอบโอเคเข้าใจ' แต่นี่คือแบบคนอื่นเค้าตั้งหน้าตั้งตารอ
แต่ทำอะไรเกี่ยวกับโปรแกรมแบบนี้ไม่เป็นนี่นา แล้วมาพูดแบบอย่างงั้นอย่างงี้เราไม่ชอบเลยอ่ะ --/
เราว่านะ จขทก. เก่งมากนะคะที่ทำได้ถึงขนาดนี้' แต่ไม่ใช่ว่าใครทุกคนหรอกค่ะที่ทำเป็น แล้วอย่าเอาอายุมาอ้างนะเออ
เพราะมันขึ้นอยู่กับว่าใครสนใจทำอะไรแบบไหนมากกว่า แบบนี้ถ้าเริ่มศึกษาทำตอน 3 ขวบ 30 คงเมพอ่ะ จริงๆ --/
เราเป็นดำลังใจให้ จขทก. นะคะ' แต่อย่าใช้คำส่อเสียดกับคนอื่นเบยย
คือจริงๆ ไม่ได้ว่าคนที่มารอว่าไม่ได้เรื่อง แค่อยากให้คนที่ช่วยได้มาช่วย (แอบดันกระทู้นิดๆด้วย)
ส่วนเรื่องอายุ ก็แค่ตอบกระทู้กลับ ให้คำแนะนำกับคนที่เข้ามาให้กำลังใจ เขาบอกว่า เขาเป็นเด็ก
สร้างเกมไม่ได้ ก็ตอบกลับไปว่า เด็กไม่ได้สร้างเกมไม่ได้ เด็กสามารถสร้างเกมได้ แต่ขึ้นอยู่กับว่า
สร้างเป็นหรือเปล่า อายุตัดสินความเป็นเด็กเป็นผู้ใหญ่ได้ แต่ตัดสินเรื่องความรู้และความสามารถไม่ได้
ถ้ากระทู้ไหนแรงไป ก็ขอโทษด้วยล่ะกัน
และก็กระทู้ไหนที่อ่านแล้ว จะให้หัวใจเอาไว้ แต่อาจจะยังไม่ได้ตอบทันที
เพราะมีเวลาตรวจสอบเข้ามาอ่านมาก แต่มีเวลาตอบกลับน้อย