Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
反応が遅い?
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2497#CommentId19765
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るきお
 ()
投稿日時
2008/8/1 05:53:00
画像をすばやく左右に移動させたいのであればPictureBoxを使わないで直接描画します。
ただし、これでもそれほど速くなく、もっと速くしたいのであればDirectXの導入を検討します。
以下、直接描画する例です。
移動量を増やせば一応素早くはなりますが動きが荒くなりますよね。
他の方からも指摘が出ているように入力方式も見直した方がいいかもしれませんが、とりあえずKeyDownを踏襲しました。
Public Class Form1
Dim Photo As Image
Dim PhotoLocation As Point
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Right
PhotoLocation.X += 20
Case Keys.Left
PhotoLocation.X -= 20
Case Else
Return
End Select
Me.Invalidate()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Photo = Image.FromFile("C:\Windows\隅田川.bmp")
PhotoLocation = New Point(200, 100)
Me.KeyPreview = True
Me.DoubleBuffered = True
Me.BackColor = Color.Black
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
e.Graphics.DrawImage(Photo, PhotoLocation)
End Sub
End Class