Blender:Buggy : 1 écran 2 vues caméra
De Centre de Ressources Numériques - Labomedia
Révision de 26 mars 2016 à 14:25 par Serge (discussion | contributions)
Retour sur les pages du jeu de voitures |
Sommaire
Split Screen : un écran dividé en 2, un pour chaque joueur
Un exemple simple Fichier:Viewport.blend
Principe
2 caméras et le script Viewports.py appliqué à chaque caméra. Le script permet de couper horizontalement ou verticalement. Les caméras peuvent avoir ou pas des contraintes comme Camera, Track to ....
Les caméras assoiées à chaque voiture
Camera
Camera.001
Options
Division verticale
################# Use the half left for Player A.
# Player A viewport:
left_A = 0
bottom_A = 0
right_A = width / 2
top_A = height
# set Player A viewport
playerA_cam.setViewport( left_A, bottom_A, right_A, top_A)
#################Use half right for player B.
# Player B viewport:
left_B = 0
bottom_B = 0
right_B = width
top_B = height
# set Player B viewport
playerB_cam.setViewport( left_B, bottom_B, right_B, top_B)
Division horizontale
################# Use the top half of the game window for Player A.
# Player A viewport: left half
left_A = 0
bottom_A = 0
right_A = width
top_A = height / 2
# set Player A viewport
playerA_cam.setViewport( left_A, bottom_A, right_A, top_A)
#################Use bottom half for player B.
# Player B viewport: right half
left_B = 0
bottom_B = height / 2
right_B = width
top_B = height
# set Player B viewport
playerB_cam.setViewport( left_B, bottom_B, right_B, top_B)
Arrêt du split
Monolythe est un cube invisible et Ghost (fantôme) qui sert uniquement à poser des Briques Logiques et facilement sélectionnable.
Monolythe a une propriéte "fin" integer. Si fin = 1, Viewport passe à False. Le Message "gagne" fait passé fin à 1. Le message "gagne" est envoyé par l' object score au passage de la ligne d'arrivée.
################## Use the viewports
# use viewport if prop fin de Monolythe = 0
# get current scene
scene = GameLogic.getCurrentScene()
# get list of objects in scene
objList = scene.objects
# get object named Monolythe
# Monolythe get the end of the game and stop the split
objMonolythe = objList["OBMonolythe"]
if objMonolythe.fin == 1 :
playerA_cam.enableViewport(False)
playerB_cam.enableViewport(False)
else :
playerA_cam.enableViewport(True)
playerB_cam.enableViewport(True)
Split sans condition
################## Use the viewports
playerA_cam.enableViewport(True)
playerB_cam.enableViewport(True)