Home Game Development How to alter the processing order Node Event System? – Cocos Creator

How to alter the processing order Node Event System? – Cocos Creator

0
How to alter the processing order Node Event System? – Cocos Creator

[ad_1]

I’ve 3 sprites, with the assistance of a script I alter 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. But whenever you click on on this stack once more, it isn’t attainable to take the highest sprite.
Please inform me how can I remedy this downside. I didn’t discover a resolution on the discussion board.

import { _decorator, Component, Node, enter, Input, Event, Vec2, Label, KeyCode, EventMouse, EventGoal} from ‘cc’;
import{GameManager} from “./GameManager”;
const { ccclass, property } = _decorator;

@ccclass(‘TouchDragger’)
export class TouchDragger extends Component {

onLoad() {
  
    this.node.on(Node.EventSort.TOUCH_START, (occasion) => { 
    console.log('Touch begin');
    
    occasion.propagationStopped = true;
    
    this.node.setSiblingIndex(2);

    }, this);

    this.node.on(Node.EventSort.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.EventSort.TOUCH_END, (occasion) => { 
    console.log('Touch finish');

    occasion.propagationStopped = false;
    }, this);

}

It ought to be like a card sport the place the deck is shuffled and the topmost card might be dragged.

Which model is used? Can you present a easy demo? Every node is registered for occasions?

Version 3.6. I connect the introduced script to every of the three nodes. So far that is an experiment with three sprites. I created nodes each within the editor and denamically within the script,
however the consequence is identical – this.node.setSiblingIndex(2) modifications the rendering order, however doesn’t keep in mind the occasion processing order, and whenever you click on on the visually high sprite once more, the previous node processing order is preserved.

Nodes/sprites are brothers. Tried making them youngsters of the Canvas or youngsters of the kid node of the Canvas, the consequence is identical. In earlier variations of the engine – goal.setLocalZOrder(1) – solved the issue.

I’ll be glad about any assist!

occasion.propagationStopped = true;occasion.preventSwallow = true;
Maybe you want this

I exploit this in a script, doesn’t remedy the issue!

This is a bug, has created a difficulty.

in the event you want,you may delete this code, and recompile engine.
Sorting might be time consuming and will have an effect on efficiency.
File path:3.6.0resourcesresources3denginecocos2deventpointer-event-dispatcher.ts

Koei, thanks on your assist! I hope the builders repair the bug. I feel sorting is without doubt one of the most important features.

[ad_2]

LEAVE A REPLY

Please enter your comment!
Please enter your name here