cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)
跟踪导弹
function(targetPosition){
// 让物体朝目标移动的方法
var speed = 5;
var targetPoint = targetPosition;
var thisPoint = cc.p(this.x, this.y);
//求两点的差值,事实上就是两点的坐标相减
var delta = cc.pSub(targetPoint, thisPoint);
// 求当前对象和目标两点间的距离
var distance = cc.pDistance(thisPoint, targetPoint);
// 计算行走后的点xy坐标
var x2 = thisPoint.x +speed *delta.x /distance;
var y2 = thisPoint.y + speed *delta.y/distance;
if(100>=distance){
return true;
}
// 改动当前对象的位置
var newPosition = cc.p(x2, y2);
this.setPosition(newPosition);
// 旋转对应的角度
var x1 = thisPoint.x;
var y1 = thisPoint.y;
var deltaRotation = 90-Math.atan2(y2-y1,x2-x1)*180/Math.PI;
this.setRotation(deltaRotation);
return false;
}效果请看游戏地址 http://www.seraph-fd.cn/games/1/index.html
// 让物体朝目标移动的方法
var speed = 5;
var targetPoint = targetPosition;
var thisPoint = cc.p(this.x, this.y);
//求两点的差值,事实上就是两点的坐标相减
var delta = cc.pSub(targetPoint, thisPoint);
// 求当前对象和目标两点间的距离
var distance = cc.pDistance(thisPoint, targetPoint);
// 计算行走后的点xy坐标
var x2 = thisPoint.x +speed *delta.x /distance;
var y2 = thisPoint.y + speed *delta.y/distance;
if(100>=distance){
return true;
}
// 改动当前对象的位置
var newPosition = cc.p(x2, y2);
this.setPosition(newPosition);
// 旋转对应的角度
var x1 = thisPoint.x;
var y1 = thisPoint.y;
var deltaRotation = 90-Math.atan2(y2-y1,x2-x1)*180/Math.PI;
this.setRotation(deltaRotation);
return false;
}效果请看游戏地址 http://www.seraph-fd.cn/games/1/index.html
cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)的更多相关文章
- cocos2d js jsb XMLHttpRequest 中文乱码
1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...
- cocos2d js的一些tip
cocos2d-js-v3.2-rc0 cc.director.end();//退出app cc.Application.getInstance().openURL("http://www. ...
- cocos2d js ClippingNode 制作标题闪亮特效
1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...
- js的 算法 和 数据结构
js的 算法 1.对一个对象数组按照对象某个属性进行排序 : https://www.cnblogs.com/webcabana/p/7460038.html 在做公交的项目中就碰到过这种算法问题, ...
- 总结下js排序算法和乱序算法
其实本人最怕的就是算法,大学算法课就感觉老师在讲天书,而且对于前端来说,算法在实际的应用中实在是很有限.毕竟算法要依靠大量的数据为基础才能发挥出算法的效率,就浏览器那性能,......是吧,退一万步说 ...
- JS基础算法题(二)
1.1 数组去重的五种方法 数组去重:将数组中重复的元素去掉 JS数组没有删除具体元素的删除(只能删掉值,删不掉元素的索引),可以使用另外一个结构来进行存储 新数组 新对象 JS数组虽然本质可以删除第 ...
- Round() 四舍五入 js银行家算法(转)
首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825; ...
- 排序图解:js排序算法实现
之前写过js实现数组去重, 今天继续研究数组: 排序算法实现. 排序是数据结构主要内容,并不限于语言主要在于思想:大学曾经用C语言研究过一段时间的排序实现, 这段时间有空用JS再将排序知识点熟悉一遍. ...
- 结构-行为-样式-Js排序算法之 快速排序
快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路: 在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...
随机推荐
- 安卓、safari和微信各个浏览器的设计标准
- Zookeeper入门-Linux环境下异常ConnectionLossException解决
实际项目开发中,用的是Linux环境. 中午突然断电,死活连不上Zookeeper,最终发现是需要关闭防火墙. 看日志,报错如下: Exception in thread "mai ...
- linux搜索文件过程
1.文件里的数据是放在磁盘的数据区中的,而一个文件名称则是通过相应的i节点与这些磁盘块联系起来.这些盘块的号码就存放在i节点的逻辑块数组i_zone[]中.在文件系统的一个文件夹中,当中全部文件名称信 ...
- 响应http报文中的Date属性与cookie过期时间的关系
今天在測试.net时,发现一个莫名其妙的问题:cookie老是保存不到浏览器端; 经过细致的比对成功与不成功的报文,居然无意中发现好像Date与它有关系,这太让我意想不到了,从来不知道cookie保存 ...
- POJ 1741 Tree 树的分治(点分治)
题目大意:给出一颗无根树和每条边的权值,求出树上两个点之间距离<=k的点的对数. 思路:树的点分治.利用递归和求树的重心来解决这类问题.由于满足题意的点对一共仅仅有两种: 1.在以该节点的子树中 ...
- Pocket英语语法---二、指示代词和不定代词是什么
Pocket英语语法---二.指示代词和不定代词是什么 一.总结 一句话总结: 指示代词:标识人或事物的代词,用来代替前面已提到过的名词 this.these.that.those不定代词:指代不确定 ...
- thinkphp5项目--个人博客(七)
thinkphp5项目--个人博客(七) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- 4.C语言文件操作
总论 1.fopen r以只读方式打开文件,该文件必须存在 r+以可读写方式打开文件,文件必须存在 rb+读写打开一个二进制文件,允许读写数据,文件必须存在 rw+读写打开一个文本文件,允许读和写 w ...
- jsp输出当前时间
在jsp页面中输出完整的时间,格式为"年 月 日 时:分:秒" <% Date date = new Date(); SimpleDateFormat t = new Si ...
- Android PullToRefreshListView和ViewPager的结合使用
其实这个不是什么新东西了,在介绍(一)中我们就知道了PullToRefreshListView的用法,这里只要将其放入到ViewPager中就行啦.ViewPager还是和以往一样的定义和使用,在适配 ...