2014-05-09 86 views
0

我努力工作,爲我的比賽時承認此陣的兩個實例具有相同的X或Y位置作爲另一種方式,如果是移動重隨機實例之一:位置定位陣列的兩個實例是否在同一位置

for(i=0;i<8;i++) { 
     PlatformInstance[i] =new Platform(); 
    PlatformInstance[i].y= Math.random()*900; 
    PlatformInstance[i].x= Math.random() *1500; 
    stage.addChild(PlatformInstance[i]); 

} 

我的問題是,我嘗試代碼檢測到一個平臺實例具有相同的位置,相同的平臺實例,並會不斷地重新隨機位置。 有沒有區分不同實例的方法?

非常感謝。

編輯

唯一的代碼,我能想到的是運行在一個循環中的if語句,看看

If (PlatformInstance[i].y == PlatformInstance[i].y)

顯然這是否難道不工作,它的思維我知道這將不但是我想知道是否有一種方法可以做到:

If (Platforminstance[i].y == "other" Platforminstance[i].y 

或一些其他類似的話

+0

您嘗試過哪些代碼?此外,我認爲你指的是「數組中的元素」,而不是「數組的實例」,對嗎?你的措辭有點令人困惑 – VBCPP

+0

對不起,我的意思是數組的元素,我能想到的唯一代碼是在循環中運行if語句來查看PlatformInstance [i] .y == PlatformInstance [i] .y ,顯然這難道不工作,它的思考,我知道這不會,但是我想知道是否有這樣做的方式: – user3620509

+0

如果(Platforminstance [I] .Y ==「其他」 Platforminstance [I] .Y – user3620509

回答

-1

你似乎沒有清楚地理解數組是如何工作的,我建議研究一下。像這樣的東西應該工作

i=0; 
    j=0; 
    while(i < PlatformInstance.length -1) { 
     j++; 
     if (j == PlatformInstance.length) { 
     i++; 
     j=i+1; 
     } 

     if((Math.abs(PlatformInstance[i].x - PlatformInstance[j].x) < platformWidth) 
     || (Math.abs(PlatformInstance[i].y - PlatformInstance[j].y) < platformHeight)) { 

     PlatformInstance[j].y= Math.random()*900; 
     PlatformInstance[j].x= Math.random() *1500; 
     //Now you'll have start checking at the beginning again since you moved one 
     i=0; 
     j=0; 
     continue; 
     } 
    } 

也如先前提到的,PlatformInstance不是一個數組一個好名字。只有類名應該以大寫字母開頭。並且不應將一系列平臺稱爲「實例」。我會建議將其更改爲簡單platforms

+0

非常感謝,這似乎是工作在一定程度上,我有唯一的問題是,因爲平臺大小合適,他們有時仍然重疊,是它能夠使 如果(PlatformInstance [I] .X == PlatformInstance [j]的.X || PlatformInstance [I] .Y == PlatformInstance [J ]。 y) 成一個不直接相等的東西,但有一個更大的範圍? 再次感謝 – user3620509

+0

編輯。你可以將'platformWidth'和'platformHeight'設置爲你想要的。如果每個平臺可以有不同的大小,這不會是一個很好的解決方案,儘管 – VBCPP

+0

非常感謝您!只是剛剛能夠全面測試這個,但它完美的作品,它不再重疊!我非常感謝您的幫助! – user3620509

相關問題