2014-04-03 35 views
0

我開發了一個小遊戲,我在遊戲開始的時候,引力在-40,但在玩家想要改變它之後,他可以。JS中兩個函數的一個變量

我有這樣的形式:

<form> 
    <input type="text" id="userInput" /> 
    <input type="submit" onclick="otherG();" /> 
</form> 

我的重心是:

function initScene() { 
    blablabla 
    scene.setGravity(new THREE.Vector3(0, -40, 0)); 
    blablabla 
} 

我如何可以由用戶輸入改變-40,並允許現場(不需要做F5 )?

當用戶想要通過按鍵改變重力時會出現表格。 PS:我正在使用three.js和physijs。

+0

提交被刷新頁面。在函數的末尾添加'return false'來防止這種情況。 – Hazaart

+0

這個問題似乎是關於如何在你的代碼中使用用戶輸入。創建一個變量並將其設置爲用戶輸入的值。在你的代碼中使用這個變量。 – akonsu

+0

但不是'scene.setGravity(new THREE.Vector3(0,someNewValue,0));'? –

回答

1

也許這樣的事情

HTML:

<form onsubmit="return otherG();"> 
    <input type="text" id="userInput" /> 
    <input type="submit" value="Change Gravity" /> 
</form> 

的Javascript:

var gravity = -40; // default value 
var doc = document; 

function otherG() { 
    gravity = doc.getElementById("userInput").value; 
    updateScene(); 
    return false; 
} 

function updateScene() { 
    blablabla 
    scene.setGravity(new THREE.Vector3(0, gravity, 0)); 
    blablabla 
} 
+0

需要更改onclick =「otherG」();「? – flavien317

+0

我更新了我的帖子,我還沒有看到事件onclick – R3tep

+0

ok,updateScene和initScene是相同的函數或不是? 因爲initScen全部繪製,但是updatescene與新的萬有引力相同? – flavien317

相關問題