C#怎么写让游戏对象左右移动的代码?
如果你把VX+和VY+从数学中删除。Min(VX+),它将变成匀速运动。
直接复制以覆盖form类操作,无需控件。
公共?班级?最简单的加速运动
暗淡?左右,上下?作为?整数
暗淡?x,?y,?VX?VY?VA?作为?两倍
暗淡?WithEvents?时钟?作为?新的?计时器
暗淡?WithEvents?移动控件?作为?新的?标签
私人?Sub?Form1_Load(发送方?作为?对象,?e?作为?EventArgs)?手柄?我的基地。负荷
我。关键评论?=?真实的
VA?=?0.5
x?=?300.0
y?=?300.0
移动控制。背景色?=?颜色。中等人口
移动控制。尺寸?=?新的?尺寸(60,?60)
控制。添加(移动控件)
时钟。区间?=?25
启用时钟?=?真实的
结束?潜水艇
私人?Sub?Form1_KeyDown(发件人?作为?对象,?e?作为?KeyEventArgs)?手柄?我的基地。按键
如果?e .键码?=?钥匙。向上?然后呢?上下?=?-1
如果?e .键码?=?钥匙。下来?然后呢?上下?=?1
如果?e .键码?=?钥匙。向左?然后呢?关于什么?=?-1
如果?e .键码?=?钥匙。对吗?然后呢?关于什么?=?1
结束?潜水艇
私人?Sub?Form1_KeyUp(发件人?作为?对象,?e?作为?KeyEventArgs)?手柄?我的基地。击键
如果?e .键码?=?钥匙。向上?然后呢?上下?=?0
如果?e .键码?=?钥匙。下来?然后呢?上下?=?0
如果?e .键码?=?钥匙。向左?然后呢?关于什么?=?0
如果?e .键码?=?钥匙。对吗?然后呢?关于什么?=?0
结束?潜水艇
私人?Sub?Clock _Tick(发件人?作为?对象,?e?作为?EventArgs)?手柄?时钟。滴答声
VX?=?数学。闵(VX?+?关于什么?*?VA,?10)
VY?=?数学。闵(VY?+?上下?*?VA,?10)
x?+=?甲硫膦酸丙胺乙酯
y?+=?小牛肉酵母
如果?x?& lt?0?然后呢?x?=?2?:?VX?=?VX
如果?y?& lt?0?然后呢?y?=?2?:?VY?=?VY
如果?x?& gt?宽度?-?移动控制。宽度?然后呢?x?=?宽度?-?移动控制。宽度?-?2?:?VX?=?VX
如果?y?& gt?身高?-?移动控件。身高?然后呢?y?=?身高?-?移动控件。身高?-?2?:?VY?=?VY
移动控制。位置?=?新的?点(X,?y)
结束?潜水艇
结束?不好意思,是VB版的。以下是C#版本。
公共?部分?班级?Form1?:?形式?{
公共?Form1()?{
initialize component();
}
int?左右;
int?上下;
双倍?x;
双倍?y;
双倍?VX;
双倍?VY;
双倍?VA;
定时器?时钟?=?新的?timer();
标签?移动控件?=?新的?label();
私人?作废?Form1_Load(对象?发件人?EventArgs?e)?{
这个。关键评论?=?真实;
VA?=?0.5;
x?=?300.0;
y?=?300.0;
移动控制。背景色?=?颜色。中等人口;
移动控制。尺寸?=?新的?尺寸(60,?60);
控制。添加(移动控件);
按键?+=?form 1 _ KeyDown;
KeyUp?+=?form 1 _ KeyUp;
时钟。滴答?+=?Clock _ Tick
时钟。区间?=?25;
启用时钟?=?真实;
}
私人?作废?Form1_KeyDown(对象?发件人?KeyEventArgs?e)?{
如果?(e.KeyCode?==?钥匙。向上)
上下?=?-1;
如果?(e.KeyCode?==?钥匙。向下)
上下?=?1;
如果?(e.KeyCode?==?钥匙。左)
关于什么?=?-1;
如果?(e.KeyCode?==?钥匙。右)
关于什么?=?1;
}
私人?作废?Form1_KeyUp(对象?发件人?KeyEventArgs?e)?{
如果?(e.KeyCode?==?钥匙。向上)
上下?=?0;
如果?(e.KeyCode?==?钥匙。向下)
上下?=?0;
如果?(e.KeyCode?==?钥匙。左)
关于什么?=?0;
如果?(e.KeyCode?==?钥匙。右)
关于什么?=?0;
}
私人?作废?Clock _Tick(对象?发件人?EventArgs?e)?{
VX?=?数学。闵(VX?+?关于什么?*?VA,?10);
VY?=?数学。闵(VY?+?上下?*?VA,?10);
x?+=?VX;
y?+=?VY;
如果?(X?& lt?0)?{?x?=?2;?VX?=?-VX;?}
如果?(Y?& lt?0)?{?y?=?2;?VY?=?-VY;?}
如果?(X?& gt?宽度?-?移动控制。宽度)?{?x?=?宽度?-?移动控制。宽度?-?2;?VX?=?-VX;?}
如果?(Y?& gt?身高?-?移动控制。身高)?{?y?=?身高?-?移动控件。身高?-?2;?VY?=?-VY;?}
移动控制。位置?=?新的?点((int)X,?(int)Y);
}
}