我目前正在使用 XNA 和 VS2010 开发 2D 弹球游戏,但遇到了问题。
首先,我有两个桨,每个桨都有一个边界框。据我所知,除非使用 draw 方法,否则不可能旋转 Rectangle 。但是这种类型的旋转不起作用,因为 Rectangle 尺寸实际上并没有移动,它只是被绘制来这样做。
然后我继续使用线条,在尝试实现 System.Drawing 以使用钢笔工具时,我发现命名空间不存在。
建议?
我目前正在使用 XNA 和 VS2010 开发 2D 弹球游戏,但遇到了问题。
首先,我有两个桨,每个桨都有一个边界框。据我所知,除非使用 draw 方法,否则不可能旋转 Rectangle 。但是这种类型的旋转不起作用,因为 Rectangle 尺寸实际上并没有移动,它只是被绘制来这样做。
然后我继续使用线条,在尝试实现 System.Drawing 以使用钢笔工具时,我发现命名空间不存在。
建议?
听起来您混淆了实际的游戏桨/矩形元素及其绘制到屏幕上的图像。
担心你的游戏是如何进行的,桨、球等如何移动和旋转,然后绘制图像以进行相应的匹配。
此外,如果您遇到问题,请考虑发布代码。
抱歉,不是真正的答案,而是编辑。我还没有 enuf 点来编辑您的问题,但是自动换行的代码让我很烦。缩进至少 4 个空格以使其自动识别为代码。另外,您似乎缺少其中的一部分。
public void RotL(float gametime)
{
rotAngle += (gametime * speed);
rotAngle = rotAngle % CIRCLE_IN_DEGREES;
rads = rotAngle * (Math.PI / 180);
if (rotAngle <= MAX_ROT)
{
rotAngle = MAX_ROT;
speed = 1.0F;
Endpoint.X = (float)(PADDLE_WID * Math.Cos(MAX_RADS));
Endpoint.Y = (float)(PADDLE_WID * Math.Sin(MAX_RADS));
}
else if (rotAngle >= INIT_ROT)
{
data manipulation that mirrors the previous if clause, replacing MAX_RADS with INIT_RADS
}
else
{
speed += 0.45F;
Endpoint.X = (float)(PADDLE_WID * Math.Cos(rads));
Endpoint.Y = (float)(PADDLE_WID * Math.Sin(rads));
}