2011-10-10 70 views
1

我正在嘗試創建一個遊戲來模擬沿傳送帶下來的雜貨。玩家扮演裝袋者的角色,必須點擊並將雜貨拖入指定的袋子(一個用於冷食,一個用於非冷食)。當做出正確的選擇時,食物會消失,得分會增加+1。使用ActionScript 3.0創建下降隨機對象的遊戲

我已經變得不知所措,想到如何做到這一點,並沒有找到有用的答案,當我試圖編譯它們,所以我決定問。

任何人都可以提出一種方法或告訴我,我怎麼可以有隨機雜貨項目跌倒屏幕?我認爲我可以創建一個動畫片段數組,並讓它們隨機跳下來,但我不確定這是如何工作的。

謝謝。

+0

由於我們看不到您嘗試過的內容,因此很難給出準確的答案。我會這樣做的方式是創建一個隨機項目的數組。數組中的每個項目都是描述雜貨店(名稱,冷/非冷等)的類的實例。這將大致是數據部分,視圖看起來像描述的那樣(傳送帶),但功能很像循環傳送帶組件,但使用拖放操作從中刪除項目。控制器部分將使用另一個隨機元素來更新模型/數據,由物品移除觸發。在物品丟失,檢查行李/更新scrore /等。 –

+0

是的,我很抱歉沒有說我嘗試過。我避免了這種情況,因爲我是一名初學者AS3程序員,至今我所嘗試過的東西似乎對我完全感到困惑,因此我想到了其他人。 我試圖簡單地把不同的對象放在屏幕上,並使用addChild(麪包)向下掉落; bread.y + = 1; 我能夠獲得startDrag和stopDrag以及與包對象的碰撞。我只是想找到一種方法來讓更多的物體隨機隨機落下。我只是不知道如何填充它,並區分冷/非物品。 –

回答

0

我不能爲你寫整個遊戲,但並不難。我得到了一小段代碼,它顯示了在數組中使用MovieClip。你可以用這個做點什麼。代碼沒有經過測試,並且有一些值需要更正。

請讓我知道它是否有幫助。我在遊戲中使用了很多。這是處理大量的子彈/敵人和通電的一種簡單的方法;)

var groceries:Array = new Array(); 

    function grocerieCreate(enemy,shotType):void { 

    var grocerieNew:MovieClip; 

    grocerieNew = new grocerieMovieClip(); 
     grocerieNew.x = [Random X]; 
     grocerieNew.y = 0; 

    addChild(grocerieNew); 

    grocerieNew.addEventListener(Event.ENTER_FRAME, grocerieMove); 

} 

function grocerieMove(e:Event):void { 

    if (e.target.y < [GROUND Y]) {   
     e.target.y ++;   
    } 

} 

function grocerieRemove(e:Event):void { 

    for (var counter:int = groceries.length - 1; counter >= 0; counter--) { 

     var thisGrocerie:MovieClip = groceries[counter]; 

     groceries.splice(counter,1); 
     removeChild(thisGrocerie); 
    } 

} 
+0

謝謝你的幫助。這絕對是一種有用的方式,可以做我想做的事情,並使我朝着這個方向發展。 –

+0

非常歡迎。 Box2D也很酷,但我認爲在這種情況下,它會有點矯枉過正。但這是我的看法。祝你好運! –

0

爲了得到真實的高空墜物,使用Box2DAS3物理引擎。它有很好的文檔記錄,並且有數以千計的初學者教程。

編輯:Here is a great tutorial for absolute beginners on Box2D,在Emanuele Feronato的博客。看看這個博客,因爲它有很多關於遊戲開發的教程可以幫助你。

+0

哇......這些教程很棒。感謝您的迴應。 –

+0

請注意,本教程僅適用於舊版本的box2d 2.02版本 – user734063