天天看點

使用Flare3D在FB中搭建第一個Molehill項目

  本文介紹如何使用第三方開發架構Flare 3D 2.0在Flash Builder中建立一個基于Molehill 3D的項目

  需要做的準備如下: 1,Flex SDK Hero

  2,Flash Player 11,0,0,58 Incubator

  3,playerglobal.swc

  4,Flare 3D 2.0 然後按照下面的幾步建立項目:

  安裝Flex SDK Hero

  請到 這裡下載下傳Hero build 19786

  配置Flex SDK

  将下載下傳後的Hero(版本19786)拷貝到Flash Builder的安裝目錄中并命名:

  [Flash Builder安裝目錄]/sdks/4.5_incubator

  到 這裡下載下傳用來開發Incubator項目的playerglobal.swc,然後按照這個位址把playerglobal.swc放進去:

  [Flash Builder安裝目錄]/sdks/4.5_incubator/frameworks/libs/player/11.0/p layerglobal.swc

  安裝Incubator

  請到 這裡了解Incubator的相關資訊并下載下傳安裝,它是Flash Player 11的一個預覽版,安裝方法等同于曆次Flash Player的更新。

  建立項目

  打開Flash Builder,建立一個ActionScript項目。

  

  右鍵點選項目名稱後進入Properties面闆,在左邊的清單中選擇ActionScript Compiler。然後在右上角點選"Configure Flex SDKs"

  

  點選Add增加一個Flex SDK,填入剛才建立的SDK路徑後确定。

  

  同樣是在ActionScript Compiler,在上面的Flex SDK Version中選擇剛剛添加的SDK,然後在下面的Additional compiler arguments裡填入一項新的參數:-swf-version=13

  

  下載下傳安裝Flare 3D開發架構

  請到 這裡注冊申請,便可以免費獲得Flare 3D 2.0的開發架構

  将bin檔案夾裡所有内容拷到剛才建立的項目中的bin-debug檔案夾,這裡包括範例所使用的貼圖和3D模型檔案,将examples檔案夾裡所有内容(一堆AS檔案和兩個包)拷到項目的default package下:

  

  測試範例 OK,現在我們就可以打開Flare 3D下載下傳包中自帶的範例了,在src/default package中Test01-Test14每一個都是一個小例子,包括了如何導入DAE和UV貼圖模組化,如何建立動畫、粒子以及如何增加滑鼠控制和碰撞檢測等等。一定要試試啊,由于啟用了硬體加速,體驗非常的流暢。

  從代碼上看也非常的簡單,這裡我舉一個導入模型和貼圖的代碼,竟然隻有短短的幾行:

  //指定貼圖的路徑

  ColladaLoader.texturesFolder = "textures";

  //導入模型

  scene = new Viewer3D( this, "car.dae" );

  scene.camera.setPosition( 0, 0, -150 );

  導入DAE和貼圖後的效果圖:

  

  對于碰撞檢測的情況也不複雜:

  private function completeEvent(e:Event):void

  {

  // 定義一個碰撞檢測集

  collisions = new SphereCollision( player, 15, new Vector3D( 0, 15, 0 ) );

  //設定碰撞級别

  collisions.addCollisionWith( level );

  //添加重新整理事件偵聽

  scene.addEventListener( Scene3D.UPDATE_EVENT, updateEvent );

  }

  private function updateEvent(e:Event):void

  {

  //鍵盤控制小人移動

  if ( Input3D.keyDown( Input3D.RIGHT ) ) { player.rotateY( 5 ); player.frameSpeed = 1; }

  if ( Input3D.keyDown( Input3D.LEFT ) ) { player.rotateY( -5 ); player.frameSpeed = 1; }

  if ( Input3D.keyDown( Input3D.UP ) ) { player.translateZ( 4 ); player.frameSpeed = 1; }

  if ( Input3D.keyDown( Input3D.DOWN ) ) { player.translateZ( -4 ); player.frameSpeed = -1; }

  //鍵盤按下後,小人兒播放走路的動畫

  if ( Input3D.keyDown( Input3D.UP ) ||

  Input3D.keyDown( Input3D.DOWN ) ||

  Input3D.keyDown( Input3D.LEFT ) ||

  Input3D.keyDown( Input3D.RIGHT ) )

  player.play();

  else

  player.stop();

  //添加重力加速度

  player.y -= 3

  //碰撞檢測

  collisions.slider();

  

  //設定攝像頭位置尾随小人兒.

  Pivot3DUtils.setPositionWithReference( scene.camera, 0, 600, -600, player, 0.1 );

  //設定攝像頭鏡頭對準小人兒.

  Pivot3DUtils.lookAtWithReference( scene.camera, 0, 0, 0, player );

  }

  碰撞檢測範例貼圖

  

  下載下傳的Flare 3D包中還包括一套API開發文檔,雖然全英文且不夠詳細,但應該可以滿足第一步的需要,相信随着架構的不斷完善,這些開發文檔以及社群中的熱心群衆們會給我們提供更為詳盡的資料。

  最後,有一點特别重要,請在釋出之前修改一個值,打開html-template/index.template.html,

  在調用params.allowfullscreen = "true"的下一行添加一行代碼

  params.wmode="direct";

  如果你不設定這個,那麼硬體加速的功能就不會開啟,如果你使用的是Flash Develop或者Flash Pro來測試Incubator,也一定不要忘記這一項。