cocos2d js - 触摸一起向上移动的叠加精灵
cocos2d js - Touch on overlay sprites that move up together
我使用最新版本 cocos2d-js 来创建我的游戏。在游戏画面上,我连续添加了多个精灵叠加,像这样
Overlay sprites
我添加了一个事件侦听器,当精灵被点击时它会在 y 轴上向上移动。但是,当我点击任意两个精灵包含的点时,两个精灵一起向上移动。
这是我的事件监听器代码
var listener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
var target = event.getCurrentTarget();
var location = target.convertToNodeSpace(touch.getLocation());
var targetSize = target.getContentSize();
var targetRectangle = cc.rect(0, 0, targetSize.width, targetSize.height);
if (cc.rectContainsPoint(targetRectangle, location)){
target.setPositionY(50);
}
}
});
如何防止将它们一起移动并且只移动一个精灵?
谢谢。
onTouchBegan
必须是 returns 布尔值作为结果,如果 returns true
则意味着触摸被处理并且事件循环将被停止。如果 rect 包含点,请尝试 return true
。
希望这可以帮助。对不起我的英语。
我使用最新版本 cocos2d-js 来创建我的游戏。在游戏画面上,我连续添加了多个精灵叠加,像这样 Overlay sprites
我添加了一个事件侦听器,当精灵被点击时它会在 y 轴上向上移动。但是,当我点击任意两个精灵包含的点时,两个精灵一起向上移动。
这是我的事件监听器代码
var listener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: true,
onTouchBegan: function (touch, event) {
var target = event.getCurrentTarget();
var location = target.convertToNodeSpace(touch.getLocation());
var targetSize = target.getContentSize();
var targetRectangle = cc.rect(0, 0, targetSize.width, targetSize.height);
if (cc.rectContainsPoint(targetRectangle, location)){
target.setPositionY(50);
}
}
});
如何防止将它们一起移动并且只移动一个精灵?
谢谢。
onTouchBegan
必须是 returns 布尔值作为结果,如果 returns true
则意味着触摸被处理并且事件循环将被停止。如果 rect 包含点,请尝试 return true
。
希望这可以帮助。对不起我的英语。