Android libgdx grande résolution de l'écran
Comment puis-je aider (faire un algorithme) pour libgdx pour la prise en charge de plusieurs résolution de l'écran? J'ai fait mon application fonctionne sur HTC Tattoo à l'aide de cas relevés avec des paramètres comme:
if (Gdx.input.getX()==40) {
Qu'est ce qu'un bon algorithme pour faire ce travail sur les grands écrans?
J'ai essayé ceci mais sans aucun résultat:
publis static int translatex() {
float p = (float)Gdx.graphics.getHeight()*340;
return (int) p*Gdx.input.getX();
}
340 est la base x (le x de la résolution sur mon téléphone) utilisé par moi sur le HTC Tattoo.
Donc.....comment puis-je faire une fonction pour soutenir les grands écrans avec des valeurs absolues. Je ne veux pas changer de si-états.
OriginalL'auteur Felix | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
C'est assez facile. En gros, vous avez construire l'ensemble de votre programme pour votre résolution native, mais dans tout ce qui concerne le positionnement et la texture de dimensionnement avoir quelque chose comme ceci:
Fondamentalement, ce que vous faites est de prendre chaque objet généré et en l'exécutant à travers quelque chose qui augmente ou diminue en fonction de la variation de x/y à valeurs dans votre résolution. Les autres c'est à partir de la maternelle, le plus grand il sera. Lors de la vérification de quelque chose quelque part ou de mettre quelque chose quelque part, toujours code comme la résolution souhaitée, mais de l'exécuter à travers une fonction de redimensionnement avant de l'afficher ou de le laisser interagir avec le reste de votre programme.
Qu'est-ce que startWidth? Et la fonction de redimensionnement ont 2 paramètres int largeur, int hauteur, que startWidth est la largeur?
début largeur/hauteur sera la taille de votre texture en mode natif avant de la redimensionner. la nouvelle largeur et la hauteur sont les augmentations au titre de la changeX et de changeY. Limites est simplement un vector2 tenant le coin opposé de la position de sorte que vous pouvez facilement connaître les limites de l'objet. Appel d'objet à créer --> obtenir toutes les valeurs initiales telles que la position, la largeur, la hauteur -> Convertir avec le redimensionner () --> dessiner la texture sur l'écran. Nous gardons startHeight et la hauteur distinct dans le cas d'utilisation de textureRegions, lorsque vous avez besoin de connaître la taille de base de la texture de sorte que vous pouvez étirer correctement
Pouvez-vous s'il vous plaît mettez un peu de code? Je ne suis pas un anglais natif.
J'ai utilisé cette méthode pour redimensionner mon image et il fonctionnait très bien! Merci!!!! Si je suis tombé sur un problème. Mes images sont redimensionnées, mais quand je l'appelle
setRotation()
plus tard, l'image pivote autour d'un centre ancien point. Des idées?OriginalL'auteur Remm
Voir une solution plus élégante à http://www.java-gaming.org/index.php?topic=25685.0 (voir aussi Nate commentaire pour cette solution).
Aussi, si vous utilisez
scene2d
, notez qu'actuellement (libgdx 0.9.6)stage.setViewport
méthode doit avoir cette fonctionnalité, mais il n'a pas vraiment de se comporter comme l'on pourrait s'attendre.Mise à jour: setViewPort a été fixé, de sorte que cela fonctionne comme prévu.
OriginalL'auteur ron