J'ai cette méthode de mise à jour ci-dessous:mouvement de tuile chaque nombre de secondes
@Override
public void update(Input input, int delta) {
/* if UP, move player 5 tiles upwards */
if (input.isKeyPressed(Input.KEY_UP) {
y -= 5;
setY(y);
}
/* if DOWN, move player 5 tiles downwards */
if (input.isKeyPressed(Input.KEY_DOWN) {
y += 5;
setY(y);
}
/* if LEFT, move player 5 tiles to the left */
if (input.isKeyPressed(Input.KEY_LEFT) {
x -= 5;
setX(x);
}
/* if RIGHT, move player 5 tiles to the right */
if (input.isKeyPressed(Input.KEY_RIGHT) {
x += 5;
setX(x);
}
}
Ma boucle de mise à jour de ma classe mondiale:
public void update(Input input, int delta)
throws SlickException {
// Update every sprite eg. Player, Blocks etc.
for (Sprite sprite : list) {
sprite.update(input, delta);
}
}
Où setX()
et setY()
ne sont que les poseurs de ma classe, qui gère combien de pixels le joueur doit déplacer en termes de tuiles. Où chaque tuile est de 32 pixels. Jusqu'à présent, cela déplace mon joueur d'un endroit à un autre emplacement 5 tuiles vers le bas, vers le haut, vers la gauche ou vers la droite. Je me demandais si c'était une façon de faire déplacer le joueur d'un carreau toutes les 0,25 secondes à sa destination? Comme dans, toutes les 0,25 secondes, le joueur déplacerait 32 pixels dans la direction gauche, droite, bas ou haut. Je veux que cela soit ajouté de sorte qu'il semble que le joueur glisse sur des tuiles au lieu de se téléporter directement à son emplacement.
Comment puis-je utiliser une minuterie pour y parvenir? Puis-je utiliser Delta pour faire cela? Toute sorte d'aide serait appréciée.
Merci pour la réponse. J'ai ajouté ma boucle de mise à jour dans ma question, est-ce que j'ajouterais simplement cette condition à cette boucle? – RoadRunner
Vous ne devez pas utiliser Java.lang.System.currentTimeMillis() car il dépend du framerate et peut invoquer différents comportements sur des machines différentes. Je suggère que vous devriez utiliser les deltas. –
@LOLWTFasdasdasdad à droite, alors utilisez System.nanoTime() puis. Ma réponse devrait toujours être valide. –