Je crée un jeu dans JavaFX et j'ai implémenté un curseur pour contrôler la vitesse du jeu. J'ai un simple curseur (javafx.scene.control.Slider) et je lie l'attribut time pour le gameloop à la valeur que je reçois du curseur.Modification dynamique d'un attribut d'heure d'images clés dans JavaFX
Le curseur ne fonctionne vraiment que lorsque le gameplay augmente. Si je le diminue, le gameUpdate() s'arrêtera pendant un moment - en fonction de combien je le perds. Si j'augmente le curseur en attendant que le jeu se rattrape, le jeu continuera à nouveau. Parfois, le jeu ne semble pas rattraper du tout, peu importe combien de temps j'attends.
Est-ce que changer l'heure des images clés est une mauvaise idée en général ou est-ce que j'oublie quelque chose d'autre? J'ai essayé de changer la variable canSkip, et cela semble rendre le jeu plus fluide quand ça recommence, mais cela ne m'aide pas beaucoup.
def gameLoop:Timeline = Timeline{
repeatCount: Timeline.INDEFINITE
keyFrames: [
KeyFrame{
time: bind Duration.valueOf(Config.REFRESH_RATE_NUMBER - gameSpeed)
action: function(){
gameUpdate();
}
}
]//keyFrames[]
}// Timeline{}
À moins d'avoir mal compris (ce qui arrive tout le temps), je n'utilise aucune sous-ligne dans mon extrait. Les timelines de sous-cadences ne sont-ils pas dans les images clés du scénario d'origine? Et d'après ce que je peux voir, ces parties du code que vous avez posté sur JIRA ne devraient pas vraiment affecter le temps de toute façon. Le temps lié à une variable variable semble être encore le problème. Je ne pouvais pas le faire fonctionner quand je déplaçais la déclaration non plus. L'avez-vous déplacé en dehors de tout le script? – Vargen
J'espérais que le rapport de bug vous donnerait quelques indications plutôt que d'être une solution directe. Pour aller de l'avant, pouvez-vous essayer d'utiliser les classes * Transition à la place? J'ai trouvé que cette zone était plutôt buggée quand j'ai essayé, alors peut-être que vous pourriez essayer d'augmenter dans JIRA si vous n'avez toujours pas de succès? –