image.png
核心代码:
p1:起点
p2:圆形上的点,通过计算获得
var _angle = 360 / 10
for (var i = 0; i < 20; i++) {
var angle = Math.PI / 20 * (_angle * i)
var p2 = cc.v2(Math.cos(angle), Math.sin(angle)).mulSelf(this.radius).addSelf(p1);
}
/*============================================================================
file : PlayHp.js
author: lyn
date : 2019-02-12
desc :
=============================================================================*/
cc.Class({
extends: cc.Component,
properties: {
txtPopPrefab: cc.Node,
radius: 100
},
start: function() {
this.m_coinPool = new cc.NodePool()
for (var i = 0; i < 10; i++) {
var node = cc.instantiate(this.txtPopPrefab)
this.m_coinPool.put(node)
}
var self = this
},
getCoinNode: function() {
if (this.m_coinPool.size() > 0) {
return this.m_coinPool.get()
} else {
return cc.instantiate(this.txtPopPrefab)
}
},
play: function(point, targetPoint) {
var p1 = this.node.convertToNodeSpaceAR(point);
targetPoint = this.node.convertToNodeSpaceAR(targetPoint);
var playCallback = function(_coin) {
var actions2 = []
_coin.scale = 0
var spawn1 = cc.spawn(cc.scaleTo(0.3, 1), cc.moveTo(0.3, p2))
var time = cc.single.Utils.random(3, 6)
actions2.push(spawn1)
actions2.push(cc.delayTime(0.3))
actions2.push(cc.moveTo(time * 0.1, targetPoint))
actions2.push(cc.callFunc(function() {
this.m_coinPool.put(_coin)
}, this))
var sq1 = cc.sequence(actions2)
_coin.stopAllActions()
_coin.runAction(sq1)
}.bind(this)
var _angle = 360 / 10
for (var i = 0; i < 20; i++) {
var angle = Math.PI / 20 * (_angle * i)
var p2 = cc.v2(Math.cos(angle), Math.sin(angle)).mulSelf(this.radius).addSelf(p1);
var coin = this.getCoinNode()
coin.parent = this.node
coin.position = p1
coin.active = true
playCallback(coin)
}
},
});
网友评论