02. 拖拽激发的动作

概要

运行样例时,触碰、拖拽,会引起模型向相应方向的移动。
这里对此功能进行说明。

L2DTargetPoint 类管理拖拽坐标。
关于触碰的获取、设备坐标的变换方法,在这里对各平台分别进行说明。

动画示例

在样例中获取拖拽坐标方式如下,得到的值传给参数。
添加参数,表示脸、眼球、身体(仅横向)的方向。


//L2DTargetPoint drag;

float dragX=drag->getX();//范围为-1到1
float dragY=drag->getY();//范围为-1到1

//调整脸的方向
live2DModel->addToParamFloat( "PARAM_ANGLE_X", dragX * 30 , 1 );//-30到30
live2DModel->addToParamFloat( "PARAM_ANGLE_Y", dragY * 30 , 1 );

//调整身体方向
live2DModel->addToParamFloat( "PARAM_BODY_X"    , dragX * 10 , 1 );//-10到10

//调整眼球方向
live2DModel->addToParamFloat( "PARAM_EYE_BALL_X", dragX  , 1 );//-1到1
live2DModel->addToParamFloat( "PARAM_EYE_BALL_Y", dragY  , 1 );



设置时所需代码

需要设定触碰开始、移动、结束时的坐标值。根据框架不同,也可能需要更新。
void set( float x , float y )
向设定的坐标移动。
此处值设在可移动范围内。

void update()
考虑加速度等自然因素,计算坐标。
需要进行逐帧更新。

坐标值的获得方法

float getX()
得到横坐标。
不调用update()则不会更新。

float getY()
得到纵坐标。
不调用update()则不会更新。


コメント