Modifier Ce problème a été corrigé dans https://github.com/threerings/playn/commit/137ce50dddd2716f84c38ec1568d7ae5a368434b. Voir la réponse de Par Eklund pour plus de détails.Impossible de restituer SurfaceLayer pendant la méthode de peinture
Avant de commencer: je suis un novice à la programmation de jeux en général il est donc très probable que j'ai un malentendu fondamental des outils que je me sers. Cependant, je vais pousser avec ma question ...
Chaque fois que j'essaie de dessiner quelque chose sur mon Surface Layer pendant la méthode paint
, je reçois un écran noir. Si je dessine pendant la méthode init
, il apparaît OK.
Je suis en train de reproduire le code sous le Surface Layer banner here. Le code en question est la suivante:
public void paint() {
// Draw 100 random peas imperatively.
surf.clear(0);
for (int i = 0; i < 100; ++i) {
int x = (int)(random() * WIDTH);
int y = (int)(random() * HEIGHT);
surf.drawImage(pea, x, y);
}
}
J'utilise regarderN 1.4 alors même si le code ne correspond pas directement à ce que je vous écris, je pensais que j'avais au moins l'équivalent (sauf que je dessine des rectangles blancs) :
public void paint(final float alpha) {
surfaceLayer.surface().clear();
surfaceLayer.surface().setFillColor(Color.rgb(255, 255, 255));
for (int i = 0; i < 100; ++i) {
int x = (int) (Math.random() * width);
int y = (int) (Math.random() * height);
surfaceLayer.surface().fillRect(x, y, 5, 5);
}
}
Rien n'est rendu à l'écran. Si je déplace ce code dans la méthode init
, il se produit comme prévu.
Maintenant Fait intéressant si je fais projet regarderN 1.3.1 et utilise le même code exacte elle rend bien au cours du procédé de peinture (étant donné que j'utilise toujours le même code exact je ne suis pas sûr de la version le site PlayN utilise dans son exemple le code ...).
Qu'est-ce que j'ai manqué ici? A 1.4 a changé quelque chose à faire avec le Surface Layer et je dois l'utiliser différemment maintenant? Merci.
On dirait qu'il a été corrigé - voir le problème :) Fix est en changeset https://github.com/threerings/playn/commit/137ce50dddd2716f84c38ec1568d7ae5a368434b –