好的,请保持答案非常直接,我必须说我对C#很新,我不知道很多东西。没有进一步的问题我的问题。 我试图在计时器上横向移动一个图片框。计时器必须无限进行。我已经尝试过我目前在C#中所知道的所有内容并且搜索了很多但是没有回答我的确切问题,这是我需要的,因为我对C#的了解较少。在过去的两个星期里,我主要从事图形工作,其余部分试图让它工作,所以我的游戏中没有代码。这是因为任何工作我需要这部分工作。我的游戏是2D自上而下。任何和所有的帮助表示赞赏。
感谢您抽出宝贵时间阅读。
修改的
不需要更多答案,感谢Odrai的回答,它给了我很多帮助。
答案 0 :(得分:1)
使用pictureBox.Location = new Point(x,y)或设置pictureBox.Left / Top / Right。您可以将x和y定义为变量,并使用默认值对其进行初始化。计时器滴答时增加x。
样本1:
public partial class Form1 : Form
{
private Random _random
public Form1()
{
InitializeComponent();
_random = new Random();
}
private void timer1_Tick(object sender, EventArgs e)
{
int x = _random.Next(0, 500);
int y = _random.Next(0, 500);
pictureBox1.Top += y;
pictureBox1.Left += x;
}
}
样本2:
private void timer1_Tick(object sender, EventArgs e)
{
this.SuspendLayout();
pictureBox.Location = new Point(picust.Location.X + 10, picust.Location.Y);
this.ResumeLayout();
}
答案 1 :(得分:0)
将两个标题为LEFT和RIGHT的按钮添加到表单并编写以下代码。 它可能会给你一个想法,如何做简单的移动动画。
public partial class Form1 : Form
{
int difference = 0;
Timer timer = new Timer();
public Form1()
{
InitializeComponent();
timer.Interval = 15;
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
pictureBox1.Left += difference;
}
private void btnLeft_Click(object sender, EventArgs e)
{
difference = -2;
}
private void btnRight_Click(object sender, EventArgs e)
{
difference = 2;
}
}
答案 2 :(得分:0)
尝试此代码将起作用:
private void timer1_Tick(object sender, EventArgs e)
{
int width = this.Width; // get the width of Form.
if(pictureBox1.Location.X > width - pictureBox1.Width) //to check condition if pic box is touch the boundroy of form width
{
pictureBox1.Location = new Point(1, pictureBox1.Location.Y); // pic box is set to the new point. here 1 is indicate of X coordinate.
}
else
{
pictureBox1.Location = new Point(pictureBox1.Location.X + 100, pictureBox1.Location.Y); // to move picture box from x coordinate by 100 Point.
}
}
答案 3 :(得分:-1)
//尝试此//
picturebox1.Location = 0,0;