Comportement d’un appareil portable dans une station d’accueil
Certains appareils portables sont utilisés dans une station d’accueil. Bien qu’il n’existe pas d’API pour vérifier si l’appareil portable est dans une station d’accueil, un appareil en station d’accueil peut avoir un écran externe connecté. Vous pouvez vérifier la présence d’un écran externe à l’aide des API EnumDisplayDevices et EnumDisplaySettings. Lorsqu’un appareil portable est dans une station d’accueil, utilisez ces méthodes pour vérifier la présence d’écrans externes connectés :- Vérifiez la présence de manettes supplémentaires. La manette intégrée de l’appareil portable est toujours disponible, mais l’utilisateur peut également connecter des manettes supplémentaires.
- Vérifiez la taille des écrans connectés.
- Les recommandations relatives au clavier virtuel demeurent, car la manette reste le principal mécanisme d’entrée.
- Certains joueurs peuvent connecter une souris et un clavier, comme ils le font sur les consoles.
Entrées garanties
Bien que divers appareils de jeu portables puissent offrir des options d’entrée supplémentaires, les appareils portables disposent des entrées suivantes.- Boutons A, B, X et Y
- Gâchette haute gauche et gâchette haute droite
- Gâchette gauche et gâchette droite
- Manette analogique gauche et manette analogique droite
- Croix directionnelle
- Bouton Menu
- Bouton Affichage
Alimentation
Pour vérifier si l’appareil portable est alimenté par le secteur plutôt que par la pile, appelez la fonction GetSystemPowerStatus. Elle indique si l’appareil est alimenté par le secteur et fournit un résumé de l’état de charge de la pile (élevé, faible, critique ou en charge). Tenez compte de l’effet de votre jeu sur l’autonomie de la pile de l’appareil, car la puissance requise par votre jeu n’est pas toujours évidente. Les recommandations d’économie d’énergie du XBOX Sustainability Toolkit peuvent également s’appliquer aux appareils portables. Maximisez les économies d’énergie en :- Activant la synchronisation verticale (VSync) pour donner plus de temps d’inactivité au GPU et réduire la consommation d’énergie.
- Réduisant la résolution de rendu interne et en appliquant une passe de mise à l’échelle.
- Réduisant la fréquence d’images pour économiser de l’énergie. Remarque : Une fréquence d’images plus faible peut nuire à la jouabilité.
- Arrêtant le rendu du monde lorsque des menus ou des éléments d’interface utilisateur en plein écran apparaissent, ou lorsque le jeu est en pause.
- Mettant le jeu en pause lorsqu’une inactivité des entrées est détectée et que le joueur est inactif.
Dimensions de l’écran
Bien que les différents appareils de jeu portables aient des résolutions d’écran variées, vous pouvez vous fier aux normes suivantes :- La taille diagonale de l’écran est d’au moins 7 pouces (17,8 cm).
- L’écran a un rapport d’aspect de 16:9 ou de 16:10.
Exemples de pratiques exemplaires pour l’expérience sur appareil portable
Pour en savoir plus sur la création et l’optimisation de votre jeu pour les appareils portables, Microsoft a publié deux exemples : un exemple natif en C++ et un exemple managé en C# pour Unity. Les deux proposent un ensemble similaire de pratiques exemplaires sur l’utilisation des API pour gérer l’expérience de votre jeu sur appareil portable.- Déterminer si un appareil est un appareil portable.
- Déterminer si un appareil fonctionne sur pile, est en charge ou utilise une alimentation externe.
- Rechercher les propriétés propres à l’appareil, y compris les propriétés de l’écran intégré.
- Gérer les changements de PPP et mettre l’interface utilisateur à l’échelle en conséquence.
- Utiliser des claviers virtuels pour la saisie de texte.
- Rechercher les périphériques et les types de réseau.
- Déterminer la connectivité réseau et Bluetooth®.
- Gérer les entrées provenant de la manette, du clavier et de la souris.
- Déterminer la modalité d’entrée. Par exemple, identifier le périphérique d’entrée utilisé le plus récemment.
- Exemple natif en C++ : Exemple C++ sur GitHub.
- Exemple managé en C# pour Unity : Exemple managé en C# pour Unity sur GitHub.
