jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Gestion de la camera dans une scene 3D (1er et 3e personne) Sam 23 Oct 2010 - 13:08 | |
| Bonjour a vous, j'ai programmer ici un code qui permet de se déplacer dans une scène 3D. Ce code est une astuce, ( il n'y a pas les effet de gravitation etc) J'espère que cela servira a certain d'entre vous Il faut utiliser les flèches directionnelle (et numérique) . pour regarder en haut ou en bas il faut utiliser les touches page haut et bas. Sur ce code on ce déplace au niveau 0 donc l'objet semble grand mais on peu faire augmenter le Y du cube 1 pour être a la hauteur voulu. - Code:
-
error_french label program , vue dim rotation,rotation2,vitesserot,vitessedep,vitesserot2 scene3d 99 full_space 0 : full_space 99 : border_hide 0 3d_cube 1,1 3d_cube 2,1 3d_color 1,255,0,0 3d_color 2,0,0,255 color 99,0,0,200 vitesserot=4.7 vitesserot2=0.1 vitessedep=0.02 3d_hide 1 3d_hide 2
3d_cube 50,1 3d_z_position 50,2 on_key_down 0,program gosub vue end
program:
if key_down_code=27 terminate end_if
if key_down_code=37 or key_down_code=100 rotation=rotation+vitesserot 3d_y_rotate 1,rotation : display gosub vue end_if
if key_down_code=39 or key_down_code=102 rotation=rotation-vitesserot 3d_y_rotate 1,rotation : display gosub vue end_if
if key_down_code=33 if rotation2 < 1.5 rotation2=rotation2+vitesserot2 3d_y_position 2,o3d_y_position(2)+rotation2 gosub vue end_if end_if
if key_down_code=34 if rotation2 > -1.5 rotation2=rotation2-vitesserot2 gosub vue end_if end_if
if key_down_code=38 or key_down_code=104 3d_move 1,vitessedep gosub vue end_if
if key_down_code=40 or key_down_code=98 3d_move 1,vitessedep-vitessedep-vitessedep gosub vue end_if
if key_down_code=101 rotation2=0 gosub vue end_if return
vue: 3d_x_position 2,o3d_x_position(1) 3d_y_position 2,o3d_y_position(1)+rotation2 3d_z_position 2,o3d_z_position(1) 3d_x_rotate 2,o3d_x_rotate(1) 3d_y_rotate 2,o3d_y_rotate(1) 3d_z_rotate 2,o3d_z_rotate(1)
3d_move 2,1
cam_position o3d_x_position(1),o3d_y_position(1),o3d_z_position(1) point_position o3d_x_position(2),o3d_y_position(2),o3d_z_position(2) return
pour mieux comprendre le fonctionnement: - Code:
-
error_french label program , vue dim rotation,rotation2,vitesserot,vitessedep,vitesserot2 scene3d 99 full_space 0 : full_space 99 : border_hide 0 3d_cube 1,1 3d_cube 2,1 3d_color 1,255,0,0 3d_color 2,0,0,255 color 99,0,0,200 vitesserot=4.7 vitesserot2=0.1 vitessedep=0.02 ' 3d_hide 1 ' 3d_hide 2
' 3d_cube 50,1 ' 3d_z_position 50,2 on_key_down 0,program gosub vue end
program:
if key_down_code=27 terminate end_if
if key_down_code=37 or key_down_code=100 rotation=rotation+vitesserot 3d_y_rotate 1,rotation : display gosub vue end_if
if key_down_code=39 or key_down_code=102 rotation=rotation-vitesserot 3d_y_rotate 1,rotation : display gosub vue end_if
if key_down_code=33 if rotation2 < 1.5 rotation2=rotation2+vitesserot2 3d_y_position 2,o3d_y_position(2)+rotation2 gosub vue end_if end_if
if key_down_code=34 if rotation2 > -1.5 rotation2=rotation2-vitesserot2 gosub vue end_if end_if
if key_down_code=38 or key_down_code=104 3d_move 1,vitessedep gosub vue end_if
if key_down_code=40 or key_down_code=98 3d_move 1,vitessedep-vitessedep-vitessedep gosub vue end_if
if key_down_code=101 rotation2=0 gosub vue end_if return
vue: 3d_x_position 2,o3d_x_position(1) 3d_y_position 2,o3d_y_position(1)+rotation2 3d_z_position 2,o3d_z_position(1) 3d_x_rotate 2,o3d_x_rotate(1) 3d_y_rotate 2,o3d_y_rotate(1) 3d_z_rotate 2,o3d_z_rotate(1)
3d_move 2,1
' cam_position o3d_x_position(1),o3d_y_position(1),o3d_z_position(1) ' point_position o3d_x_position(2),o3d_y_position(2),o3d_z_position(2) return Voila | |
|