การใช้งาน AS3isolib แบบพื้นฐาน (ตอนที่ 2) by

31
Dec
1

ต่อจากคราวก่อนที่เราได้รู้จักส่วนพื้นฐานของ As3isolib กันไปแล้ว ในตอนนี้เราจะอธิบายถึงการนำมาใช้จริง โดยปกติแล้วเราจะนำคอนเทนท์ต่างๆที่สร้างใน Adobe Flash มาใช้

ขั้นแรกให้เรารัน isoGrid เปล่าๆมาก่อน เพื่อจะได้ Capture รูปภาพ Grid ไปใช้ในการจัดคอนเทนท์ต่างๆที่เราจะนำมาใช้ หลังจาก Capture เสร็จให้เราเปิด Adobe Flash ขึ้นมาและ Paste รูปลงไป

iso2-8

ในส่วนแรกให้เรานำรูปที่จะใช้มาใส่เข้ามาแล้วจัดให้มีขนาดพอดีกับ Grid 1 ช่อง

iso2-1

แล้วก็จะมาถึงในส่วนสำคัญ คือเราต้องกำหนดจุด Registeration Point หรือ จุด Pivot ให้อยู่ในตำแหน่ง ที่อยู่สูงที่สุดของพื้นวัตถุนั้นๆ สังเกตุตามภาพ

iso2-3

เลื่อนวัตถุโดยให้จุด Registration Point อยู่ที่มุมบนของช่อง Grid

เลื่อนวัตถุโดยให้จุด Registration Point อยู่ที่มุมบนของช่อง Grid

จากนั้น Edit วัตถุโดยเลื่อนให้พื้นของวัตถุ มีจุดสูงสุดตรงกันกับจุด Registration Point

จากนั้น Edit วัตถุโดยเลื่อนให้พื้นของวัตถุ มีจุดสูงสุดตรงกันกับจุด Registration Point

จากนั้นเราก็ทำการตั้งชื่อวัตถุนั้นๆโดยการคลิ้กขวา Property และเลือก Export for Action Script เพื่อที่จะนำ swc ไปใช้ต่อ จากนั้นก็ทำการ Publish โดยเลือก Export SWC ด้วย แล้วนำ swc ที่ได้ไปไว้ใน Lib ของ Action Script Project ของเรา

iso2-5

และทำการเพิ่มโค้ดที่ทำใน ตอนที่ 1 ตรงส่วนที่หลังจากสร้าง isoScene แล้ว

var iso:IsoSprite = new IsoSprite(); //สร้าง isoSprite ซึ่งเป็นตัวแสดงผลวัตถุต่างๆ

iso.sprites = [brick]; //รับค่าเป็นอาเรย์ ใส่ชื่อของวัตถุนั้นลงไป

iso.moveBy(CELL_SIZE,CELL_SIZE, 0); //ขยับไปที่ช่องแรก

scene.addChild(iso); //ใส่เข้าใน scene

พอรันก็จะได้ผลลัพธ์ดังนี้

iso2-6

ถ้าเราเขียนลูปวนแสดงผลของวัตถุก็จะมีหน้าตาออกมาเช่นนี้ครับ

iso2-7

เท่านี้โลก iso ของเราก็เริ่มดูเป็นรูปเป็นร่างแล้วล่ะครับ

การแบ่งตาราง (Database) ออกเป็นหลายๆตารางเพื่อลดขนาดของตารางลง by

31
Dec
0

เคยประสบปัญหาอย่างนี้ไหม “เคยออกแบบ Database ไว้เป็นตารางเดียวแต่มี field เยอะแยะ รวมถึง field ที่เป็นประเภท Text หรือ Longtext ไว้หลาย field พอในตารางมีจำนวน row เยอะมากๆๆ หรือข้อมูลที่เก็บใน field Text มีขนาดใหญ่มาก จึงเจอปัญหาขนาดของข้อมูลใหญ่มากตอนโหลดหรือเซฟ” วิธีแก้ก็ทำอย่างงี้ครับ เราก็สร้างตารางย่อยที่มี field 3 field คือ 1. field ที่เป็น key ของตารางหลักเอาไว้เป็น key ของตารางย่อยเช่นกัน 2. field ที่เป็น ประเภท Text หรือ Longtext ที่เป็นปัญหาของตารางหลัก 3. อันนี้มีหรือไม่มีก็ได้นั่นก็คือ timestamp นั่นเอง ทีนี้เราก็แก้ code ของเราให้เวลา load หรือ save ก้อมาทำที่ตารางย่อยนี้เลยไงครับ

วิธี config และใช้ nginx + php-fpm + fast-cgi เบื้องต้นให้ใช้งานกับ Codeigniter by

31
Dec
2

