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实现的算法,主要思路: 在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放 ...
随机推荐
- EFcore笔记之创建模型
排除属性:NotMapped NotMapped:排除属性在CodeFirst的时候在数据库里不创建该属性 public class Blog { public int BlogId { get; ...
- WordPress 自动草稿和文章修定版本
写文章的时候发现 WordPress 有两个有意思的地方, WordPress 自动草稿和文章修定版本: 1.点击创建新文章的时候,会在数据库自动生成一条草稿数据: 2.修改数据的时候会将历史文章当做 ...
- json对象与其字符串之间的转换
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如: JSON字符串:var str1 = '{ &qu ...
- 在vue中使用的Echarts的步骤
1.首先在项目中安装Echarts npm install echarts -g --save //安装 2.在项目中引入Echarts(在main.js中引入) import echarts fro ...
- js验证输入框
项目开发中,都会有对表单form中的input输入框进行一些限制验证 如: <!DOCTYPE html><html lang="en"> <head ...
- OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)
摘要 本文先给出一个看似很简单实则有深意的Java笔试面试题,引出JDK内部的缓存. JDK内部的缓存,主要是为了提高Java程序的性能. 你能答对这道"看似简单,实则有深意"的J ...
- phpstorm 激活方法
1.本地破解激活(推荐) 下载JetbrainsCrack-2.5.6.jar 链接: http://pan.baidu.com/s/1miPpE2k 密码: w3yc 放到phpstorm安装目录下 ...
- IPA打包图片错误问题
CopyPNGFile /Users/gongihou/Library/Developer/Xcode/DerivedData/KTVgo-frborfduejxrajgpkfdaipygijow/B ...
- array_unique和array_flip 这两个函数的区别
array_unique和array_flip 这两个函数的区别 标签(空格分隔): php array_unique 和 array_flip 验证 1 没有排序的数组 2 array_unique ...
- channels2.X 学习笔记
- No module named 'asgiref.sync' 报错解决: # 报错原因: """ django版本过低, 卸载最新版本的 channels 使用2.x ...