首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AS3 斜坡角度反弹【算法】

AS3 斜坡角度反弹【算法】

作者头像
py3study
发布2020-01-07 17:11:56
4650
发布2020-01-07 17:11:56
举报
文章被收录于专栏:python3python3

1.公式

坐标旋转:

x1 = Math.cos(angle) * x - Math.sin(angle) * y;

y1 = Math.cos(angle) * y + Math.sin(angle) * x;

反坐标旋转:

x1 = Math.cos(angle) * x + Math.sin(angle) * y;

y1 = Math.cos(angle) * y - Math.sin(angle) * x;

2.原理

先把斜面旋转成平面,然后执行反弹,最后再把它旋转回去。

3.实例

var ball:MovieClip; var line:MovieClip; var gravity:Number=0.3; var bounce:Number=-0.6; init(); function init():void {   ball = new Ball();   addChild(ball);   ball.x=100;   ball.y=100;   ball.vy=1;   ball.vx=0;   line = new MovieClip();   line.graphics.lineStyle(1);   line.graphics.lineTo(300, 0);   addChild(line);   line.x=50;   line.y=200;   line.vy=0;   line.vx=0;//   line.rotation=30;   addEventListener(Event.ENTER_FRAME, onEnterFrameHd); } function onEnterFrameHd(event:Event):void {// 普通的运动代码       ball.vy+=gravity;   ball.x+=ball.vx;   ball.y+=ball.vy; // 获得角度及正余弦值       var angle:Number=line.rotation*Math.PI/180;   var cos:Number=Math.cos(angle);   var sin:Number=Math.sin(angle); // 获得 ball 与 line 的相对位置       var x1:Number=ball.x-line.x;   var y1:Number=ball.y-line.y; // 旋转坐标       var y2:Number=cos*y1-sin*x1; // 实现反弹 if (y2>- ball.height/2) { // 旋转坐标         var x2:Number=cos*x1+sin*y1; // 旋转速度向量         var vx1:Number=cos*ball.vx+sin*ball.vy;     var vy1:Number=cos*ball.vy-sin*ball.vx;     y2=- ball.height/2;     vy1*=bounce; // 将一切旋转回去         x1=cos*x2-sin*y2;     y1=cos*y2+sin*x2;     ball.vx=cos*vx1-sin*vy1;     ball.vy=cos*vy1+sin*vx1;     ball.x=line.x+x1;     ball.y=line.y+y1;   } }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档