| 发表于:2007-02-05 19:46:591楼 得分:0 |
我以前做过一个类似桌球的碰撞程序,应该很容易实现你要的功能,可惜太久了找不到源码,给个思路,自己写代码试试 1.在这个picturebox中实现这些控件的自由移动. 先对所有的标签(或tetxbox)各自产生一个随机方向代码(一般是1-8,1:向上,2:右上,3:向右...); 设置一个timer控件,在里面用move方法结合方向代码对各个标签进行移动,如方向代码是1,则每执行一次timer该标签y=y-1(像素),x不变,就实现了标签向上移动...... 2.控件的移动范围不能超过picturebox的大小。一旦接触到picturebox的边界需要给出提示或者控件自动回到原位。 按照1产生的方向不断move标签,并不断判断标签范围是否超国picturebox,如果超过,就随机产生一个新的方向给该标签,让timer继续move改标签以实现边框碰撞弹回的效果(复杂一点可以增加一些角度计算模拟碰撞) 3.控件之间不能重叠,一旦任意两个控件重叠放置,需要给出提示或者控件自动回到原位。 其实类似2,在timer过程中要不断记住每个标签的位置,再不断地判断本标签和其它标签的位置关系,和碰到picturebox边框的道理差不多,只是要增加一些循环判断 大概思路是这样,其中还要考虑一些精确位置,放置闪烁等问题,就不多说了 | | |
|