前回でおおかたの説明は終わったので、今週はとにかくプログラミングを進めてもらいます。
前回からの間に「一時停止機能はどうつけたらいいのですか?」という質問があったので、その方法として、phystem.jsを改良しました。
このページが「一時停止機能の説明例」になってます。
修正点を述べます。
まず、phystem.jsの197行目の
を、
に直します(this.goFlgというフラグをtrueにしてます)。
次に、phystem.jsの199行目の
の後に、
if( !ps.goFlg ) { return; }
と3行追加します。これで、goStep()(←毎回の運動を計算している関数)が、 goFlgがtrueでないと何もしないで戻ります。goStep()関数はその最後で「一定時間ごとに自分を呼び出す」ということをしてアニメーションを実現してますが、それもやらなくなります(つまり、「止まる」)。
ボタンは、htmlファイルの中に以下のように追加します(psはPhystemです が、自分のに合わせて変更すること)。
<button onclick="ps.goFlg=false;">一時停止</button> <button onclick="if( !ps.goFlg ) { ps.start(); }">再スタート</button>
意味はわかると思いますが「一時停止」ボタンを押すとgoFlgがfalseになり、 止まります。「再スタート」ボタンを押すと現在停止中なら「start()」で再始動させます (単に再始動させると、同じものが複数個走るのでチェックが必要)。