WInform小游戏,求解,最好写上思路和代码
使用时钟控件,创建一个窗体程序,
窗体上放置一个红色的方块,要求方块向
45度方向移动,当遇到窗体边界时反弹,
周而复始。
[解决办法]
大体思路:定义地图坐标,可以用一个二维数组,让物体在该坐标里移动(用算法实现),同时判断物体坐标x,y是否大于等于地图边界x_m,y_m,如是则反弹(算法实现)
[解决办法]
刚才随便弄了个,没规范命名。。。
有一个panel控件,填充窗体,一个picturebox控件,放你要显示的图片,代码如下
private void timer1_Tick(object sender, EventArgs e)
{
int f_x = panel1.Width;
int f_y = panel1.Height;
int p_x = pictureBox1.Location.X;
int p_y = pictureBox1.Location.Y;
if (p_x >= (f_x-pictureBox1.Width)) //右边超出窗体大小 除去运动物体的宽
x = -5;
else if (p_x <= 0) //左边超出窗体大小
x = 5;
if (p_y >= (f_y-pictureBox1.Height)) //下边边超出窗体大小 除运动物体的高
y = -5;
else if (p_y <= 0) //上边超出窗体大小
y = 5;
pictureBox1.Location = new Point(pictureBox1.Location.X + x, pictureBox1.Location.Y + y);
}