Advertencia
  • Directiva de privacidad europea

    Esta página web usa cookies para gestionar la autentificación de usuarios, la navegació y otras funciones. Usando esta página web estas aceptando que guarde cookies en tu dispositivo.

    View e-Privacy Directive Documents

    Has rechazado el uso de cookies. Esta decisión puede ser cambiada.

Tutorial nº 22: Mejorando la vista con el ratón / Nivel principante

Imprimir
Ratio:  / 1
MaloBueno 
Categoría: Introducción a Blender 2.6x
Publicado el 01 Febrero 2013 Visto: 4123

Mejorando la vista con el ratón

 

En este tutorial aprenderemos a hacer que nuestro personaje de oriente adecuadamente al estilo GTA.





 

########################## SCRIPT ########################
import GameLogic as g
import mathutils
from mathutils import Vector
scene = g.getCurrentScene()

co= g.getCurrentController()
o= co.owner


ray = co.sensors["Ray"]
muro=ray.hitObject

normal_vec = Vector(ray.hitNormal)


Camera = scene.objects["Camera"]
Empty = scene.objects["cameraTarget"]
Plano = scene.objects["Plane"]


if ray.positive:

Camera.worldPosition= ray.hitPosition Camera.localPosition.y += 1.3

else:

Camera.worldPosition= Empty.worldPosition

###########SCRIPT CON GIRO RESTRINGIDO#### import bge
from bge import render
g=bge.logic
scene = g.getCurrentScene()
co = bge.logic.getCurrentController()
o= co.owner

#sensor
mouse = co.sensors["mousesensor"]

#objects
Cube= scene.objects["Cube"]
cameraTarget= scene.objects["cameraTarget"]

#####mouse movemente
    
movSpeed = 0.3
rotSpeed = (0.005, 0.005)
    
    # mouse look
x = (render.getWindowWidth() / 2 - mouse.position[0])
y = -(render.getWindowHeight() / 2 - mouse.position[1])

##### limitar la rotación del eje y

ymax=1.16
ymin=-1.3

o["totaly"]= o["totaly"]+int(y) * rotSpeed[1]
print (o["totaly"])    # Esto muestra en consola los valores, para elegir el máximo y el mínimo.
if o["totaly"]< 1.16 and o["totaly"]>-1.3:
    cameraTarget.applyRotation((int(y) * rotSpeed[1], 0, 0), True)
Cube.applyRotation((0 , 0, int(x) * rotSpeed[0]), False)
render.setMousePosition(int(render.getWindowWidth() / 2), int(render.getWindowHeight() / 2))

Comentarios   

 
#1 Guest 29-03-2013 01:47
fisico puse ser que cambie el codigo con restriccion en blender 2.63? me sale un error en la ultima linea me podria decir que puede ser?
 
 
#2 fisicomolon 29-03-2013 15:27
Las últimas dos lineas son una sola, pero no cabía en la web, puede que sea ese el problema, he reducido la letra para que quepa en una línea.
 
 
#3 Guest 30-03-2013 07:19
ya lo solucione me faltaba la propiedad "totaly"que marcaste con rojo en el tuto anterior xd pero ahora me surgió otro problema con lo restricción comienza bien pero despues de andar un tiempo y observar un par de veces arriba y abajo y dar un par de vueltas es como si fuera que el rango de restricción se perdiera, sigue restringiendo pero maso menos por la mitad de pantalla y se pasa media vuelta al mirar hacia arriba alguna sugerencia? de que podría estar haciendo mal?
 
 
#4 Guest 15-03-2016 02:37
Hola fisico,muchas gracias por tus tutoriales,la verdad es que aprendi muchisimo viendo tus videos...tengo un problema con el script de rotacion de camara y es que cuando bajo o subo la camara por encima del limite de rotacion, el valor de la propiedad totaly sigue subiendo o bajando y para volver a mover la camara hacia arriba o abajo necesito retroceder todos esos numeros que pasé...quisiera saber si puedes ayudarme a solucionarlo.gr acias
 

Escribir un comentario

Código de seguridad
Refescar

feed-image Entradas del canal electrónico