今回は、前回に作ったのセルのアニメーション処理を追加します。アニメーションをさせるということは、各セルに対して定期的に再描画のUpdate処理をコールしてあげる必要があります。このためUpdate処理を実装します。最初に、Updateメソッドだけを持つインターフェースを作ります。}作ったインターフェースをCellScriptクラスに適用します。Updateメソッドは、一旦デバッグメッセージの出力として実装しておきます。}次に、呼び元側となる画面のForm1クラスを修正します。}先ほど定義したインターフェースを持つオブジェクト(セル)達を管理するtaskListメンバ変数として定義します。画面表示の初期化処理であるForm1_Load()でListにセルたちを入れ込んでいます。画面にtimeGameTimerというTimerコントロールをおいた上で、timGameTimer_Tick()イベントをタイマー実行させます。timGameTimer_Tickが行っていることは、先ほど登録したセルたちのUpdate()メソッドを順にコールするだけです。100;”としているため100mSec毎となり、毎秒10フレームで表示(10FPS)されます。ここでInterval=20など小さくすればより滑らかにアニメーション動作させることができます(ただし頻繁に書き換えるので負荷は上がります)。ここまで書いて一旦実行させると...出力ウィンドウにUpdateメソッドのデバッグログが出力され続けます。(出力ウィンドウが無い時は、Alt+2キーで表示できますこれで、Update()の定期的な呼び出しができるようになりました。次に、CellScriptのアニメーション処理を実装します。セルの状態ととしては、静止状態(IDLE)とスライドのアニメーション中状態(SLIDE)があるので、状態の一覧であるSTATE列挙体と現在の状態を持つcurStateを定義します。STATE.IDLE;コンストラクタでの初期化時にcurStateをIDLEに初期化します。setPositionで移動先が指定されると、最終移動先をdestLocationに、現在位置とのずれをslideOffsetに入れます。slideOffsetが現在位置になりますが、アニメーションで徐々にdestLocationの位置に移動させていきます。SLIDE_FRAMEでは、アニメーションにかかる時間(フレーム数)を指定しています。10FPSでSLIDE_FRAME=50だったら、5秒かけて移動のアニメーションが走ることになります。}次はUpdate()メソッドです。こちらは、現在の状態(curState)に応じて処理を変えます。IDLEの時は何もしません。SLIDEの時、SLIDE状態になってからのは経過フレーム(slidingFrame)に応じて、徐々にセルをdestLocationへ近づけていきます。経過フレームがSLIDE_FRAMEに達したらIDLEに戻します。}これを実行すると、セルのアニメーションが行えます。最後にForm1にボタンを貼り付け、クリックしたら特定のセルの位置を変え(=STATEをSLIDE_FRAMEに変え)れば、アニメーションが行われます。}セルをたくさん用意し、以下のようなコードを書けば大量のセルたちを一斉にスライドさせることも簡単です。コメントをキャンセルメールアドレスが公開されることはありません。29お勧め書籍webアプリのセキュリティ対策の為に。