2012-01-07 5 views
0

正直なところ、これがなぜ機能しないのか分かりません。私を助けるために私のプロジェクトに十分近くに何かを見たことがない。 この機能:NaNの値を返す方程式

function sneakPast(){ 

    sneakChance = Math.floor((Math.random()*11)+1)+sneak; 
    alert(sneakChance); 
    if (sneakChance >=(6*level)) 
    { 
     sneakSuccess = true; 
    } 
    else {sneakChance = false;} 
} 

すると、この関数から呼び出されているが:

function sceneFourC(){ 
    sneakPast(); 
    if (sneakSuccess == true){document.getElementById("Content").innerHTML = "You are able to sneak past the mob into town. <br/><input type='button' value='Continue.' onClick='sceneFive();' />";} 
    else {document.getElementById("Content").innerHTML = "You fail to sneak past the mob.<br/><input type='button'/>";} 



} 

警告はそれだけで表示されたら "はNaNを。"

ヒントをいただければ幸いです。

+1

変更

var sneak, sneakSuccess = false; 

'sneak'ているもの? –

+0

あなたは 'sneak'変数をどこにも設定していないようです。文字列ではなく数字であると確信していますか?また、どこから来ていますか? **本当に**機能にアクセス可能ですか? –

+0

ケース番号がスクロールし、番号(スニーク) – ToddBFisher

答えて

1

私はそう思いますが、スニークは定義されていないので、「未定義」です。

ここDEMO

こっそりすると、それが動作するはず整数を割り当てます。

var sneak = 0, sneakSuccess = false; //assign a valid integer to sneak 
+0

これはうまくいきました!どうもありがとうございました! :D –

+0

閉鎖に答えてください。 –

+0

うん、私はできるだけ早く問題が解決されたので、もう一度待たなければならないと言います。 –

1

基本的な問題の1つは、sneakChancesneakSuccessの代わりにfalseに設定していることです。それは他の問題があまりにもありますが、言った:

はこれを試してみてください:

function sneakPast() { 
    var sneakChance = Math.floor((Math.random() * 11) + 1) + sneak; 
    return sneakChance >= (6 * level); 
} 

function sceneFourC() { 
    var content = document.getElementById('Content'); 
    if (sneakPast()) { 
     content.innerHTML = "You are able to sneak past the mob into town. <br/><input type='button' value='Continue.'/>"; 
    } else { 
     content.innerHTML = "You fail to sneak past the mob.<br/><input type='button'/>"; 
    } 
} 

すなわち

  1. は、グローバル変数を設定するのではなく、sneakPast()リターン成功を持って
  2. は繰り返さないでくださいsceneFourC機能のあなた自身。

あなたはあまりにも負荷、他のグローバル変数(sneaklevel、など)を持っているが、我々はより多くのコンテキストなしでそれらをクリーンアップすることはできません。