zoukankan      html  css  js  c++  java
  • 物体跟随鼠标移动并旋转角度

    /*
    库中有元件Ball标识为Ball
    假如想让物体以每帧3像素的速度向45度的位置移动,

    这里要用到三角学。 已知角度为45度,斜边长为3像素,

    就可以应用 Math.cos 和 Math.sin 求出 vx 和 vy 的长度。

     角的邻边长度为 vx,因为角的余弦值等于邻边/斜边。也可以说,

    邻边等于角的余弦值乘以斜边。同样,对边长为 vy 的边,

    因为角的正弦值等于对边/斜边,或是对边等于正弦乘以斜边。

    实际应用的代码:

    vx = Math.cos(angle) * speed;

    vy = Math.sin(angle) * speed;
    */

    package 
    {
    	import flash.display.Sprite;
    	import flash.events.Event;
    	public class VelocityAngle extends Sprite
    	{
    		private var ball:Ball;
    		private var speed:Number;
    
    		public function VelocityAngle()
    		{
    			init();
    		}
    		private function init():void
    		{
    			speed = 3;
    			ball = new Ball  ;
    			addChild(ball);
    			ball.x = 50;
    			ball.y = 50;
    			addEventListener(Event.ENTER_FRAME,onEnter);
    		}
    		private function onEnter(e:Event):void
    		{
    			var dx:Number = mouseX - ball.x;
    			var dy:Number = mouseY - ball.y;
    			var radians:Number = Math.atan2(dy,dx);
    			ball.rotation = radians * 180 / Math.PI;
    			var vx:Number = Math.cos(radians) * speed;
    			var vy:Number = Math.sin(radians) * speed;
    			trace(ball.rotation);
    			ball.x +=  vx;
    			ball.y +=  vy;
    		}
    	}
    }
    
  • 相关阅读:
    锁优化
    无同步方案
    线程安全
    vue 监听路由变化
    ES6-解构赋值
    微信小程序中遮罩层的滚动穿透问题
    JavaScirpt对象原生方法
    JavaScript-window
    JavaScript字符串API
    JavaScript常用数组操作方法,包含ES6方法
  • 原文地址:https://www.cnblogs.com/602147629/p/1927141.html
Copyright © 2011-2022 走看看