私はトラフィックシミュレータを作成するためにJavaScriptスクリプトでTypescriptを使用しています。さて、交通信号がどれくらいの間赤色になっているかを知りたい。私のコードでは、light変数の色を制御するための特定のブール値がtrueの場合、トラフィックライトは緑に変更されます。私は、このブール変数が真に設定されている時間を測定できるかどうかを考えています。私は信号機の時間を返すことができるように。私のコードは長すぎて、それらのすべてを投稿することはできません。しかし、トラフィックライトを設定するに関連付けられているいくつかのコードがあります:JavaScript/Typescript - 変数の値が設定されている時間を測定できますか?
私は緑にトラフィックライトを設定したい場合は、この関数が呼び出されることになります。
setDirAtInter(dir: TLDir, loc: number){ //North-South if(dir == 0){ this.intersections_arr[loc].NS = true; } //East-West else if(dir == 1){ this.intersections_arr[loc].EW = true; } }
intersection_arrはのインスタンスを含む配列です
intersection
クラスそしてブール変数が設定されており、
intersection
クラスの内側にある以下のコードは、信号灯の色を設定するために影響を受けるであろう。if(this.NS == true){ this.right = "rgba(255,0,0,0.4)"; this.left = "rgba(255,0,0,0.4)"; this.top = "rgba(0,255,0,0.4)"; this.bottom = "rgba(0,255,0,0.4)"; }
そして
intersection
クラス内の以下のコードは、トラフィックライトを描画するために影響を受けるであろう:this.ctx.save(); if(this.top == "rgba(0,255,0,0.4)"){ //green var shadow_color = 'rgba(0,255,0,1)'; } else{ var shadow_color = 'rgba(255,0,0,1)'; } //console.log(); this.ctx.fillStyle = shadow_color; this.ctx.shadowColor = shadow_color this.ctx.shadowOffsetY = -2; this.ctx.shadowBlur = 2; /** * Right Traffic Light at Top side */ this.ctx.fillRect(this.x+4,this.y-2,6,6); this.ctx.fill(); this.ctx.restore(); this.ctx.shadowOffsetX = undefined; this.ctx.shadowBlur = undefined;
ctx
CanvasRenderingContext2D
があります。交通信号がどれくらい緑色に設定されているかを測定することができますか?
Typescriptは分かりませんが、色が変わるたびに現在の時刻を保存する変数 'timeChanged = new Date()'を設定するだけです。そして、 'new Date() - timeChanged'は最後に変更されてから何ミリ秒経過したかを示します。 – nnnnnn