Итак, у меня есть эти спрайты, которые движутся слева направо по диагонали вверх. Проблема в том, что они будут бесконечно подниматься вверх и двигаться за пределы экрана. Я хочу, чтобы они двигались внутри определенной границы.
Я пробовал использовать зажим, но это не сработает. Я новичок в cocos2d-js, поэтому у меня мало идей. если кто-нибудь может помочь, я буду признателен.
for(var i=0;i<minions.length;i++){
var x = Math.floor((Math.random() * size.width));
var y = Math.floor((Math.random() * size.height / 10) + size.height / 50);
var ms = Math.floor((Math.random() + 1));
var mas = (size.width - x) / size.width * ms
var m2s = x / size.width * ms;
var move = cc.MoveBy.create(mas, cc.p(size.width - x, y));
var moveaway = cc.MoveBy.create(ms, cc.p(-size.width, -y));
var move2 = cc.MoveBy.create(m2s, cc.p(x, y));
var minSeq = cc.Sequence.create(move, moveaway, move2);
minions[i].runAction(minSeq).repeatForever();
minions[i].setPosition(cc.p(cc.clampf(minions[i].x,0,size.width),cc.clampf(minions[i].y,0,400)));
this.addChild(minions[i]);
}
до этого я устал от цикла if
if(minions[i].position == 0){//переместиться вверх}
когда у меня были проблемы со спрайтами, которые постоянно двигались вниз. это будет работать только в самый первый раз, когда спрайты появятся под экраном, но после этого это не окажет никакого влияния на спрайты.