Space Flare update 0.2a แล้ว เยร้~~~! มาพร้อมกับตัวเกมเล่นผ่านหน้าเว็บ
posted on 05 Jun 2010 23:12 by illuminist in IlluministGames, Programming, SpaceFlareเปิดเทอมมาได้อาทิตย์นึงแล้ว ก็ไม่ได้มามาอัพบล็อกนานไปหน่อย (ไม่รวมเอนทรี่เที่ยวรพ.อันที่แล้วนะ) ก็เปิดเทอมแล้ว เวลาว่างก็น้อยลงเพราะว่าเทอมนี้ลงโหด อัดไป 22 หน่วยกิตเต็มๆ หอก็ยังไม่มีให้อยู่อีก เฮ่อ~
ในขณะเดียวกันนี้ก็ต้องทำเอนจิ้นโมมิจิไปด้วย ไหนๆละก็อาศัยวิธีการ "เจียด" เวลาว่างอันแสนน้อยนิดมาทำเกม Space Flare ต่อสะหน่อย
คำเตือน : ถ้าท่านไม่สนใจด้านโปรแกรมมิ่ง และต้องการจะเล่นเกม จงข้ามไปยังท้ายเอนทรี่นี้โดยไว
ต่อจากครั้งที่แล้วที่เอา SS เกม Space Flare รุ่น 0.1b มาลงไว้ ตอนนี้ก็ได้มีการพัฒนาต่ออย่างก้าวกระโดด เพราะเพิ่งจะมารู้ว่า...
"Function ตรีโกณมิติ ใน Java มันใช้ Radian คิด!!!!"
เฟลกันอย่างแรงเลยทีเดียว ไอ้เราก็ใส่ degree มาตลอด
พอรู้งี้แล้วก็ แก้ไขกันมันเลย โชคดีที่จาวามีฟังก์ชั่น toRadian toDegree แถมมาให้ด้วย ก็เลยใช้ซะคุ้มค่าเลย
ปัญหาจากครั้งที่แล้วก็สามารถแก้ไขได้หมดแล้ว ซึ่งก็จะมีดังนี้
พาร์ติเคิลที่มีมันจะไม่แสดงผลในช่วงการเคลื่อนที่ 180-270 องศา
เป็นเพราะว่าการเช็คชีวิตของพาร์ติเคิลผมจะใช้วิธีตรวจจากความเร็วทั้งสองแกนเอา ถ้าความเร็วทั้งสองแกนต่ำกว่าที่กำหนดไว้ก็จะดีดพาร์ติเคิลนั้นออกจากระบบเลย
จาก expression เก่าที่ใช้คือ if(speed.x < uboundSpeed && speed.y < uboundSpeed) ก็จะสั่งให้พาร์ติเคิลนั้นเสีย แต่ปัญหาที่เกิดคือ ที่องศา 180-270 ความเร็วทั้งสองแกนจะเป็นลบทั้งคู่ ทำให้มีค่าต่ำกว่า uboundSpeed จึงทำให้พาร์ติเคิลถูกดีดออกตั้งแต่แรกยังไม่ทันที่จะได้วิ่งด้วยซ้ำ
การแก้ไขคือ ใส่ฟังชั่น abs หรือค่าสมบูรณ์ ไว้ที่ความเร็วทั้งสองแกน ก็จะทำให้สามารถตรวจสอบได้แล้ว
พาร์ติเคิลระเบิดที่เป็นวงกลมก็ไม่เป็นไปตามตำแหน่งที่วางไว้
ก็มีสาเหตุมาจากการวาดของ OpenGL โดย OpenGL จะมีวิธ๊การวาดคือย้ายจุดที่ต้องการวาดไปก่อน แล้วก็วาดจุดลงตำแหน่งที่สัมพันธ์กับจุดที่ย้ายไปก่อนหน้า
แต่ว่าของเก่าที่ผมทำคือ ย้ายจุดไปแล้ว แต่ว่าดันไปบวกพิกัดที่จะวาดเพิ่มเข้าไปอีก ทำให้พิกัดวาดนั้นเลยเถิดออกไปไกลทีเดียว
การแก้ไขคือ ลบพิกัดที่เผลอไปบวกเพิ่มนั่นซะ จบข่าว...
แรงต้านออปเจ็คเพี้ยน
อันนี้ผมไปหาข้อมูลบนอินเตอร์เน็ทมา จริงๆแล้วส่วนตัวผมเองก็ไม่เก่งในเรื่องฟิสิกซ์เท่าไหร่ แต่พอเห็นสมกาของจริงแล้วถึงบางอ้อเลยทีเดียว
สมการคิดตำแหน่งละความเร็วโดยขึ้นกับเฟรมเรตคือ position += speed * tick (แกนเดียวสมมุติว่าเป็นสองแกน)
สมการคิดแรงต้านใหม่ คือ
realResist = -speed * resistRate
speed += realResist * tick
ผลการทดสอบคือแรงต้านมีความเที่ยงตรงมากกว่าเดิม(เยอะเลยทีเดียว)
-------------------------------------------------------------------------------------------
ปัญหาก็แก้หมดแล้วนะครับ แล้วก็จะมีบางส่วนที่เพิ่มเติมเข้าไปคือเรื่องของสีสัน เอฟเฟคเบลอที่ทำได้แล้ว เอฟเฟคจอสั่นที่เป็นผลพลอยได้ของการเบลอ ทำให้เวลาอุกบาตระเบิดรู้สึกว่ามีพลังมากขึ้นเยอะๆ และก็มีเอฟเฟคพาร์ติเคิลย่อยๆเพิ่มเข้าไปด้วยครับ
ตัวเกมนี้จะถูกโหลดมาจากเครื่องผมนะครับ เพราะพอดีว่าบล็อค exteen รู้สึกว่ามันจะอัพอย่างอื่นไม่ได้เลยนอกจากรูปภาพ แล้วก็ไม่รู้จะไปอัพโฮสต์ที่ไหนด้วย
ดังนั้นถ้าเกิดว่าเล่นไม่ได้ขึ้นมาก็ขอโทษด้วยนะครับ เพราะผมอาจจะปิดเครื่องอยู่ หรือไม่ก็อยู่มออยู่ทำให้ไม่สามารถที่จะต่อเข้ามาจากภายนอกได้
เอาเป็นว่า ถ้ารูปข้างล่างนี้ไม่ขึ้นก็แสดงว่าเล่นไม่ได้นะครับ (ไม่นับพวกที่มี cache อยู่ในเครื่อง)
edit @ 15 Jun 2010 01:39:40 by Illuminist Ova
