|
今回は、そこを動くな?!と題してお送りします。 VBで、ちょっとしたアニメーションもどきを作ろうと思った場合、簡単な方法として ピクチャーやイメージのオブジェクトを使って、その座標を動かしますね。 例えば、
と言うような簡単なものでも、左へ10コマ移動しますね。(このままでは、速すぎて見えないでしょうが・・・)アニメーションに限らず、グラフィックオブジェクトの配置を動的に変更したい場合も、LeftやTopといったプロパティを変更して配置しますね。 実は、そういうものを作ろうと思って始めたのですが、NS BASICではこれができないらしいのです。(らしい、なんて自信なさそうですが・・・) 確かに、マニュアルを見てみると、TopやLeftといったプロパティは、「デザイン時にセット」と書かれています。 念のため、このようなコードを書いて、試してみました。 ![]() ![]() と言うことで、他の方法を考えました。 NS BASICでは、グラフィックオブジェクト(Bitmapというオブジェクト)にビットマップイメージを割り当てる以外の描画方法として、直接グラフィックイメージを描画する方法があります。 DrawBitmap というコマンドを使うと、プロジェクト内に含んでいるビットマップイメージを描画することができます。 書式は、 DrawBitmap イメージの番号,横軸,縦軸 という書式で、イメージの番号とは、NS BASICのプロジェクトファイルに、ビットマップを追加した時に、システム側が割り当てる番号です。 この横軸と縦軸の値をグローバルな変数を使って、適当に変化させれば、任意の位置に描画できる気がします。 ここで、気になったのは、オブジェクト移動するわけではなく、毎回描画するわけだから、速度的に遅いのでは・・・と言う事です。 今は昔の「キャラクター定義」という言葉を思い出しました。そう、画面上でチラついてしまう、という過去の体験です。(古いか?) MSXなんかでスプライトが使えたときは楽だったなぁ、などということも思い出しましたが、他に方法がなさそうなので、とりあえず作ってみました。 画面の何もないところをタップすると、その方向にちょっとだけロゴマークが動くだけです。 1回タップすると、2ピクセル動く仕組みですが、毎回描画している割には、サクサク動くではありませんか。これなら、動的に画面を作ってもダイジョウブですね。 (このファイルは、CreaterIDがTestになっています。) そう言えば、昔話を思い出したついでに、ビットマップファイルの作り方も昔を思い出しました。 ![]() さて、第2回目、いかがでしょうか? 私も、内容の方向性が決められない徒然レポートなので、わかりにくい面もあるかと思いますが、ご勘弁下さい。 NS BASICの購入を検討されている方で、疑問な点がありましたらご一報下さい。できるだけ、テーマにしていきたいと思います。 |