投稿者 dakaメロンアイレム社  (小学生) 投稿日時 2008/12/24 14:38:14
リソース回転ですが、実は自己解決できてません。
この回答には、魔界大先生にお願いしたいです。甘えちゃっていいですか?
キャラリソース数を増やせばできる事ですが、リソース数を増やずにコードで解決したいんです。
{質問}キャラクターの中心X,Yで回転させたい
↓このコードでは左上X,Yで回転してしまうのだ(泣)
Option Strict On
'Vista 
'VisualBasic2008 
Imports System.Drawing.Drawing2D
Public Class Form1
    Private kyara_suu As Integer = 5
    Private kyara(kyara_suu - 1) As Image
    Private test_kakudo As Integer = 0
    Public Sub New()
        ' この呼び出しは、Windows フォーム デザイナで必要です。 
        InitializeComponent()
        ' InitializeComponent() 呼び出しの後で初期化を追加します。 
        kyara(0) = My.Resources.hosi1 : kyara(1) = My.Resources.hosi2 : kyara(2) = My.Resources.hosi3
        kyara(3) = My.Resources.kouri1 : kyara(4) = My.Resources.kouri3
    End Sub
    Private Sub G_B(ByVal g As Graphics, ByVal kakudo As Integer)
        Dim rotatepoint As New PointF(100.0F, 100.0F)
        Dim myMatrix As New Matrix
        myMatrix.RotateAt(kakudo, rotatepoint, MatrixOrder.Append)
        g.Transform = myMatrix
        g.DrawImage(kyara(3), 100, 100)
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Timer1.Tick
        PictureBox1.Invalidate()
        test_kakudo += 1
        If test_kakudo > 360 Then test_kakudo = 0
    End Sub
    Private Sub PictureBox1_Paint(ByVal sender As ObjectByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        G_B(e.Graphics, test_kakudo)
    End Sub
End Class