Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

En fait le Actor est dans une Scene, il n'est jamais déclaré autrement que dans cette scene. Hors la scène, je dois la load uniquement à la fin. Je dois déclarer mon actor ailleurs ?


Un bout de code :

//en haut de mon code, déclaration des variables :
let Score = Sup.getActor("Score");

//Behavior de l'élément qui déclenche le changement :
class BalleBehavior extends Sup.Behavior {
update(){
if (this.actor.getX() > 3.5){
//...
Player2Score ++;

TexteScore = Player1Score.toString + " : " + Player2Score.toString;

Sup.getActor("ScenePong/Score").getBehavior(ScoreBehavior).modifierScore(TexteScore); //testé aussi: //Score.textRenderer.setText(Player1Score.toString + " : " + Player2Score.toString);

} }

(+1)

Donc plusieurs choses.

Déjà comme j'ai essayé d'expliquer de facon sans doute peu claire, tu ne peux pas faire Sup.getActor("ScenePong/Score"). Tu dois sois faire Sup.getActor("Score") avec le risque d'avoir un conflit si il y a plusieurs acteurs avec ce nom. Soi tu peux faire Sup.getActor("ScenePong").getChild("Score")

Ensuite, ta première ligne let Score = Sup.getActor("Score") ne peut pas fonctionner si ce code est appelé avant le chargement de la scène. Tu pourrais faire let Score: Sup.Actor; juste pour déclarer la variable. Et après le chargement de la scène, via un awake d'un behavior par exemple, tu pourrais faire Score = Sup.getActor("Score");

J'ai mal recopié mon texte, le "scenepong" était en trop par rapport à un test désespéré de ma part. :)

Je ne comprends pas trop, j'ai tenté le

Sup.getActor("ScenePong").getChild("Score")

Sans succès (au passage je ne savais pas que les scenes étaient des acteurs également), il ne trouvait pas l'actor (null).

Puis j'ai effacé pour avoir :

Sup.getActor("Score")

Et ça a marché. C'est bizarre parce que c'est mot pour mot ce que j'avais d'écrit avant de modifier.

En tout cas merci bien, tu m'as bien aidé.

Je garde le principe de l'awake de côté :)

Alors c'est sans doute pas trop clair. Une scène n'est pas un acteur. Si "ScenePong" c'est le nom de ta scène alors mon code était complètement faux...

(+1)

J'aurais eu le mérite d'essayer des trucs !