Jump to content

Best way to handle event


KungFuFlames
 Share

Recommended Posts

Hey there guys! 

I working on chess game with Phaser 3. And so far everything is amazing. Right now I'm working on event handlers for the pieces(figures). Take a look:

 

 for(let i = 0; i < this.pieces.length; i++) {
    this.pieces[i].setInteractive();
    this.pieces[i].on('clicked', ()=>{ 
                     console.log('Piece clicked'));
                     }, this);
 }

This is taken from the example HERE

So my problem is this fragrament of the code:

  this.input.on('gameobjectup', function (pointer, gameObject)
            {
              gameObject.emit('clicked', gameObject);
            }, this);

Can someone explain the whole structure? Or maybe suggest cleaner way to do it?

Link to comment
Share on other sites

The structure looks fine.  It is a listener you are assigning for when the input event handler gets and event of "gameobjectup" to execute a callback anonymous function you have set up.

You could destructure your callback into a named function instead if you'd like to destructure the event itself from the callback.  Here is an example of working code for your specific example that makes a named function that can be referenced later, see destroyBox function below:

 

const destroyBox = gameObject => gameObject.emit('clicked', gameObject);
this.input.on('gameobjectdown', (pointer, gameObject)=> destroyBox(gameObject));

 

I understand javascript (especially ES6 stuff) quite extensively.  Where I have difficulties is interacting with the new phaser 3 api as the documentation is pretty sparse (the examples are great dont get me wrong, but there is no real handy API reference I've found yet).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...