發表文章

目前顯示的是 6月, 2009的文章

AS3如何複製DisplayObject

最近正在寫一個FLASH的相片大頭貼截取程式,碰到了一個複製MovieClip的問題,AS3已經沒有AS2的duplicateMovie() 方法可以用,所以我找了一些解決方法分享上來。 第一種方式是比較好的解決方法,是PTT的CJCAT大提供的,可以直接複製一個相同的Class。 假如場景上面有一個clip_mc,它的class是MyClip,在不使用 new MyClip() 的前提下,以下的code可以生出一個新的MyClip物件。 // 先抓到MyClip的constructor var mcClass:Class = Object(clip_mc).constructor;   // 這樣就生出一個新的MyClip物件了 var clip2_mc:DisplayObject = new mcClass();   // 加入到舞台後就成功了 this .addChild(clip2_mc); 不過上面這個方法我試不出來,不知道是不是哪裡出錯了,所以又找了第二種方法, Copying a Sprite using BitmapData ,這個方法可以將Sprite的畫面複製到另一個DisplayObject上,因為我只是需要複製一個靜態的圖,所以可以不需要使用第一種複製Class的方式。 // 先實體一個clip_mc大小的BitmapData var myBitmapData:BitmapData = new BitmapData(clip_mc.width, clip_mc.height); // 然後繪製一個相同的clip_mc myBitmapData.draw(clip_mc);   // 實體一個複製的Bitmap var clip2_mc:Bitmap = new Bitmap(myBitmapData);   // 加入到舞台後就成功了 this .addChild(clip2_mc); 參考資料: 批踢踢實業坊 KIRUPA.COM ActionScript 3.0 語言和組件參考

XNA Simple Animation

因為我的大學專題是寫一款四人網路連線的格鬥遊戲,所以對 XNA 這套微軟提供的遊戲開發平台有點研究,之前在痞客邦寫網誌的時候有寫過幾篇這個作品的開發情況,後來因為實在太忙了所以沒有繼續介紹下去,現在這個遊戲已經在去年完成了,也得到不錯的成績,有機會我會PO上來分享一些製作心得。 在網誌搬到Blogger之後一直沒有機會寫一些跟XNA有關的文章,我打算介紹一些 XNA Creators Club 教學範例中所使用到的開發技術,國內介紹XNA的文章不多,有興趣用XNA開發遊戲的人,推薦可以到 點部落 去看一些不錯的文章。 這一篇我想先介紹XNA如何使用Model、ModelBone和ModelMesh等技術去載入一個3D模型,然後控制一些簡單的3D動畫。 首先必須先準備一個3D模型,XNA預設的類型有.x跟.fbx兩種模型檔,這裡我們先用微軟提供的坦克車模型( part1 )( part2 )來作示範。 一開始先建立一個XNA的專案。 將模型檔加入到Content資料夾內。 新增一個Tank.cs: using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics;   namespace SimpleAnimationSample { /// <summary> /// 能讓零件動作的坦克車模型類別 /// </summary> public class Tank { /// <summary> /// 坦克車模型 /// </summary> private Model tankModel;   /// <summary> /// 坦克所有組件的平移矩陣 /// </summary> private Matrix[] boneTransforms;   /// <summary> /// 載入坦克車資源 /// </summary> public void Load(ContentManager content)