WInform小游戏,求解,最好写上思路和代码

90_後 2013-03-28 04:46:07
使用时钟控件,创建一个窗体程序,

窗体上放置一个红色的方块,要求方块向

45度方向移动,当遇到窗体边界时反弹,

周而复始。
...全文
335 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
搬砖的码农 2013-03-28
  • 打赏
  • 举报
回复
初始化要不要无所谓,我这里是有
 private void frmMove_Load(object sender, EventArgs e)
        {
            pictureBox1.Location = new Point(0, 0);
        }
搬砖的码农 2013-03-28
  • 打赏
  • 举报
回复
哦,还掉了两个全局的x,y;我这里设置5,你自己可以改你要的值
 public int x = 5;
        public int y = 5;
搬砖的码农 2013-03-28
  • 打赏
  • 举报
回复
刚才随便弄了个,没规范命名。。。 有一个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);
        }
iceMung 2013-03-28
  • 打赏
  • 举报
回复
定义两个全局变量表示 X偏移量Y偏移量 每次执行坐标改变的方式时判断: Location.X是否小于0,是否大于移动区域.Width-方块.Width,满足条件则,X偏移量=0-X偏移量 Location.Y是否小于0,是否大于移动区域.Height-方块.Height,满足条件则,Y偏移量=0-Y偏移量
shawn_yang 2013-03-28
  • 打赏
  • 举报
回复
大体思路:定义地图坐标,可以用一个二维数组,让物体在该坐标里移动(用算法实现),同时判断物体坐标x,y是否大于等于地图边界x_m,y_m,如是则反弹(算法实现)
lijunwei 2013-03-28
  • 打赏
  • 举报
回复
设置两个变量 VX,VY;初始化为VX=1,VY=1;然后每次循环执行这个语句 this.loction = new point(this.loction.X + VX,this.loction.Y + VY); 然后当检测到这个方块在边界上时(比如说上边界),就VX = -1 VY = 1;然后继续循环.
搬砖的码农 2013-03-28
  • 打赏
  • 举报
回复
判断location的X和Y值
90_後 2013-03-28
  • 打赏
  • 举报
回复
引用 3 楼 iceMung 的回复:
1.定义一个Timer 2.Timer绑定红色方块移动的方法:改变Location
这个知道,主要是坐标变化的问题,求代码!
iceMung 2013-03-28
  • 打赏
  • 举报
回复
1.定义一个Timer 2.Timer绑定红色方块移动的方法:改变Location
90_後 2013-03-28
  • 打赏
  • 举报
回复
引用 1 楼 kkkddd44 的回复:
So easy!!!
帮忙写下说明思路
kkkddd44 2013-03-28
  • 打赏
  • 举报
回复
So easy!!!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