// 假设x_player,y_player是玩家位置分量 // x_missile,y_missile是导弹位置分量 // xv_missile,yv_missile是导弹的速度分量 // 让我们开始吧! float n_missile ; // 这是玩家位置与导弹位置之间向量的长度 float v_rate ; // 这是导弹的速率缩放比率 // 计算一下玩家与导弹之间的位置向量 xv_missile = x_player-x_missile ; // 向量减法,方向由导弹指向玩家,x分量 yv_missile = y_player-y_missile ; // y分量 // 计算一下它的长度 n_missile = sqrt( xv_missile*xv_missile + yv_missile*yv_missile ) ; // 归一化导弹的速度向量: xv_missile /= n_missile ; yv_missile /= n_missile ; // 此时导弹的速率为1,注意这里用速率。 // 导弹的速度分量满足xv_missile^2+yv_missile^2=1 // 好!现在导弹的速度方向已经被修正,它指向玩家。 // 由于现在的导弹速度太快,为了缓解一下紧张的气氛,我要给导弹减速 v_rate = 0.2f ; // 减速比率 xv_missile *= v_rate ; // 这里的速率缩放比率,你可以任意调整大小 yv_missile *= v_rate ; // 可以加速:v_rate大于1;减速v_rate大于0小于1,这里就这么做! // 导弹行进!导弹勇敢的冲向玩家! x_missile += xv_missile ; y_missile += yv_missile ; // 然后判断是否攻击成功 |
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |