C # изменение угла прыгающего мяча - PullRequest
1 голос
/ 12 декабря 2011

Я делаю программу Windows Form на C #, где изображение прыгает в окне под углом 45 градусов.Часть, в которой мне нужна помощь, заключается в том, что я должен создать программу, чтобы пользователь мог регулировать угол наклона изображения от 0 до 90 градусов.Я не могу придумать простой способ сделать это, и мне действительно нужна помощь.

Это код таймера, который у меня есть до сих пор.intSideposition - это левое значение изображения.intTopPosition является верхним значением изображения.intLeftSpeed - горизонтальная скорость изображения.intTopSpeed - вертикальная скорость изображения.817 и 380 - это границы окна, от которого изображение будет отражаться.В настоящее время изображение будет подпрыгивать под углом 45 градусов.

//Moves the label by a factor of whatever intLeftSpeed is
intSidePosition = intSidePosition + intLeftSpeed;
intTopPosition = intTopPosition + intTopSpeed;
this.lblSprite.Left = intSidePosition;
this.lblSprite.Top = intTopPosition;

//Checks if the sprite has hit the boundaries of the window, causing it to bounce
if (this.lblSprite.Left <= 0)
{
    intLeftSpeed = intLeftSpeed * -1;
}
else if (this.lblSprite.Left >= 817)
{
    intLeftSpeed = intLeftSpeed * -1;
}
else if (this.lblSprite.Top >= 380)
{
    intTopSpeed = intTopSpeed * -1;
}
else if (this.lblSprite.Top <= 0)
{
    intTopSpeed = intTopSpeed * -1;
}
lblAngle.Text = intAngle.ToString();

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Вы должны будете использовать тригонометрию здесь, чтобы иметь любой угол для шара.

Кроме того, все переменные должны стать double с.И переменные скорости и положения!

Вы будете инициализировать что-то вроде

double speedX = Math.Cos(angle);
double speedY = Mach.Sin(angle);

Я не скажу вам, что угол здесь будет в радианах, а не в градусах.Ой, я только что сделал :) 1009 *

0 голосов
/ 12 декабря 2011

Вам нужно, чтобы ваши intLeftSpeed ​​и intTopSpeed ​​сделали желаемый угол (или, по крайней мере, приблизительный). В настоящее время они всегда равны, поэтому они всегда генерируют угол 45 градусов.

...