Wednesday, February 17, 2010

7. Operator Part1

โดยปกติในการเขียนโปรแกรมเราจะต้องมีการสั่งให้โปรแกรมดำเนินการโดยใช้เครื่องหมาย สัญลักษณ์ หรือฟังก์ชั่น ซึ่งในหัวข้อนี้เราจะมาว่ากันในเรื่องของ เครื่องหมายและการดำเนินการของเครื่องหมาย
แน่นอนคุณควรสงสัยเป็นอย่างยิ่งว่าใครถูกดำเนินการ ครับ ก็คือตัวถูกดำเนินการนั่นแหล่ะ หลายๆ คนอาจจะคุ้นๆ กับคำว่า Operator(ตัวดำเนินการ) กับ Operand(ตัวถูกดำเนินการ) ที่เค้าพูดเทห์ๆ ให้มือใหม่งงกันเล่นๆ
เรื่องของตัวดำเนินการนั้นมีอยู่ว่า ต้องมาคู่กับ ตัวถูกดำเนินการ รูปแบบประมาณนี้ครับ
operarand1 operator operand2
ตัวอย่างเช่น
3 + 2 ← จะพูดง่ายๆ มันก็กลายเป็นนิพจน์นั่นแหล่ะครับ
พูดกันง่ายๆ ตัวดำเนินการก็คือ ตัวที่จะนำเอาข้อมูล มาทำอะไรซักอย่าง ตามความหมายของตัวดำเนินการนั้่น อาจจะเป็นสัญลักษณ์ หรือ ฟังก์ชั่น หรืออะไรก็ได้
ต่อไปเราจะมาพูดถึง เรื่องของ ตัวดำเนินการประเภทต่างๆครับ
ซึ่งเนื้อหาก็จะนำมาจากหน้านี้ครับ
http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/operators.html
แต่อาจจะเพิ่มส่วนที่เป็นตัวอย่างเข้ามาครับ

Saturday, February 13, 2010

6. ตัวแปร

เมื่อนึกถึงตัวแปรแล้วหลายๆคนคงจะคิดไปต่างๆนานา แต่ตัวแปรที่ผมจะกล่าวถึงในหัวข้อนี้ก็คือ อักขระหรือข้อความที่เราจะใช้อ้างถึงข้อมูลในหน่วยความจำของคอมพิวเตอร์ เพื่อทำการเก็บข้อมูล และดึงข้อมูลออกมา เมื่อต้องการ

ถ้าจะเปรียบเทียบแล้ว ตัวแปร ก็เหมือนกระดาษที่เราใช้จดบันทึก และการจดบันทึกงานแต่ละงานต้องใช้กระดาษที่แตกต่างกันออกไป เช่นเดียวกับตัวแปรใน ActionScript ที่มีชนิดของข้อมูลให้เราเลือกใช้ตามความต้องการของแต่ละชิ้นงาน ซึ่งตัวแปรที่เราสามารถเรียกใช้ได้ใน ActionScript มีดังนี้

ชนิดของตัวแปร

หน้าที่

ตัวอย่างข้อมูล

Boolean

เก็บค่า บูลีน true/false

FALSE

int

เก็บค่าตัวเลขจำนวนเต็ม

-15

uint

เก็บค่าตัวเลขจำนวนเต็บบวก

99

Number

เก็บค่าตัวเลขเต็มบวก เต็มลบ รวมทั้งทศนิยม

3.15

String

เก็บค่าข้อความ

I'm Animatorizt”

Array

เก็บค่าตัวแปรหลายๆในชื่อเดียวกันแต่อินเดกซ์ต่างกัน

[1,3,7,5,3]

Object

เก็บค่าตำแหน่งอ้างอิงของตัวแปรต่างๆ

MyObject


ถ้าคุณคิดจะใช้ตัวแปรสิ่งแรกที่คุณควรจะทำนั่นก็คือการประกาศตัวแปร เพื่อให้ AVM จองพื้นที่ในหน่วยความจำให้คุณ ถึงแม้ในบางเวอร์ชั่นของ Flash IDE จะสามารถคอมไพล์ผ่านโดยไม่ต้องประกาศตัวแปร แต่เพื่อความเป็นระเบียบ และเพื่อที่จะได้อ่านโค๊ดง่ายคุณก็ควรจะประกาศตัวแปรเอาไว้

การประกาศตัวแปร

var variableName:dataType;

variableName เป็นชื่อของตัวแปรที่คุณต้องการประกาศ

dataType เป็นชนิดข้อมูลที่คุณต้องการ


ตัวอย่างการประกาศ

