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)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Retour sur les pages du jeu de voitures


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 voitureGame 02.png

Camera

Game 03.png

Camera.001

Game 04.png

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)