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;
    		}
    	}
    }
    
  • 相关阅读:
    kettle 3:java调用transformation
    SEO网站优化笔记
    图案设计的素材
    TweenLite 使用详解(译文)
    flv文件修复文件头
    一个拼图素材
    外螺旋矩阵排列
    20160226.CCPP体系详解(0036天)
    tcp三次握手与四次分手
    docker 应用数据的管理之bind mounts
  • 原文地址:https://www.cnblogs.com/602147629/p/1927141.html
Copyright © 2011-2022 走看看