flash物理引擎應用:你的第一個Fisix應用程式

來源:互聯網
上載者:User

今天看了一下這個flash的引擎,官方的說明文檔。

http://wiki.fisixengine.com/index.php?title=YourFirstFisixApplication#The_physics_of_Fisix

我大概把它的意思說明一下,畢竟還沒完全弄清楚這個小玩意。(英語水平很差,O(∩_∩)O哈哈~)

 

一.使用Fisix開始:

Fisix Engine 引擎是一個非常棒的物理系統,應用於你的日常工程當中。這個引擎是基於ActionScript 3.0 的製作而來的。

當你實現這個引擎的時候,你首先建立一個FisixEngine,然後指定一些重力,阻力 還有一些反射面。然後建立一些物體到你的應用程式當中,接下來,通過指定對象物應用這些力,讓物體類比出一個真實的物理效果出來。在開始之前,你首先要發揮你的創意,然後使用這個物理引擎。

 

 

二.我的第一個Fisx程式

 當然使用這個引擎的創作是非常有趣的,但是你首先要做的事情還是要把這個環境配置好。我們使用Flex builder 來開始我們的第一個程式:

 

 首先

  1.開啟flex

  2.建立一個flash project

  3.建立一個命名 如MyFisixDemo,然後選擇你的project

 

 這個工程已經被建立了,你可以寫上以下的代碼像這樣,它繼承了Sprite類

package {<br />import flash.display.Sprite;</p><p>public class MyFisixDemo extends Sprite<br />{<br />public function MyFisixDemo()<br />{<br />}<br />}<br />}<br />

 

 接下來還需要做一些事情.

 1.選擇這個工程屬性,

 2.選擇'ActionScript Build Path'

3.切換標籤 選擇“'Library path' ” 

4.點擊'Add SWC... 匯入Fisx 的swc

5.選擇你FisixEngine.swc 檔案的所在位置

如:

 

 

 添加swc組件後,我們可以開始創造我們的第一個應用程式。首先還是先把我們需要的包引入到應用程式當中。

import com.fileitup.fisixengine.collisions.ReactionModes;<br />import com.fileitup.fisixengine.core.FisixEngine;<br />import com.fileitup.fisixengine.core.Vector;<br />import com.fileitup.fisixengine.particles.WheelParticle;<br />import com.fileitup.fisixengine.primitives.Surface;<br />import com.fileitup.fisixengine.particles.CircleParticle;

這些類中 包括引擎包括 引擎核心類,粒子物體,碰撞類,常見圖形類

注意:這些類flex本身不存在的,需要我們手工import進去

 

 

進入代碼第一件事情首先修改一些swf一些預設,如大小,顏色等等

[SWF(width='600',height='400',backgroundColor='0xFFFFFF',frameRate='30')]<br />public class MyFisixDemo extends Sprite<br />

 

 

 三,引擎本身

3.1  接下來,我們想執行個體化我們的獨立物理引擎

 var myEngine:FisixEngine = new FisixEngine();

 

3.2 對象世界

我們已經有了這個引擎為我們工作,而且可以添加一些力到我們能夠的對象去響應這些力

//添加一個表面<br />var surface1:Surface = myEngine.newSurface(new Vector(0,200),new Vector(500,350),10)<br />//設定這個表面的屬性,反彈力和阻力<br />surface1.bounce = 0.9;<br />surface1.friction = 0.5;<br />

 

 

3.3 啟動我們的引擎:

 

//渲染我們的物體
myEngine.setRender(true);
myEngine.setRenderGraphics(graphics);

 

myEngine.startEngine(stage.frameRate);

 

 

代碼清單:

package {<br />import flash.display.Sprite;<br />import com.fileitup.fisixengine.core.FisixEngine;<br />import com.fileitup.fisixengine.collisions.ReactionModes;<br />import com.fileitup.fisixengine.core.Vector;<br />import com.fileitup.fisixengine.particles.WheelParticle;<br />import com.fileitup.fisixengine.primitives.Surface;</p><p>import flash.display.MovieClip;</p><p>[SWF(width='600',height='400',backgroundColor='0xFFFFFF',frameRate='30')]<br />public class MyFisixDemo extends Sprite<br />{<br />public function MyFisixDemo()<br />{<br />//Create an instance of our engine.<br />var myEngine:FisixEngine = new FisixEngine();<br />//turn on physical collision reactions<br />myEngine.setReactionMode(ReactionModes.PHYSICAL);<br />//set the gravity to pull down at a rate of 1 pixel per second<br />myEngine.setGravity(0, 1 * stage.frameRate)</p><p>//next, add a surface to the engine<br />var surface1:Surface = myEngine.newSurface(new Vector(0,200),new Vector(500,350),10)<br />//set the surface's physical properties<br />surface1.bounce = 0.9;<br />surface1.friction = 0.5;</p><p>//add a circle particle to the surface at position 200,100 with a radius of 50 pixels<br />var particle1:WheelParticle = myEngine.newWheelParticle(200,100,50);<br />particle1.bounce = 0.7;<br />particle1.friction = 0.5;</p><p>//turn on primitive rendering<br />myEngine.setRender(true);<br />//tell the engine where to render to<br />myEngine.setRenderGraphics(graphics);</p><p>//start the engine<br />myEngine.startEngine(30);<br />}<br />}<br />}<br />

 

運行效果:建立了一個反射面,一個滾軸。

 

這個只是一個簡單的執行個體,我們還可以繼續添加更多的效果到我們的程式當中。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.