我正在为学校做项目,我们需要在不使用XNA的情况下在C#中进行基本的自上而下的比赛.首先让我告诉你,到目前为止我们学到的关于编程的东西与制作甚至远程看起来像一场比赛的东西没什么关系.它没有比数组,循环等更难.所以我们没有学习图形或类似的东西.
说完所有我有以下问题.
我们创建了一个Graphics对象,然后使用DrawImage并使用car.jpg中的位图.
graphics = e.Graphics;
graphics.RotateTransform(angle);
graphics.DrawImage(car, xPos, yPos, car.Width, car.Height);
Run Code Online (Sandbox Code Playgroud)
然后我们等待按键,例如右键
case Keys.Right:
if (angle != 360)
{
angle += 10;
}
else
{
angle = 0;
}
this.Refresh();
break;
Run Code Online (Sandbox Code Playgroud)
我们遇到的问题是旋转的枢轴点位于左上角.因此,只要我们将汽车移动到类似的东西(20,25)并开始旋转它,它就会(0,0)用作旋转中心.我们想要实现的是将中心旋转点置于汽车的中心位置.
我们试图寻找各种方法来改变centerX和centerY的RotateTransform,但得出的结论是,这是不可能的位图.我们一直在努力解决这个问题超过2天,似乎无法找到任何解决方案来实现我们想要的东西.
有没有什么我们在创建Graphics对象时做错了,还是有一种完全不同的方式来改变centerX和centerY为汽车?