问题描述
请教大神们更高级模拟重力方法。。由于控件的Location无法弄成Double类型。。使得button1控件下落有卡顿现象,不够流畅。。
解决方案
解决方案二:
初学C#,有什么不懂的,希望大神不吝赐教
解决方案三:
在timer_tick事件最后加个button1.Refresh();试试
解决方案四:
引用2楼u012804018的回复:
在timer_tick事件最后加个button1.Refresh();试试
试过了,没有作业,重绘控件没有啥作用
解决方案五:
引用3楼s578417141的回复:
Quote: 引用2楼u012804018的回复:
在timer_tick事件最后加个button1.Refresh();试试试过了,没有作业,重绘控件没有啥作用
那这个没办法了,应该除了绘图,在没办法了,因为你牵扯到坐标...
解决方案六:
timer事件不是一个优先级很高的事件,系统可能把几个timer事件合在一起处理.如果做图形程序,还是选择WPF吧,学新的框架开始有很多痛苦,不过比用WinForm强好多.
解决方案七:
引用5楼Ptrtoptr的回复:
timer事件不是一个优先级很高的事件,系统可能把几个timer事件合在一起处理.如果做图形程序,还是选择WPF吧,学新的框架开始有很多痛苦,不过比用WinForm强好多.
感谢楼上回答,WPF暂时不会考虑,因为下学期学校就上JAVA课程了。然后winform都学的一知半解,所以现在还是希望多学习点winform。
解决方案八:
我讲我写的代码贴上来publicpartialclassForm1:Form{publicintX,Y;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){X=button1.Location.X;Y=button1.Location.Y;}publicintv=0;publicintT=0;privatevoidtimer1_Tick(objectsender,EventArgse){v=v*T+5*T*T;T+=1;if(button1.Location.Y+button1.Height+v>=pictureBox1.Location.Y-pictureBox1.Height){timer1.Enabled=false;button1.Top=pictureBox1.Top-button1.Height;}else{button1.Top+=v;}button1.Refresh();}privatevoidbutton1_Click(objectsender,EventArgse){timer1.Enabled=true;}privatevoidbutton2_Click(objectsender,EventArgse){button1.Location=newPoint(X,Y);T=0;v=0;}}
解决方案九:
木有人来啊。。。这个问题让我怎么结局
解决方案十:
不回答,这问题你先把高中物理捡起来在搞既然模拟重力,你高中物理什么告诉你滴
解决方案十一:
v=v*T+5*T*T;这什么玩意,你不会用距离=加速度and时间公式直接算最终坐标么,这么加累不累还有,坐标虽然只能是整数,谁让你每个参数都用整数了你不会小数计算,结果取整么
解决方案十二:
还有,想不卡顿,timer时间设置小点至少小于50才行