יום שבת, 25 בדצמבר 2010

קוד פתוח, והפעם - אפליקציה שלמה ליצירת מציאות מועצמת בפלאש


בחמישי האחרון, 23-12-2010, העברתי סדנא קצרה בנושא בניית אפליקציית אוגמנטד ריאליטי מבוססת מרקרים בפלאש.
הסדנא עסקה בנושאים:
1. כיצד עובד העולם התלת מימדי בפלאש.
2. המחלקות המרכזיות שבונות את האפליקציה והתהליכים המרכזיים בה.
3. כיצד להמשיך ולבנות את הפרויקט הבא: כולל הוספת מרקרים חדשים, הגדרת אינטראקציה בין אובייקטים תלת מימדיים ואפילו הוספת GUI למשחק או תוכנה.
פרטים נוספים על ההרצאה והסדנא שהעברתי תמצאו בפוסט הזה.

מצורף כאן הקוד המלא לאפליקציה. האפליקציה בנויה בעזרת FlashDevelop והSDK החופשי של פלקס ולכן איננה זקוקה לקובץ FLA כדי לרוץ (לפרטים נוספים קיראו באתר של flashDevelop).

כרגיל, אנחנו בעד שיתוף ונשמח לקבל בחזרה רעיונות נוספים, שיפורים של הקוד או תוספות אליו, פונקציות נוספות וכו'.


יש כאן שתי מחלקות מרכזיות:

מחלקה ראשונה : Display3DMaker
מחלקה המסייעת לייצר אובייקטים תלת-מימדיים בקלות בעזרת שתי פונקציות סטטיות:

הפונקציה הזו מחזירה אובייקט תלת-מימדי המכיל את הקוביה העונה להגדרות שציינת במשתנים שלה. ראה הנחיות והסברים נוספים בתוך הקוד עצמו.


public static function makeDae (url:String, _scale:Number=1, _clickFunc:Function=null, _bodyName:String=null, _extra:Object=null ):DisplayObject3D
הפונקציה הזו מחזירה אוביקט תלת-מימדי המכיל קובץ DAE (שהוא מודל תלת-מימדי מתוכנות עיצוב). ראה הנחיות והסברים נוספים בתוך הקוד עצמו.

-------------------------------------------------
מחלקה שנייה: Material3DMaker
המחלקה מסייעת ליצור חומר לאובייקט תלת-מימדי בעזרת שתי פונקציות סטטיות:


public static function createMaterialFromImage (sourceUrl:String):MaterialObject3D
הפונקציה מחזירה חומר תלת מימדי מתמונה.

public static function createMaterialFromSwf (sourceUrl:String, Width:Number = 30, Height:Number = 30):MaterialObject3D

הפונקציה מחזירה חומר תלת מימדי מקובץ SWF אחר.

public static function createFSMaterial(diffuse:int = 0xcccc00,ambient:int = 0x444444):MaterialObject3D

הפונקציה מחזירה חומר תלת מימדי מצבע.