如何增加表格宽度

时间:2017-06-19 22:32:45

标签: c# winforms autoresize window-resize

我不确定如何解决这个问题,但想象一下像这样的2D游戏 Some 2d game 迟早这个家伙会到达表格的末尾(如果表格没有重新绘制/扩展),那么当人们到达当前表格的中间时如何重绘背景,这样我们的角色才能在意义上,永远地走着。想想那些2d跑步游戏,如飞扬的鸟类或喷气背包兜风,你可以在那里散步或飞行无限。此外,仅在角色移动时才会更改表单大小。

1 个答案:

答案 0 :(得分:1)

这是一种粗暴的方法,希望它有助于你前进。基本上只需创建一个与表单一样高的图片框和两倍宽的图片框,将背景图像加载到其中,然后在计时器中将图片移到左侧。你需要一个非常宽的图像,除非你制作最后一帧"否则它在转换时会显得有点生涩。匹配第一个。

更改从左侧减去的数量将控制滚动的速度,因此我将该变量命名为#34;速度"。

public partial class Form1 : Form
{
    private int scrollSpeed = 10;
    Timer timer = new Timer();
    private PictureBox backgroundPictureBox;

    private void Form1_Load(object sender, EventArgs e)
    {
        Width = 1000;
        Height = 1000;

        backgroundPictureBox = new PictureBox
        {
            BackgroundImageLayout = ImageLayout.Stretch,
            Height = this.Height,
            Image = Image.FromFile(@"f:\Public\Temp\tmp.png"),
            Left = 0,
            SizeMode = PictureBoxSizeMode.StretchImage,
            Visible = true,
            Width = this.Width * 2
        };
        Controls.Add(backgroundPictureBox);

        timer.Interval = 1;
        timer.Tick += Timer_Tick;
        timer.Start();
    }

    private void Timer_Tick(object sender, EventArgs e)
    {
        if (backgroundPictureBox.Left < (Width * -1))
        {
            backgroundPictureBox.Left = 0;
        }
        else
        {
            backgroundPictureBox.Left -= scrollSpeed;
        }
    }
}