Split écran multijoueur
Séparer l'écran en deux pour un multijoueur sur un seul poste
Introduction
Bonjour !
Nous allons voir dans ce tutoriel comment séparer, à l'aide de Python, un écran en deux afin de pouvoir construire à l'avenir, un jeu multi-joueur sur un seul ordinateur.
Étape 1 : Préparation de la scène
Lors du démarrage de la scène, ne supprimez rien, gardez le cube, la caméra et la lampe. Ajoutez une deuxième caméra. Arrangez vous pour que celle-ci pointe son regard vers le cube mais à un angle différent par rapport à la caméra par défaut.
Ainsi vous devez obtenir ceci à peu de choses près :
Ensuite, sélectionnez la caméra par défaut, soit OBCamera et allez dans la zone Logic (F4) et ajoutez un 'sensor' "Always" puis un 'controller' "Python" et mettez dans la zone script de ce controller : "Text". N'oubliez pas de relier le 'sensor' et le 'controller'. De plus désactiver le petit bouton qui se situe en dessous du titre du 'sensor' "Always". Ceci permettra d'exécuter ce script une seule fois, il est inutile de le lancer à l'infini.
Passons à l'étape suivante...
Étape 2 : Python : Script des viewports
Maintenant que notre scène est préparée, nous voulons faire en sorte à ce que dès que le jeu se lance,, l'écran se sépare en deux afin d'avoir les deux vues différentes du cube. Nous allons donc passer par Python. Pour ce faire allez dans le "Text Editor", sélectionnez le script "Text" et renommez le comme bon vous semble ("viewports" par exemple)
En premier lieu nous allons avoir besoin du module gérant la configuration des fenêtres, il s'agit de Rasterizer. Donc on commence à démarrer le script en important ce module à l'aide de la ligne suivante :
import Rasterizer
Une fois le module chargé, il faut maintenant connaître la largeur et la hauteur de la fenêtre lors du lancement du jeu. Utilisons le module importé :
height = Rasterizer.getWindowHeight() Pour la largeur
width = Rasterizer.getWindowWidth() Pour la hauteur
Maintenant, nous devons récuperer les deux caméras
scene = GameLogic.getCurrentScene() On récupère la scène courante
objList = scene.getObjectList() Puis on récupère la liste des objets dans cette scène
playerA = objList["OBCamera"] Parmi cette liste on prend la caméra nommée OBCamera
playerB = objList["OBCamera.001"] Puis la caméra nommée OBCamera.001
On utilise ensuite la fonction setViewport, sachant que plusieurs paramètres sont à définir :
setViewport(A, B, C, D)
A conçerne la limite de la bordure gauche de la zone
B conçerne la limite de la bordure du dessous de la zone
C conçerne la limite de la bordure droite de la zone
D conçerne la limite de la bordure du dessus de la zone
Ainsi pour définir deux zones on obtient ceci :
playerA.setViewport( 0, height / 2, width, height) Pour la OBCamera
playerB.setViewport( 0, 0, width, height / 2) Et pour la OBCamera.001
On utilise ensuite la fonction enableViewport() pour activer les deux zones
playerA.enableViewport(True)
playerB.enableViewport(True)
Conclusion
Voilà, appuyez sur P et regarder le résultat !
Vous pouvez toujours vous arranger pour faire un écran splitté de manière verticale et non horizontale.
Voici le fichier d'exemple ci-joint à ce tutoriel que vous pouvez télécharger ici.
Le tutoriel est terminé, je vous laisse :-)
tutoriel rédigé pour le Blender Clan par Monster_kill, le samedi 20 décembre
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.