I’ve 3 sprites, with the assistance of a script I modify the rendering order and drag the sprites one on high of the opposite in reverse order.
The sprite that was on the backside is obtained from above. However once you click on on this stack once more, it’s not doable to take the highest sprite.
Please inform me how can I resolve this drawback. I didn’t discover a answer on the discussion board.
import { _decorator, Part, Node, enter, Enter, Occasion, Vec2, Label, KeyCode, EventMouse, EventTarget} from ‘cc’;
import{GameManager} from “./GameManager”;
const { ccclass, property } = _decorator;
@ccclass(‘TouchDragger’)
export class TouchDragger extends Part {
onLoad() {
this.node.on(Node.EventType.TOUCH_START, (occasion) => {
console.log('Contact begin');
occasion.propagationStopped = true;
this.node.setSiblingIndex(2);
}, this);
this.node.on(Node.EventType.TOUCH_MOVE, (occasion) => {
this.node.setPosition(this.node.getPosition().x + occasion.contact.getDelta().x , this.node.getPosition().y + occasion.contact.getDelta().y, 0);
}, this);
this.node.on(Node.EventType.TOUCH_END, (occasion) => {
console.log('Contact finish');
occasion.propagationStopped = false;
}, this);
}
It ought to be like a card sport the place the deck is shuffled and the topmost card will be dragged.
Which model is used? Are you able to present a easy demo? Each node is registered for occasions?
Model 3.6. I connect the introduced script to every of the three nodes. Thus far that is an experiment with three sprites. I created nodes each within the editor and denamically within the script,
however the outcome is identical – this.node.setSiblingIndex(2) modifications the rendering order, however doesn’t keep in mind the occasion processing order, and once you click on on the visually high sprite once more, the previous node processing order is preserved.
Nodes/sprites are brothers. Tried making them kids of the Canvas or kids of the kid node of the Canvas, the outcome is identical. In earlier variations of the engine – goal.setLocalZOrder(1) – solved the issue.
I’ll be pleased about any assist!
occasion.propagationStopped = true;
→ occasion.preventSwallow = true;
Possibly you want this
I take advantage of this in a script, doesn’t resolve the issue!
It is a bug, has created a problem.
for those who want,you may delete this code, and recompile engine.
Sorting will be time consuming and will have an effect on efficiency.
File path:3.6.0resourcesresources3denginecocos2deventpointer-event-dispatcher.ts
Koei, thanks to your assist! I hope the builders repair the bug. I believe sorting is likely one of the major features.