var A:Number;
//ประกาศตัวแปรชื่อ A ที่มีชนิดเป็น Number

var i:uint;//ประกาศตัวแปรชื่อ i ที่มีชนิดเป็น uint

var name:String;//ประกาศตัวแปรชื่อ str ที่มีชนิดเป็น String

และสุดท้ายครับ
แนะนำสำหรับผู้ที่อยากได้กระดาษรูปแบบต่างๆ
ที่อยากจะได้มาเขียนในงานต่างๆครับ
http://incompetech.com/graphpaper/

Friday, February 5, 2010

5. Convert Math to AS Expression

เมื่อคุณได้สมการที่สามารถคำนวณหาคำตอบของปัญหาของคุณได้แล้ว คุณจะต้องนำสมการที่ได้นั้นมาแปลงเป็นสมการที่ ActionScript จะเข้าใจ ดังนั้นในหัวข้อนี้เราจะพูดถึงการแปลงนิพจน์ทางคณิตศาสตร์เป็นนิพจน์ที่ตัวแปรภาษา ActionScript จะเข้าใจ เอาไปเลยครับ ตัวอย่าง
ตัวอย่างการแปลงนิพจน์ทางคณิตศาสตร์
คณิตศาสตร์(ออกภาษาพูดนิดๆ)ActionScript
A+BA+B;
C-DC-D;
E คูณ DE*D;
X หาร YX/Y;
sin A/sin BMath.sin(A)/Math.sin(B);
Log 2Log10(2);
103Math.pow(10,3);
รากที่สองของ 100Math.sqrt(100);

ปกติใน ActionScript เมื่อมีการเขียนนิพจน์ขึ้นเราจะต้องนำไปประมวลผลต่อในภายหลัง หรืออาจจะเก็บค่าไว้ ซึ่งการเก็บค่า ActionScript สามารถเขียนได้ดังนี้
C = A*B; ความหมายคือ สั่งให้ A*B จากนั้นเก็บค่าที่ได้ไว้ใน C โยนค่าจากขวาไปซ้าย

ในหัวข้อถัดไปเราจะเริ่มก้าวเข้าสู่ความเป็น ActionScriptWriter กันนะครับ....

Wednesday, February 3, 2010

How to use preFab and Away3D



I hope it useful for you.
หวังว่าคงเป็นประโยชน์น่ะครับ :)

Tuesday, February 2, 2010

4. Trigonometry and ActionScript

ตรีโกณมิติ หรือภาษาอังกฤษเค้าเรียกโก้ๆ ว่า Trigonometry ครับ ถึงแม้ว่าฟังก์ชันที่ทำงานทางด้านตรีโกณมิติ ActionScript จะมีมาให้แล้วใน คลาส Math แต่มันคงจะไม่เกิดประโยชน์อะไรถ้าหากคุณไม่รู้ที่มาแล้วความหมายของมัน และมาสามารถประยุกต์ใช้ได้
มาเริ่มเลยครับ ดูภาพข้างล่างนี้ครับ (ใช้โปรแกรม gimp วาดครับ สวยมั้ย)
รูปที่ 4.1

สมมุติว่ามันเป็นเกมนะครับ ไอ้วงกลมตรงกลาง เป็นศัตรู แล้ว ไอ้สามเหลียมเป็นตัวละครของผู้เล่นที่สามารถเคลื่อนที่ ขึ้น ลง ซ้าย ขวา ลักษณะของเกมคือ ศัตรูจะยิง อาวุธออกมาใส่ผูเล่น ถ้าผู้เล่นหลบทัน ก็ผ่านด่าน ถ้าผู้เล่นหลบไม่ทันก็จบเกม
ปัญหาคือ ทำยังไงจะให้ ศัตรูยิงตัวละครของผู้เล่นได้
(หลายคนตอบว่าคงเป็นไปยาก จะเป็นไปได้ไง อยากรู้อ่ะพี่ )

คำตอบของปัญหานี้ก็เราต้องใช้ความรู้ทางด้านตรีโกณมิติมาใช้ครับ
ก่อนที่จะไปถึงตรีโกณมิติเราจะต้อง ตอบได้ ว่า ....
เราจะหมุน ลำกล้องปืนของศัตรูไปกี่องศา
ทวนเข็มนาฬิกา หรือตามเข็มนาฬิกา
จากรูปที่ 4.1 จะเป็นว่าต้องหมุนตามเข็มนาฬิกาเป็นมุม theta องศา ใช่ไหมครับ
ถ้าเราหา theta ได้ ก็คือ เราจะรู้ว่าจะหมุนปืน ไปทางใด แล้วเราก็สามารถเขียนโปรแกรมให้ศัตรูยิงผู้เล่นได้อย่างเมามันแล้วล่ะครับ

