時間のかかるJavaプログラマはゆっくりとスカラーを学習しています(私はそれを愛しています)。今、私はいくつかの動く2次元テクスチャのためのシンプルなビジュアライザーを作成しようとしています。不可欠なアプローチは十分に単純である、と私はあなたのほとんどは(ものは無実を保護するために変更された)コードのこの比較的ユビキタスブロックを認識します確信している:スケーラゲームプログラミング:機能的なスタイルでオブジェクトの位置を前進させる
class MovingTexture(var position, var velocity) extends Renders with Advances {
def render : Unit = {...}
def advance(milliseconds : Float) : Unit = {
position = position + velocity * milliseconds
}
}
このコードはうまく動作します、しかし、それは持っています数多くの変化する状態とその機能は副作用でいっぱいです。私は自分でこれを取り除くことはできません、はより良い方法でなければなりません!
誰もが、この単純な問題に対する驚くほどエレガントで機能的な解決策を持っていますか?誰かがこの種の問題を解決する方法についてもっと知ることができるソースを知っていますか?
一般的なコンセンサス(すべての回答の中で)は、現在の状態を表すオブジェクトのコピーを作成するだけのようです。これは正確には私が探していたものではありませんが、_this_答えは、(値の状態を表現するのではなく)値がどのように変化するかを表現するイテレーターを定義するなどの考えのための、本当に面白い食べ物をいくつか提示します。変数がどのように変化するか(微積分における積分のようなもの)を表現する何らかの種類の関数(または反復)として位置を表現するための何らかの方法を見つける。しかし、私にいくつかのクールなものを紹介してくれてありがとう! – jtb