|
先生「今度はVC#で『←』『→』キーでキャラを左右に回転させます。 前回のプロジェクトの続きで、以下の赤字のようにコーディングしてください」
//30ミリ秒ごとに呼ばれる関数
void Update3DEvent(object sender, EventArgs e)
{
if (Keyboard.IsKeyDown(Key.Right))
{
//キャラの角度を減算
angle -= 10;
//0度を下回ったら360度加算
if (angle < 0)
{
angle += 360;
}
}
if (Keyboard.IsKeyDown(Key.Left))
{
//キャラの角度を加算
angle += 10;
//1回転したら360度減算
if (angle >= 360)
{
angle -= 360;
}
}
//3D行列
Matrix3D m = new Matrix3D();
//回転
Quaternion q = new Quaternion(new Vector3D(0, 1, 0), angle);
//回転を3D行列にセット
m.Rotate(q);
//3D行列に平行移動した位置posをセット
m.OffsetX = pos.X;
m.OffsetY = pos.Y;
m.OffsetZ = pos.Z;
//3D行列を3D変形行列にセット
MatrixTransform3D trans = new MatrixTransform3D(m);
//剣士キャラに移動した変形行列をセット
Character_Swordsman_Swordsman.Transform = trans;
}
|
|