Programming

สวัสดีครับ ' w')/*
 
ไม่ได้เข้ามาอัพเดคบล็อคนี้เป็นเวลาหนึ่งปีพอดิบพอดีเลย ถ้าดูจาก entry ที่แล้วนะครับ lol
 
วันนี้เข้ามาอัพเดตบล็อคใหม่ผมว่าหลายๆคนคงน่าจะเจอกับความแปลกตาที่ไม่ค่อยได้เจอในบล็อคอื่นๆที่ทุกคนทำกัน
 
ซึ่งวันนี้ผมทำไว้ก่อนสองอย่างก็คือ
- Background ที่ขยับได้ xD
- กับการโหลด Page แบบไม่เปลี่ยนหน้า!!
 
เอ๊ะยังไงการโหลดเพจไม่เปลี่ยนหน้า!??
 
 
ก่อนเข้าเรื่องนั้นลองมาดูวิธีการเปิดใช้งานก่อนละกันครับ
 
การเปิดการใช้งานนั้น ขั้นแรกคุณผู้ชมบล็อคนี้จำเป็นจะต้องใช้ Web Browser รุ่นใหม่เท่านั้นนะครับ ถึงจะสามารถเปิดการใช้งานได้อย่างเต็มที่
 
ในปัจจุบันนี้ อย่างน้อยๆที่ต้องใช้ก็คือ
- Internet Explorer 9 ขึ้นไปเท่านั้น ต่ำกว่านี้กากส์ครับ = =
- Mozilla Firefox 6+
- Google Chrome 13+
- Opera 11+
 
ขั้นต่อมา ถ้าเว็บบราวเซอร์รัน javascript ได้ก็จะเห็นว่ามีไอค่อนแปลกๆขึ้นอยู่ที่มุมล่างขวาของบล็อกนี้นะครับ ลองกดเข้าไปดูก็จะเด้งเมนูขึ้นมาว่าสามารถทำอะไรได้บ้าง ซึ่งก็จะมี Background Animation ที่ทำให้เมฆหมอกที่ตัว Background ค่อยๆไหลไปช้าๆครับ ดูๆแล้วก็เพลินดี
และอีกตัวเด็ดเลยคือ Use AJAX loader ซึ่งถ้าเปิดตัวนี้อยู่ก็จะทำให้การโหลดหน้าต่างๆนั้นเร็วขึ้น ประมาณ5-10 เท่าได้จากเวลาโหลดปกติ เพราะว่าตัวนี้จะทำให้โหลดเพจเฉพาะในส่วนของ content ตรงกลางเท่านั้นครับ
ทั้งสองตัวนี้จะถูกปิดอยู่สำหรับคนที่เข้ามาชมครั้งแรกนะครับ ถ้าใครอยากเห็นการทำงานก็ให้เปิดการทำงานกาอนครับ
 
นอกเหนือจากการทำงานทั้งสองที่ผมร่ายไว้ก็น่าจะเป็นเรื่องของหน้าตาในblogนี้ที่มีความกว้างขึ้นมากกว่าเดิมถึง 980px ก็ทำให้ผมใส่รูปใหญ่ขึ้นได้ครับ -w- แล้วก็ในส่วนหัวเรื่องต่างๆก็ที่เห็นว่ามันมีส่วนที่เหลือบออกมาจากโครงของมันอยู่ผมก็ใช้cssในการจัดด้วยครับ ใครอยากปรึกษาอยากสอบถามการแต่งบล็อคด้วย css ก็ลองถามกันได้นะครับ
 
 
แล้วมาถึงข่าวร้ายกันหน่อย
 
เรื่องแรกเลยคือผมยกเลิกการพัฒนา Manga Downloader for Mangafox แล้วนะครับ เพราะผมว่าโครงสร้างของตัวโปรแกรมนั้นทำให้การอัตเดตโครงสร้างของเว็บทำได้ลำบาก และผมก็เจอสคริปสำหรับการอ่านMangaโดยเฉพาะบนเว็บ userscript ด้วย ซึ่งสำหรับเนื้อหาการใช้งานสคริปนี้ผมจะเอาไว้บรรยายใน Entry หลังๆนะครับ
 
และ Easy Massage Board ที่ผมทำไว้ ยังไม่ได้หายไปไหน มันยังใช้ได้อยู่แต่ผมพักมันไว้ชั่วคราวจนกว่าจะหาโฮสต์ให้มันได้นะครับ =w=
 
 
สำหรับหัวบล็อกที่ขาวๆอยู่ตอนนี้ ผมวางแผนไว้ว่าจะใส่เกมลงไปในนั้น ให้สมเป็นที่ดิ้นได้ของจริงหน่อย
 
วันนี้ก็หมดเรื่องคุยละครับ แล้วผมจะกลับมาอัพเดตบล็อคเรื่อยๆนะครับ
สวัสดีครับ ไม่ได้อัพบล็อกมานานเลยทีเดียว เหตุผลหนึ่งแน่นอนว่าติดเกมแฟลซครับ =w=" แต่ก็มีความคิดว่าจะเขียนเกมบนแฟลซบ้างเพราะว่ามันจะเผยแพร่ง่ายกว่า ถึงไม่ค่อยดังน่ะนะ เดี๋ยวค่อยพูดกันทีหลังเพราะวันนี้มีของดีมาให้เล่นกัน
 
ก็คือ Easy Massage Board ที่อยู่บนหัวบล็อกนี้เอง แน่นอนว่ามันคล้ายๆ Shout Box ทั่วๆไปครับ แต่ว่างานนี้มีรับรอง BBcode ด้วย พร้อมกับการแบ่งประเภทของข้อความตาม Tag และรองรับข้อความที่ยาวกว่า ShoutBox อื่นบางตัว อ้อ..ไม่จำกัดข้อความโพสต์ต่อชั่วโมงด้วย แต่ว่าต้องเว้นระยะห่างระหว่างการโพสต์ 10 วินาทีเพื่อไม่ให้เป็นการสแปมเกินไป
 
สรุป Feature นะครับ
  • สามารถใส่ข้อความได้ 255 ตัวอักษร
  • แบ่งชนิดข้อความที่โพสต์ได้ตาม Tag
  • เปิดเลือก Tag เพื่อดูข้อความได้
  • รองรับ BBCode พื้นฐาน
  • สามารถอัพเดตหน้าได้ตลอด
  • ใช้ XML ในการโหลดข้อมูล ทำให้สามารถประยุกต์ใช้กับโปรแกรมอื่นได้ด้วย
ผมทำตรงนี้ขึ้นมาเพื่อศึกษา HTML PHP CSS MySQL JavaScript Ajax XML และอื่นๆที่เกี่ยวข้อง

ช่วงนี้ยังเป็นช่วงทดสอบอยู่นะครับ ถ้าใครสนใจก็สามารถขอ PHP โค้ดที่ผมได้ฟรีครับ สามารถแก้ไขได้ทั้งหมดแต่ต้องแจ้งส่วนที่ถูกแก้ไขมาที่ผมด้วย ผมใช้ source code Javascript บางส่วนจากอินเตอร์เน็ทก็อย่าลืมทำตามลิขสิทธ์การใช้งานนะครับCool แต่ว่าต้องหาโฮสต์เองนะ

แล้วก็มาเรื่องที่ผมหายไปค่อนข้างนานทีเดียว เหตุผลแรกคือผมพบว่าภาษา Java นั้นเขียนเกมได้ง่ายก็จริง แต่ก็ปาะสิทธิภาพการทำงานโดยรวมนั้นค่อนข้างต่ำ ดังนั้นผมจึงกลับไปศึกษา C++ อีกครั้ง ซึ่งก็เป็นเรืองโชคดีที่ผมเจอ library ตัวหนึ่งที่ใช้ opengl ทำพอดี ก็เลยต้องหาวิธี implement เพื่อให้ใช้งานได้ตามที่ต้องการ

แล้วก็มีอีกช่วงนึงที่ผมติดเกมแฟลซมาก -w- เนื่องมาจากว่าตอนนี้อยากลองหาไอเดียทำเกมใหม่ๆเลยลองตระเวนตามเว็บเกมต่างๆ ซึ่งแน่นอนว่าได้ท่องเที่ยวไปตามเว็บต่างๆมากมายที่มีเกมแฟลซอยู่ อย่างเว็บแรกๆเลยคือ Armorgames ซึ่งเป็นกลุ่มที่พัฒนาเกมแฟลซกันอย่างจริงจัง แต่แล้วก็ดันไปลงที่ Newgrounds ที่เป็นเว็บคล้ายๆกับ Portal ซึ่งเกมแฟลซจากที่ต่างๆจะต้องมาลงที่เว็บนี้ ผมติดใจกับการโหวตเว็บนี้มากเพราะว่าใครๆก็ได้สามารถอัพโหลดแฟลซของตัวเองขึ้นเว็บได้ แน่นอนว่าพวกมือบอนก็จะอัพอะไรแปลกๆขึ้นไปด้วย และระบบโหวตก็จะเป็นแบบโหวต 0-5 ถ้าได้คะแนนน้อยก็ถูกลบทิ้ง ในความคิดของผมจะติดสินแบบ ไอนี่ "ทอง" ไอนี่ "ขยะ" ก็สนุกสนานมากสำหรับที่นี้

พอลง Newgrounds ไปซักพักก็รู้สึกเริ่มอยากทำแฟลซขึ้นมา เลยลองไปศึกษาแฟลซดู ซึ่งปรากฎว่าช่วงนี้เป็นช่วงต่อระหว่าง AS2 กับ AS3 (ภาษาโปรแกรมแฟลซ ActionScript) ทำให้ไม่ค่อยมี Tutorial เกี่ยวกับ AS3 เท่าไหร่ เขาว่ากันว่า AS3 จะเขียนโค้ดหนักกว่า 2 แต่ผมไม่หวั่น ถ้าจะให้ผมไปวาดรูปเองนนี้ตายแน่ๆ =w=

 

 

เปิดเทอมมาได้อาทิตย์นึงแล้ว ก็ไม่ได้มามาอัพบล็อกนานไปหน่อย (ไม่รวมเอนทรี่เที่ยวรพ.อันที่แล้วนะ) ก็เปิดเทอมแล้ว เวลาว่างก็น้อยลงเพราะว่าเทอมนี้ลงโหด อัดไป 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