• Cocos Creator绕远做圆周运动,且变换运动物体的角度


    需求:绕远做圆周运动 并且精灵的角度要随着位置的改变而改变

    网上有很多做圆周运动的代码,但是要不然就是角度不变 要不然就是cocos版本老旧

    摘了一段3.x的圆周运动,自己加了角度变换

    圆周运动,已知,圆点坐标为(0,0)固定不变和圆周上任意一点的坐标。只需要求 圆周上这个点 所在的切线 与x周的角度就行。

    Math.atan2(y:number,x:number) 这个函数刚好符合需求

    export class xxController extends Component {
    
    
    
      // 汽车
      @property(Sprite)
      sprCar: Sprite = null;
    
      // 圆心
      @property
      circleCenter: Vec2 = v2(0, 0);
    
      // 半径
      @property
      circleRadius: number = 250;
    
      // 车速
      @property
      carSpeed: number = 200;
    
      // 弧度
      radian: number = 0;
    
      onLoad() {
        this.schedule(this.circleMove, 0.01);
      }
    
      circleMove(dt) {
        // 先计算弧度
        this.radian += dt * (this.carSpeed / 100);
        let x = this.circleRadius * Math.cos(this.radian) + this.circleCenter.x;
        let y = this.circleRadius * Math.sin(this.radian) + this.circleCenter.y;
        this.sprCar.node.position = v3(x, y, 0);
        // Math.atan2 反正切函数 返回从X轴到某个点的角度(以弧度为单位)。
        let angle = Math.atan2(y, x) / (Math.PI / 180);
        this.sprCar.node.angle = angle;
    
        console.log('x = ' + x + '  y = ' + y + '  angle = ' + angle);
    
      }
    
    
    }
  • 相关阅读:
    angular resolve路由
    SignalR 2.x入门(二):SignalR在MVC5中的使用
    SignalR 2.x入门(一):SignalR简单例子
    【安卓】手把手教你安卓入门(一)
    【UWP】 win10 uwp 入门
    【资讯】苹果AirPods无线耳机国行版开箱初体验
    【IOS】Swift语言
    用命令行创建.NET Core
    IT笑话一则
    5.Arduino的第一个程序
  • 原文地址:https://www.cnblogs.com/JamesHao/p/16119579.html
Copyright © 2020-2023  润新知