เนื่องด้วยทั่วๆ ไปแล้ว web server มาตรฐานทั่วๆ ไปที่ใช้งานกันคือ Apache แต่ว่า Apache นั้นบริโภค Memory อย่างไม่ไยดี และถ้าเว็บเรามีการใช้งาน static file จำพวกรูปภาพหรือ css, js มากๆ ก็จะกิน Memory หนักขึ้นไปอีก หลักการของ nginx จึงเปรียบเสมือนการเป็นป้ายบอกทางว่าถ้าเป็น static file ให้เรียกไฟล์นั้นๆ ขึ้นมาตรงๆ เลยไม่ต้องผ่าน apache หรือตัวกลางอื่นๆ แต่ถ้าเป็น Dynamic file เช่น PHP ก็ให้ส่งไปยัง Fast-cgi แทน ซึ่ง Fast-cgi จะทำหน้าที่อ่าน PHP เพียงอย่างเดียว ไม่ต้องเผื่อรองรับ static file จึงกิน Memory น้อยกว่านั่นเอง สุดท้ายจึงทำให้สามารถรองรับการใช้งานเว็บไซต์ที่มี traffic หนักๆ ได้อย่างสบายๆ กว่า apache มากหลายเท่าตัว

อันที่จริงแล้ว Apache ก็ไม่ได้มีแต่ข้อเสียขนาดนั้น ข้อดีของ Apache คือเหมือนเป็น All-in-one machine ติดตั้งตัวเดียว ทำงานได้ทุกอย่าง ถ้ามีคนใช้งานไม่มาก เราจะแทบไม่ต้องไปยุ่งกับการปรับ config เลยด้วยซ้ำไป เพียงแต่ว่าเมื่อเราต้องการให้รองรับการใช้งานหนักๆ ได้ เราจึงจำเป็นต้องใช้ “ผู้เชี่ยวชาญเฉพาะด้าน” ซึ่งในที่นี้คือ fast-cgi นั่นเอง และจะมี php-fpm คอยควบคุมสั่งการอีกทอดหนึ่งซึ่งแน่นอนว่าการ config เพื่อใช้งานจึงยุ่งยากกว่า แต่ก็แลกมากับประสิทธิภาพที่น่าพอใจ

การตั้งชื่อตัวละครในเกม by

31
Dec
0
อันนี้เป็นวิธีที่ผมใช้บ่อยๆเวลาทำเกมน่ะครับ ผมเองคิดว่าก็ไม่ใช่วิธีที่ดีที่สุดเท่าไร
แต่ก็เป็นวิธีที่รวดเร็วและง่ายดี
1. ตัวละครปกติ
เข้าพวกเว็บตั้งชื่อลูกไปเลยครับ เช่น เว็บ http://www.thinkbabynames.com/
ตัวอย่างการค้นหาชื่อผู้ชายที่่มีความหมายว่า กล้าหาญ(Brave)
2.ตัวละครเผ่าแปลกๆ เช่น มังกร ออร์ค เอลฟ์
ถ้าเป็นพวกนี้ผมใช้วิธี Search google เอาครับ
ใส่ตัวที่ต้องการแล้วก็ตามด้วยคำว่า name generator ครับ
เช่น dragon name generator
มังกร
ออร์ค
เอลฟ์
มนุษย์หมาป่าก็มี

อยากใช้ภาพบางส่วนแต่ก็ไม่อยากลบภาพ ทำยังไงดี? by

26
Dec
0

สมมติว่าเรามีรูป 2 รูปแล้วอยากจะใช้ภาพแค่บางส่วนมาผสมกัน

แต่ก็ไม่อยากจะลบต้นฉบับซักรูป จะำทำยังไงดีน้อ?

ปัญหานี้แก้ไม่ยากค่ะ :-D

เปิดรูปขึ้นมาทั้ง 2 รูปในโฟโต้ฉอปนะคะ

ในตัวอย่างเราจะลองสลับน้องหมาจากไซบีเรียนเป็นลาบราดอร์ค่ะ

เริ่มจากวางรูปซ้อนกันคนละเลเยอร์

เลือกคำสั่ง Add a mask ตรงปุ่มด้านล่าง

พอกดแล้วจะมีเหมือนหน้ากากของเลเยอร์นั้นๆ

ใช้สำหรับบังบางส่วนของภาพที่เราไม่ต้องการให้เห็นค่ะ

ทีนี้เราก็ใช้บลัชระบายตัวคนออกไปได้เลย ลบๆๆๆ

(จิ้มตรง mask ในส่วนที่จะระบายนะคะ)

จะเห็นว่าผู้ชายหายไปแล้ว เหลือแต่น้องหมาลาบราดอร์ให้สาวซานต้าจูง ฮ่าๆ

ด้วยวิธีนี้เราสามารถแก้ไขเมื่อลบภาพพลาดได้ด้วย

หรือถ้าต้องการรูปต้นฉบับคืน แค่ลาก mask ทิ้งก็เรียบร้อยแล้วค่ะ

ใช้วิธี Gradient ก็ได้เหมือนกันนะคะ สวยดี ;-)

กู้เงิน | เศรษฐกิจพอเพียง | สินเชื่อบุคคล | สมัครบัตรกดเงินสด | สินเชื่อ | เงินกู้ด่วน | ยืมเงินทรูมูฟ | เงินด่วนนอกระบบ