2016-05-04 41 views
0

,我創建了一個math.random,它將選擇一個隨機數,然後另一個變量將使用該數。之後,隨機使用math.random將選擇另一個數字,這將永遠持續下去。我想用一個for循環用的Math.random使得它看起來是這樣的:如何將math.random轉換爲簡寫形式的for循環

for (int i = 0; i <100; i++) { 
    int mRandom = (int) (Math.random() * 21 + 15); 
} 

再後來我用數字來改變速度和我創造了精靈的角度(這整個代碼是用創建精靈使與正在使用的精靈,我沒有問題)

for (int i = mIDontKnowTimer; i == mRandom; i++) { 

這裏我有我已經創建了一個定時器,當計時器等於由mrandom產生的數量和速度角度變化

 int pSpeed = (int) (Math.random() * 3 + 3); 
     int pAngle = (int) (Math.random() * 359); 

     mXSpeed = pSpeed * Math.cos(pAngle); 
     mYSpeed = pSpeed * Math.sin(pAngle); 
    } 

我對如何讓mRandom成爲一個循環感到困惑,因爲它說第一行有非法類型的開始,並且它在代碼中找不到「i」

+0

你可以嘗試改寫你的問題嗎?我沒有關注。 – user1875195

+0

你寫的代碼會編譯但是什麼都不做。你能澄清一下你的問題或提供更多的上下文嗎? – Strikeskids

+0

確切的錯誤是什麼?你已經有一個名爲'i'的變量嗎? –

回答

0

我首先把數學。隨機放入一個函數並在我的主循環中調用它。

public static int randomNumberGenerator(int min, int max){ 
     Random rand = new Random(); 
     return rand.nextInt(max - min) +min; 

    } 

現在在for/while循環內調用它。

0

書面,你mRandom只是第一for循環的範圍內有效,將是你的第二個for循環完全不可用。 (我說「寫爲」,因爲我懷疑你的代碼實際上並不是這樣 - 它將無法編譯。)

你的第二個循環對我來說不是特別清楚,但它看起來像你在嘗試改變你的精靈的方向和速度mRandom次? (編輯:評論證實了這一點。)

你可以只使用一個嵌套for循環來實現:

int mRandom; 
int pSpeed, pAngle; 

for (int i = 0; i <100; i++) { //100 times in a row, 
    mRandom = (int) (Math.random() * 21 + 15); //generate a random number 

    for (int j = 0; j < mRandom; j++) { //count up to that random number 
     //and repeatedly adjust your sprite's properties 
     pSpeed = (int) (Math.random() * 3 + 3); 
     pAngle = (int) (Math.random() * 359); 

     mXSpeed = pSpeed * Math.cos(pAngle); 
     mYSpeed = pSpeed * Math.sin(pAngle); 
    } 
} 

值得一提的是,除非你的地方在那裏重新繪製你的精靈,額外的速度並且角度變化將毫無意義 - 您要多次更新這些屬性,但只重繪一次,因此只有最近的更改纔會保留。

+0

爲什麼它不能編譯? – AmateurPoopMaker

+0

您的代碼似乎有兩個單獨的for循環,其中在第一個主體內聲明瞭mRandom。這意味着它只在第一個主體中有效,並且在第二個循環開始之前將退回到範圍之外。 – computerfreaker

+0

你能告訴我一個解決方法嗎? – AmateurPoopMaker

0

我想你想做到這一點

for (int i = 0; i <100; i++) { 
    int mRandom = (int) (Math.random() * 21 + 15); 

    for (int i = mIDontKnowTimer; i == mRandom; i++) { 
     .... 
    } 
} 

你所看到的問題是,您試圖訪問其外部的mRandom變量的作用域。

+0

這是我嘗試做的第一件事,但是當我啓動我的遊戲時,精靈顫抖了半秒鐘,然後繼續以一個速度和角度進行遊戲的其餘部分 – AmateurPoopMaker