2015-09-17 134 views
3

我目前正在學習Javascript,我能夠創建一個簡單的遊戲,形狀和顏色會改變,它會四處移動。我被困在如何輸入圖像...請幫助我! =(謝謝!=)獲取隨機圖片,當點擊圖片爲JavaScript

這是網站的遊戲,我創建http://sites.codeschool.org.uk/?site=imat3ap0t

我想改變形狀以3張JPG圖片我已經和有它做同樣的事情。我很困難!

function getRandomColor() { 
    var letters = 'ABCDEF'.split(''); //the numbers&letters are for color codes. split is the string (set of numbers and letters into an array) 
    var color = '#'; //color codes start with # 
    for (var i = 0; i < 6; i++) { 
     color += letters[Math.round(Math.random() * 16)]; 
    } 
    return color; 
} 

var clickedTime; 
var createdTime; 
var reactionTime; 

function makeBox() { 
    var time = Math.random(); 
    time = time * 5000; 

    setTimeout(function() { 
     if (Math.random() > 0.5) { 
      document.getElementById("box").style.borderRadius = "100px"; 
     } else { 
      document.getElementById("box").style.borderRadius = "0"; 
     } 

     var top = Math.random(); 
     top = top * 300; 
     var left = Math.random(); 
     left = left * 500; 
     document.getElementById("box").style.top = top + "px"; 
     document.getElementById("box").style.left = left + "px"; 
     document.getElementById("box").style.backgroundColor = getRandomColor(); 
     document.getElementById("box").style.display = "block"; 
     createdTime = Date.now(); 
    }, time); 
} 

document.getElementById("box").onclick = function() { 
    clickedTime = Date.now(); 
    reactionTime = (clickedTime - createdTime)/1000; 
    document.getElementById("time").innerHTML = reactionTime; 
    document.getElementById("box").style.display = "none"; 
    makeBox(); 
} 

makeBox(); 

謝謝你們的答覆!

+0

用圖片名稱創建一個數組,並使用'Math.randoom()'選擇一個'隨機'圖片(根據計算機講話,沒有什麼是真正的隨機)。之後你必須設置圖片的'src'屬性。 – GuyT

回答

0

那麼你將需要修改你的函數是這樣的:

function getRandomImage() { 
    // All of the image options 
    // This is very similar to string of characters you have now 
    var images = ['path/to/image/1', 'path/to/image/2', 'path/to/image/3'] 

    // Randomly select one image path 
    // By using images.length we don't have to hardcode the length like the "16" you're using, which is good incase the list changes 
    var imagePath = images[Math.floor(Math.random() * images.length)]; 

    // Return random image path 
    return imagePath; 
} 

那麼你可能會想要一個img標記的地方你的文檔中,而不是在div您現在正在使用:

<img id="changing-image"></img> 

然後你可以使用更多的JavaScript找到圖像並更改其屬性src

var image = document.getElementById("changing-image"); 
image.src = getRandomImage(); 
+0

當你提供答案時,他不會學到任何東西。我認爲最好提供一些提示,讓他自己瞭解它是如何工作的。 – GuyT

+0

這總是我想要走的路線。我嘗試添加解釋每一行正在做什麼的評論,希望OP能夠從評論中學習。 – Tyler

+0

嗨泰勒,非常感謝你的幫助。我用你的代碼,我學到了什麼,它的工作原理! GuyT,我知道你沒有給出答案的意思。我真的試圖尋找答案,它只是不工作......所以我決定尋求幫助。我對此非常感興趣,我希望我能夠學到更多東西,並且能夠在不需要太多幫助的情況下編寫代碼。 –