2013-02-19 31 views
0

所以這是我的情況。我是編程新手,剛剛開始製作非常非常基礎的平臺遊戲。我的意思是字面上與平臺的遊戲。爲整個數組創建一條If語句

我已經得到了我的角色並跳躍着,我創建了我的平臺作爲數組。這樣我就可以把它們並排放在底部。現在還有其他方法可以解決這個問題,但我想知道如何爲數組做這件事。

所以,我有我的性格與此

這是一切優秀的下降,但我想他yVelocity去爲0.0f,當他擊中了任何陣列中的平臺。

所以,我想這段代碼

if (plat[i].drawRect.Intersects(kirby.drawRect)) 
{ 
kirby.yVelocity = 0.0f 
} 

我本以爲這工作,但它給我的[I]說,這是不適用這方面的一個錯誤。

幾點注意事項:

科比是我的角色名字,drawRect中是矩形的定義,開發平臺是我的平臺陣列由13個平臺。

由於任何人誰可以幫助


更新

問題是plat.drawRect或高原[我] .drawRect的任何變化不工作。這裏是我所有關於平臺數組的代碼。

struct Platform 
    { 
     public Texture2D txr; 
     public Rectangle drawRect; 
    } 

Platform[] plat; 

    plat = new Platform[13]; 
      for (int i = 0; i < plat.Length; i++) 
      { 
       plat[i].txr = Content.Load<Texture2D>("platform"); 
       plat[i].drawRect = new Rectangle(i * plat[i].txr.Width, 460, plat[i].txr.Width, plat[i].txr.Height);` 
      } 

for (int i = 0; i < plat.Length; i++) 
      { 
       spriteBatch.Draw(plat[i].txr, plat[i].drawRect, Color.White); 
      } 
      spriteBatch.End(); 

回答

0

好像你必須添加一個for循環,以遍歷平臺。也許是這樣的:

for(Platform : plat){ 
    if (platform.drawRect.Intersects(kirby.drawRect)){ 
     kirby.yVelocity = 0.0f; 
    } 
} 

在這裏,我假設你使用Java和Platform是班級的高原陣列,其中有List<Platform>類的。

+0

已回答我的問題添加了一個附加內容Gijs – Gandeh 2013-02-19 22:12:39

+0

Gandeh,如果plat [i]無法在任何地方工作,那麼您的代碼的第二部分是否工作? – Gijs 2013-02-19 22:28:59

+0

是的,平臺[i]的工作原理是它沿着底部創建一個平臺,就像他們應該出現的那樣。當我嘗試編寫If語句來創建衝突規則時,我只會遇到麻煩。我只需要弄清楚如何引用所有數組項目的「矩形」。因爲我在If語句中基本上想做的事情是 - 如果該字符與平臺矩形相交,則將字符yVelocity改爲0.0f。但正如我所說,我無法獲得plat [i] .drawRect工作的任何變化。 – Gandeh 2013-02-19 22:47:26