Jump to content

on animationcomplete multiple callbacks per sprite ?


rudyardcatling
 Share

Recommended Posts

[edit at bottom but not completely solved to my liking]

I'm probably missing something silly but i'm pretty fresh to this, 

 

i did a search for "callback on specific animationcomplete phaser" but it gets me 1346 pages, apologies but i'm just gonna ask hoping someone picks up the phone :

i have one sprite named "chest" and one named "grabhand" 

 

i have a function called deathtrapcomplete() which does some camera stuff and restarts / resets the scene on gameover

now i have for grabhand :

this.anims.create({ key: 'traphand', frames : this.anims.generateFrameNumbers('grabhand', {start : 0, end: 29})

 

but for chest i have two :

this.anims.create({key: 'openchest' ....etc

and

this.anims.create({key 'chestsaysno' ... etc

i have an event for grabhand :

 

this.grabhand.on('animationcomplete', this.deathtrapcomplete, this); which does exactly what it should, it plays the anim completely and then starts the gameover sequence, ... very tidy, lol

but

when i use it for chest

this.chest.on('animationcomplete', this.deathtrapcomplete,this);

it triggers for both "openchest" and "chestsaysno" ... which is not so good as the former is simply an empty chest with a puff of dust coming out while the latter is a chest with a deadly trap (both from the same spritesheet)

So the question, how do i trigger it only for "chestsaysno" , defining two different sprites seems overkill and working around it in the call itself seems very in-elegant as the deathtrapcomplete() function is already there

It's hard to imagine i cant insert the specific animationkey in the on(...) handler somewhere so my guess is i simply can't find it as im pretty much a noob, on the docs it says "

event

string | symbol

but when i try this.chest.on('animationcomplete|chestsaysno' ... etc) it doesnt trigger anything at all (which is probably me not understanding what the pipe symbol means

 

thats why im asking , thanks a lot if anyone has time and patience to help me out here

 

about a minute after i find something on https://labs.phaser.io/edit.html?src=src/game objects\graphics\health bars demo.js where animation.key is used in the callback function so if i add

deathtrapcomplete(animation){

if(animation.key != 'openchest'){

...do gameover stuff..

}

}

 

it works but i still feel it would be better if i can simply define the handler to only react to the specific animation in the first place ... if anyone has any advice on the matter i would be much obliged, thanks

Edited by rudyardcatling
found "some kind of" solution
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

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