2017-02-01 4 views
0

良い一日のページの内容を更新するために、バニラJSを使用したので、私は基本的にチャットルームをオフに実行し、古い学校のペン&紙のRPGであるプロジェクトに取り組んでいます。しかし、キャラクターのスキルや統計は属性に基づいているため、初期値が設定されている間に、これらの属性を調整するときに統計とスキルを動的に更新する方法を見つける必要があります。私はこれがAngularのためにおそらくシンチであることを知っていますが、動きの少ない部品は失敗する可能性は低いと思います。すべて</p> <p>動的

基本的に目標は、属性が更新されるときにスキルと統計が更新されるようにJSを設定することです。ここでは、コードの属性について、これまでです:

<td colspan="2">MEMORY</td> 
    <td colspan="2">  
    <button onclick="decMem();" class="modButton" type="button">-</button> 
    <input type="text" id="MEM" class="trait" readonly /><script>document.getElementById("MEM").setAttribute('value', Mem);</script> 
    <button onclick="incMem();" class="modButton" type="button">+</button> 
    </td> 

function incMem(){ 
if (traitPts > 0 && Mem < 20){ 
traitMod += 1; 
Mem += 1; 
traitPts -= 1; 
document.getElementById("MEM").setAttribute('value', Mem); 
document.getElementById("traitPts").setAttribute('value', traitPts); 
} else { alert("CAN'T INCREASE FURTHER");}} 

function decMem(){ 
if (traitMod > 0 && Mem > mem){ 
traitMod -= 1; 
Mem -= 1; 
traitPts += 1; 
document.getElementById("MEM").setAttribute('value', Mem); 
document.getElementById("traitPts").setAttribute('value', traitPts); 
} else { alert("CAN'T REDUCE FURTHER");}} 

そして、統計情報やスキルのそれぞれがそうのような変数によって決定されます。

//COMBAT STATS 
var seq = Math.floor((Per + Spd)/2); 
var act = Math.floor(Spd/2); 
var block = Math.floor((Dex + Spd)/2); 
var dodge = Math.floor((Dex + Spd)/4); 

//UNIVERSAL SKILLS 
var stealth = (Per * 3) + Dex; 
var climb =  (Dex * 3) + Str; 
var negot =  Cha * 4; 
var navig =  (Log * 2) + Per + Mem; 

と、次のようにページに送信:

<td>STEALTH</td> 
    <td><input type="text" id="stealth" readonly/><script>document.getElementById("stealth").setAttribute('value', stealth);</script></td> 
    <td>CLIMBING</td> 
    <td><input type="text" id="climb" readonly /><script>document.getElementById("climb").setAttribute('value', climb);</script></td> 

私がページをリロードすると、すべての属性が設定されてサイコロをシミュレートするように変更されますので、私はここで紛失しています。しかし、これはPHPのページなので、一時的にデータを保存する方法がありますか?助けてください!

+0

ブラウザ(javascript)で実行されているコードとサーバー(php)で実行中のコードの違いを理解できますか?あなたは*これらの統計をphpを使ってサーバに保存することができるか、ブラウザ上のクッキーに保存することができます。 –

+0

[localstorage](https://developer.mozilla.org/en/docs/Web/API/Storage)を使用してください。 – Tyblitz

+0

これで、ユーザーmodに属性を設定し、最後に別のページを設定することができます彼らのスキル/統計の出力。同じページでこれを行う方法はありますか? – NixondisNRVA

答えて

1

Javascriptでやり直し、変数を更新して維持するためのオプションがいくつかあります。閲覧セッションの終了時に情報を消去したい場合はsessionStorageを使用できますが、アプリケーションに無期限に利用したい場合はlocalStorageを使用できます。ドキュメントについては、MDNを参照してください。

基本的には、ブラウザでデータを「保存」するためにやるものです:

localStorage.setItem('myCat', 'Tom'); 
// or 
sessionStorage.setItem('myCat', 'Tom'); 

が次に出て、後でデータを取得するために、あなたは

var cat = localStorage.getItem('myCat'); 

を使用しますどの、中この場合、値を返す'Tom'

+0

だから、ユーザーの属性を持つように1ページを設定し、次に自分のスキル/統計の最終出力を与えることができます。同じページでこれを行う方法はありますか? – NixondisNRVA

+0

本当に1つのページに全キャラクター作成ビットをノックアウトすることに興味があります – NixondisNRVA

+0

2ページでこれを個別に行うことができるのであれば、それを1ページで行う方が簡単だと思います。具体的に何を求めているのですか? – Corbfon

関連する問題