2012-04-12 132 views
1

我是Flixel的新手,請原諒我,如果我的問題太簡單。樣式表不能正常工作

我的問題是: 我做了四個非常簡單的圖像(架,移動,側支架,側移動)使用Photoshop然後將它傳遞給紋理帕克(A樣式表製造商) 它產生我的圖像(它`非常簡單)加上一個JSON文件,在這裏它是:
http://i.stack.imgur.com/UTi4G.png
所以我想用Flixel作爲一個角色站在(第一個),當我調用動畫移動它將使用最後一個圖像,但它沒有按預期工作。基本上它一次顯示所有四個圖像。
下面的代碼:
Character.as:

package 
{ 
    import org.flixel.FlxSprite; 

    public class Character extends FlxSprite 
    { 
     [Embed (source="character.png")] 
     private var CharacterGraphic:Class; 
     public function Character(X:Number=0, Y:Number=0) 
     { 
      super(X, Y); 
      loadGraphic(CharacterGraphic, true, false, 53, 54); 
      velocity.y = 100; 
      addAnimation('move_forward', [0, 3], 30, false); 

     } 

    } 
} 

PlayState類(如果我創建這個類的一個實例)

override public function create():void{ 
     character = new Character(100, 200); 
     add(character); 

    } 
    override public function update():void{ 
     //for debugging 
     if(character.y == 600){ 
      character.play('move_forward'); 
     } 
     super.update(); 
    } 

所以我預計:
第一圖像被彈出(並繼續下去)當velocity.y是600(僅用於測試)move_forward動畫開始(循環通過第一個和最後一個圖像)

和輸出是:
所有四個圖像彈出,當velocity.y == 60什麼也沒有發生。

我真的覺得我錯過了一些東西,因爲我對Actionscript 3和Flixel非常新穎(還有遊戲開發!)。

幾乎相同的步驟工作了在線教程,唯一不同的是,他創建了幾個動畫(敵人),而不是一個,點擊此處查看http://gotoandlearn.com/play.php?id=139
對於JSON文件,我從來沒有發現一個使用它(我試過在IRC頻道詢問,但沒有人提及),也在論壇/教程中。

回答

1

我看到的第一個問題是您的圖像在多行上。 Flixel喜歡在一個水平行中的正方形框架。即使您爲每個框架指定了一個矩形大小,它們仍然需要全部大小相同並且在一個水平行中。如果你做得對,你應該有0到3幀。

當你的圖像/幀應該改變時沒有任何反應是因爲你想要改變的索引沒有幀。這應該通過相同的更改來解決。

因爲這個原因,我不相信大多數帶有flixel項目的sprite包裝機。 Sprite包裝工正試圖最小化文件大小,因此它們會將盡可能多的精靈塞入儘可能小的空間,因此每個精靈都與其他精靈大小不同。正如我所說,Flixel喜歡它的大小相同的精靈,並且都在同一行。

我找到了一個可以做我想做的事情......一旦我回家看看它是什麼節目(或者如果我什至不再擁有它),我將不得不看一看。同時,只需使用Photoshop將文檔中的最高精靈的高度和寬度最寬的精靈的寬度與工作表中的精靈數量進行比較。然後將每個精靈/框架放置在適當的空間中。

編輯:我不認爲你需要JSON文件。只需使用透明的PNG。

+0

我把每一個放在15x20像素,仍然是相同的結果,也許是因爲沒有空間? – Abdulaziz 2012-04-12 18:54:20

+0

更好的結果,現在它顯示一幀與第二幀的一塊,因爲它們之間沒有空間(我猜測) – Abdulaziz 2012-04-12 18:56:58

+0

嘗試20x20正方形。 – 2012-04-12 19:19:13