//主角向任意方向使其同速移动函数 player为主角 targetPosition为要移动到的点
void HelloWorld::playerMove()
{
//获取在x轴方向上两点之间距离
float x_juli = fabs(targetPosition.x - player->getPositionX());
//获取在y轴方向上两点之间距离
float y_juli = fabs(targetPosition.y - player->getPositionY());
//获取两点之间的距离
float distance = sqrt(pow(x_juli, 2) + pow(y_juli, 2));
//设置任意方向上移动速度为1
float speed = 1;
//根据比例获取在x轴y轴上不同的速度
float speedX = x_juli/distance * speed;
float speedY = y_juli/distance * speed;
if (player->getPositionX() < targetPosition.x) {
player->setPosition(ccpAdd(player->getPosition(), ccp(speedX, 0)));
}
if (player->getPositionX() > targetPosition.x) {
player->setPosition(ccpAdd(player->getPosition(), ccp(-speedX, 0)));
}
if (player->getPositionY() < targetPosition.y) {
player->setPosition(ccpAdd(player->getPosition(), ccp(0, speedY)));
}
if (player->getPositionY() > targetPosition.y){
player->setPosition(ccpAdd(player->getPosition(), ccp(0, -speedY)));
}
}
cocos2d-x 主角向任意方向使其同速移动的实现方法
最新推荐文章于 2023-11-03 15:08:23 发布