第四回 VB講座 画像とタイマー
座標について(フォーム) 右向き正 原点( 0, 0 ) 端点 (Me.Width , Me.Height) 下向き正 左上、青いラベルの真下が原点になる。 右方向がx軸の正、下方向がy軸の正となり数学の座標系とは少し違うので注意すること。 Formの大きさはプロパティのsizeを変更することで変えられます。(デフォルト値 300×300) 端点の大きさはMe.Width(横幅)とMe.Height(縦幅)で得られる。 (基本的に、Formの各情報はMe.~で得られます) Me.WidthとMe.Heightは整数値なので、変数への代入や演算に使えます。 端点 (Me.Width , Me.Height) 下向き正
座標について(オブジェクト) オブジェクトの原点 (PictureBox1.Left , PictureBox1.Top) オブジェクトの座標は、どれだけ左or上に動かしたらフォームの原点に戻るか、で示されている。 この「PictureBox1.Left」と「PictureBox1.Top」は整数値として扱えるので、変数への代入や演算に使える。 例えば、 PictureBox1.Left += 5 を実行すると、 PictureBox1.Leftの値が5増えるので、画面上ではPictureBox1が右に5ピクセル移動することになる。 なお、TextBoxやLabelなどの座標も同様に「~.Left」と「~.Top」で取得、変更ができる。 オブジェクトの原点 (PictureBox1.Left , PictureBox1.Top)
画像を使おう PictureBoxを使う PictureBoxを画面に配置して、画像を表示させてみよう。 表示できる画像には、 bmp、jpeg、gif、ico、png、wmf などいろんな種類があります。 プロパティのImageという項目を変更することで画像を指定できる。 また、プログラム内でも PictureBox1.Image = Image.FromFile("C:\mikan.jpg") のようにすれば、任意の画像を表示できる。 また、 PictureBox1.Image = Nothing で画像を消去できる。
周期的に命令を実行しよう 10ミリ秒ごとに画像を移動させよう まずは、ツールボックスからTimerをみつけて設置しよう。 →Timerの設定 画像を移動させよう。 次の命令をTimerをダブルクリックしてできた部分に書こう。 Intervalはミリ秒で指定するので単位に気をつけること。 Timerは設置しただけでは動かないので、プロパティ内の動作のEnabledをTrueに変更する必要がある。 この作業は、プログラムの設計時にもできるし、命令にて Timer1.Enabled = True ( or Fales) としてやれば、タイマーのオンとオフを切り替えられる。 PictureBox1.Top += 1 PictureNox1.Left += 1
あたり判定をしよう みかんが端まで来たら跳ね返そう みかんの座標 + みかんの横幅 >= Formの横幅(Me.Height) みかんのX軸に進む方向を逆に みかんの座標 + みかんの縦幅 >= Formの縦幅(Me.Width) みかんのY軸に進む方向を逆に みかんの座標 <= FormのX軸原点(具体的な数字で言うと「0」) みかんの座標 <= FormのY軸原点(具体的な数字で言うと「0」) Timer一回につき移動する量(速さ)をXとすると、X軸を正方向に移動するには みかんの座標 = みかんの座標 + X だが、X軸を負方向に行くにはどうすればいいか? みかんの座標 = みかんの座標 - X これでいいのかな? 正解は、 X = -X として、
当たり判定をしよう プログラム例 Classの中で Dim X As Integer = 3 Dim Y As Integer = 1 Timerの中で If (mikan.Left + mikan.Width) >= Me.Width Then x = -x End If mikan.Top += y mikan.Left += x