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

时间: 2024-10-09 16:00:32

cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)的相关文章

导弹跟踪算法

(转)导弹跟踪算法 很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦.其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到.算法分析 假设导弹旋转角速度为omega,运动速度为v.下图显示了导弹和目标在坐标轴中的初始状态. 初始时刻,目标与导弹的运动方向都是-Y,位置分别为(x1,y1),(x2,y2),连接导弹与目标的坐标,得到一条线段,该线段与-Y轴夹角为c:导弹与-Y方向的夹角为b,b是导弹已

cocos2d js ClippingNode 制作标题闪亮特效

1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似的效果. 顺便给我公司的游戏打下广告.https://itunes.apple.com/cn/app/kuang-zhan-san-guo/id691116157? mt=8 2.效果原理 很easy.就是一张白色两边羽化的图片在标题上从左往右移动.可是普通的移动会穿帮.我们须要以标题作为模板来截取白色的图片

js排序算法

利用js来实现一些常见的排序算法,在面试中问得还是挺多的,下面我就其进行了简单的总结. sort()方法 首先要讲讲JS数组排序的sort方法,它实现的原理是通过两两比较的方法,sort()方法按升序排列数组项,即最小的值位于最前面,最大的值位于最后面,为了实现排序,sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串,即使数组中的每一项都是数值,sort方法比较的也是字符串.因此有必要定义一个比较函数: function compare(value1,value2)

JS经典算法

JS经典算法: // 1.字符串颠倒 str.split('').reverse().join('') // 2.不借助中间量,颠倒a.b a=[b,b=a][0] // 3.快速获取数组的最大值.最小值 Array.prototype.max = function () { return Math.max.apply(null, this) } Array.prototype.min = function () { return Math.min.apply(null, this) } //

JS 排序算法整理

关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { for (var i = 0, len = arr.length; i < len - 1; i++) { for (var j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { var temp = arr[i]; arr[i] = arr[j

深析filemap.js——关于JS的算法及优化的实践

关于项目的用法和介绍可以查看上面的两个链接,这篇文章主要内容是对 filemap.js 的代码进行一步一步的分析,详细介绍其运行原理和优化策略. 知识点准备: NodeJS 的基本使用方法(主要是 fs 文件系统): ES6 特性及语法( let , const , for...of , arrow function ...) n叉树先序遍历算法 . 知识点1和2请自行查阅资料,现在对知识点3进行分析. N叉树先序遍历算法 首先明白什么是树.引用 数据结构与算法JavaScript描述 : 一个

(转)导弹跟踪算法

来自:http://www.cnblogs.com/wonderKK/archive/2012/03/08/2385935.html 很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦.其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到. 算法分析假设导弹旋转角速度为omega,运动速度为v.下图显示了导弹和目标在坐标轴中的初始状态. 初始时刻,目标与导弹的运动方向都是-Y,位置分别为(x1,y1)

结构-行为-样式-Js排序算法之 快速排序

快速排序算法,是我的算法系列博客中的第二个Js实现的算法,主要思路:    在一个数组中随机取一个数(一般都取第一个或者最后一个),使这个数与数组中其他数进行比较,如果比它大就放到它的右边,比它小就放到这个数的左边,依次递归调用直到比较队列中只有两个数. 代码实现: var arrs = [23,85,61,37,55,12,63,11,99,39,70,21,23]; function QuickSort(arr , s,e){ var len = e; var token = arr[s];

html5 cocos2d js Access-Control-Allow-Origin

1.No 'Access-Control-Allow-Origin' header is present on the requested 近期在接html5的渠道,遇到了跨域的问题,使用 js 的 ajax post 或者get 方法,仅仅要目标URL略微有点不同,就会有跨域问题,浏览器会由于安全问题自己主动拦截. 这个问题事实上不是client能解决的,最好是目标URL的server代码是你能够控制的.最方便的解决方式是在你訪问的server端页面加代码.比方你如今的地址是 http://a