ต่อไปมาว่าถึงเรื่องของ ตรีโกณมิติครับ
ในที่นี้เราจะพูดถึงตรีโกณมิติในแง่ที่ว่ามันเพียงฟังก์ชั่น ที่แทนค่าเข้าไปแล้วจะได้ค่าของฟังกั่นออกมา ส่วนรายละเอียดเกี่ยวกับ ตรีโกณมิติถ้าท่านชื่นชอบ ท่านสามารถสืบค้นได้จากเว็บอื่นๆ
รูปที่ 4.2

A,B,C คือ มุม
a,b,c คือ ความยาวของแตต่ละด้าน

รูปที่ 4.3


จากความรู้ข้างต้นเราก็จะสามารถหามุมได้โดยการวาดภาพก่อนครับดังนี้
รูปที่ 4.4

จากภาพบวกกับความรู้ที่สูตรที่ให้ในรูปที่ 4.3 เราก็จะตอบได้ว่า มุม theta ที่เราจะหมุนไปมีค่า
theta = atan(a/b)
แค่นี้ ส่วนสำหรับใครที่อยากเติมลูกเล่นวูปว๊าบ ก็คงต้องเขียนโค๊ดกันยาวหน่อย
แต่อย่างไรก็ตามในบางที่เมื่อเราไม่ทราบค่าความยาวของด้านสามเหลี่ยมเราก็สามารถหาได้โดยใช้ทฤษฎีปีทาโกรัสได้น่ะครับ อีกอย่างหนึ่งที่สำคัญก่อนจะจากกันไปวันนี้ครับ คือ : ในการเขียนโปรแกรมคอมพิวเตอร์เราจะใช้แค่บางส่วนของคณิตศาสตร์เท่านั้น ดังนั้นคณิตศาสตร์จึงจำเป็นสำหรับการเขียนโปรแกรมความพิวเตอร์ครับ (อันนี้ความคิดผมเอง)

Monday, February 1, 2010

haXe คืออะไร?

เนื่องจากมีการพูดถึง haXe ในหน้านี้ครับ
http://animatorizt.blogspot.com/2010/01/actionscript-30.html
ทำให้หลายคนเกิดความสงสัยว่า haXe คืออะไร ? นั่นดิมันคือตัวอะไร
Haxe เป็นซอฟต์แวร์ตัวหนึ่งที่สามารถสร้างไฟล์ .swf ให้เราได้ครับ ความสามารถก็ใกล้เขียนกับ Flex
Haxe เป็น open source อีกตัวที่น่าสนใจครับเพราะมีความสามารถค่อนข้างเยอะ อย่างเช่น
- สร้างไฟล์ .swf (อันนี้น่าสน)
- สร้างไฟล์ .js ที่เป็น จาวาสคริปต์ จาก .hx ของ haXe
- สร้างไฟล์ .php ด้วยการเขียน จาก haxe
- สร้างโค๊ด .as ของ ActionScript ให้เราได้ด้วยครับ
ฯลฯ
สรุปคือ haXe เป็นภาษาและซอฟต์แวร์อีกตัวครับ ที่สามารถทำ Flash ให้เราได้ และอีกหลายอย่างที่เราต้องการ จะว่าไปแล้วก็ดีเหมือนกันนะครับศึกษาแค่ haXe ตัวเดียวเราก็สามารถเขียนได้ ทั้ง ActionScript,JavaScript,PHP,CPP
http://haxe.org/doc/intro

ศึกษาเพิ่มเติมจากเอกสาร
http://haXe.org/doc

หนังสือจาก Amazon.com ลองดูเนื้อหาข้างในคร้บ

แจ๊กโค๊ดในหนังสือครับจากเว็บ haXe.org
http://haxe.org/file/Professional-haXe-and-Neko-code.zip
แต่ถ้าวันดีคืนดีเค้าลบไฟล์ออกก็ลองเข้าไปในเว็บ haxe.org

ผมลองใช้ดูแล้วไม่ต่างจาก Flex SDK เลยครับยกเว้นส่วนที่เป็น UI ลักษณะภาษาของ haxe มีความคล้ายคลึงกับ ActionScript ครับ ประยุกต้เข้าด้วยกันไม่ยาก ยกเว้นคุณจะใช้ haxe ใน platform อื่นๆ คุณก็จะต้องไปศึกษาความสามารถและขอบเขตการทำงานของ platform นั้นครับ
ดีๆ ครับ สนับสนุน
Keyword :
- haXe
- Neko
- Crossplatform
- haXe Programming

Followers