#c# #loops #draw
#c# #циклы #рисовать
Вопрос:
Я пытаюсь заставить растровое изображение отскакивать от верхней и нижней части окна. Который, кажется, работает нормально. Показанный метод рисования вызывается в цикле, что приводит к тому, что растровое изображение постоянно перерисовывается с новой позицией.
public class Ball
{
double SpeedX = 4;
double SpeedY = 4;
int ballWidth = 1;
public double X {get; private set;}
public double Y {get; private set;}
public void Draw(Window screen)
{
X = SpeedX;
Y = SpeedY;
if (Y <= 0) {
SpeedY = -SpeedY;
Y = 0;
}
else if (Y >= (screen.Height - ballWidth)) {
SpeedY = -SpeedY;
Y = screen.Height - ballWidth;
}
Bitmap.Draw(X,Y);
}
}
Тем не менее, я пытаюсь изменить начальные значения SpeedX и Speedy при создании растрового изображения. Когда я передаю эти значения, мое растровое изображение застревает в верхней / нижней части окна — SpeedY, по-видимому, приводит к 0, тогда как SpeedX продолжает работать (что приводит к тому, что растровое изображение скользит по верхней / нижней части экрана). Я что-то делаю не так? Я не понимаю, почему передача двух значений извне может испортить функцию рисования.
public Ball RandomBall(Window game)
{
Ball newball = new Ball(_Game);
Random direction = new Random();
newball.SpeedX = 5;
newball.SpeedY = 5;
return newball;
Комментарии:
1. Это, вероятно, не связано с вашей проблемой, но я думаю, что
Y
в первом случае должно быть установленоballWidth
значение, а не 0if
(и первоеif
должно проверяться на `ballWidth а не 0)2. Приветствия, я только что изменил это. Однако это не решило проблему.