位图在循环内无法正常工作

问题描述

我正在尝试获取一个位图以从窗口的顶部和底部反弹。这似乎工作正常。所显示的Draw方法在循环内被调用,导致位图以其新位置不断重绘。

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继续工作(导致位图在屏幕的顶部/底部滑动)。我做错什么了吗?我不明白为什么从外部传入两个值会搞砸Draw函数

public Ball RandomBall(Window game)
    { 
        Ball newball = new Ball(_Game);
        Random direction = new Random();
        
        newball.SpeedX = 5;
        newball.SpeedY = 5;

        return newball;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)