MotionEvent及惯性

ACTION_DOWN:

if(1==isMenuLevel)//一级菜单
				{
					if(doorState==1)//当前为开仓状态,并且没有弹出对话框
					{
						if(hasInertia)//按下时,如果有惯性,那么直接停止
						{
							hasInertia=false;
							curr_angle_speed=0;
						}
						//这里对滚轮菜单下的按下事件进行监听
						if(x>MENU_BUTTON_AREA[0]&&x<MENU_BUTTON_AREA[1]&&y>MENU_BUTTON_AREA[2]&&y<MENU_BUTTON_AREA[3])
			        	{
							isPoint=true;//点击了相应的菜单按钮
			        	}
					}
				}

ACTION_MOVE:

					if(doorState==1)//当前为开仓状态,并且没有弹出对话框
					{
						//这里进行范围限制
						if(missile_rotation+dy*TOUCH_SCALE_FACTOR>20)
						{
							missile_rotation=20;
						}
						else if(missile_rotation+dy*TOUCH_SCALE_FACTOR<-245)
						{
							missile_rotation=-245;
						}
						else
						{
							missile_rotation+=dy*TOUCH_SCALE_FACTOR;//当前导弹菜单旋转地角度
						}
						if(Math.abs(dy)>8)//设定一个阈值,如果大于这个阈值,松开手指后,添加惯性
						{
							isTouchMoved=true;//当前正在触摸 移动中
							curr_angle_speed=ori_angle_speed*(dy/SCREEN_WIDTH);
						}
						if(isPoint&&Math.abs(dy)>10)//如果点击事件为true,但是又移动了,所以点击事件设为false
						{
							isPoint=false;
						}
					}

ACTION_UP:

if(doorState==1)//当前为开仓状态,并且没有弹出对话框
					{
						if(isTouchMoved)//如果当前滑动过
						{
							isTouchMoved=false;//false
							hasInertia=true;//具有惯性true
							  //若当前角速度大于零则加速度置为负
							curr_acceleratedSpeed=ori_acceleratedSpeed;
				            if(curr_angle_speed>0)
				            {
				            	curr_acceleratedSpeed=-ori_acceleratedSpeed;
				            }
						}
						else//这里启动角度智能调整
						{
							auto_adjust=true;
						}


转载于:https://www.cnblogs.com/Anzhongliu/p/6092077.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值