Videojuego Blender Game Seguimiento del enemigo, PROBLEMA

Preguntas y respuestas relacionadas con el desarrollo de videojuegos y aplicaciones 3D interactivas, usando Blender Game Engine.
Responder
Garviazul
Mensajes: 5
Registrado: Mié Dic 06, 2017 3:14 am
Nombre: LUIS GARVI

Videojuego Blender Game Seguimiento del enemigo, PROBLEMA

Mensaje por Garviazul » Mié Dic 06, 2017 3:29 am

Buenos días a todos
vereis uno de los ultimos proyectos en los que estoy metido consiste basicamente en un pacman pero en 3 dimensiones, le he dado un aspecto en 3D y admenas he hecho que el escenario sea una esfera, pues vereis esto me esta dadondo mas problemas de lo que yo imaginaba ya que al princio tube que alinear cada uno de los personajes con el eje z que tienen cada uno mediante el siguiente script:
from bge import logic
from mathutils import Vector

cont = logic.getCurrentController()
own = cont.owner
scene = logic.getCurrentScene()

for obj in scene.objects:
if"gravity" in obj:

pull = Vector(obj.getVectTo(own)[1])
pull.magnitude = own["gAmount"]
obj.applyForce(pull)

player = scene.objects["Player"]
align = own.getVectTo(player)[1]
player.alignAxisToVect(align, 2, 1)


Bueno una vez esto solucionado tengo que hacer ahora que cada uno de los enemigos persiga a mi personaje, pero claro no lo puedo hacer con una maya de navegación porque es en 2D y necesito una en 3D. Habia pensado en hacerla con 2 pero sinceramente no tengo ni idea de como empezar.
He intentado hacer también un track to a mi personaje pero digamos que eso hace que la gravedad del planeta (del escenario) deje de afectarle.
Espero que alguien me pueda ayudar,
Mushisimas gracias, Un saludo.

Os dejo unas imágenes del juego ara que os hagáis la idea
Adjuntos
Captura2.PNG
Captura.PNG

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por juani » Mié Dic 06, 2017 12:12 pm

Hola, podrías usar el actuador Steering,Imagino que lo conoces ya que hablas de malla de navegación.

Garviazul
Mensajes: 5
Registrado: Mié Dic 06, 2017 3:14 am
Nombre: LUIS GARVI

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por Garviazul » Jue Dic 07, 2017 11:15 am

Muchas gracias por tu respuesta juani,
Ya lo intente, pero el problema que tengo es que no me detecta bien cuando llego a ciertas partes de la esfera, concretamente solo funciona bien cuando nos encontramos en la parte elevada. Cree una maya de navegación que es exactamente igual que la esfera le puse el steering que siguiera a mi personaje a partir de la maya, pero en ciertos momentos empieza a volar por los aires y a dar vueltas como loco.( te lo muestro en la imágen.)
Un saludo.
Adjuntos
Captura.PNG

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por juani » Jue Dic 07, 2017 12:45 pm

Hola, veo fallos en el script, no está muy claro lo que debe de hacer.Entiendo que los objetos son dinámicos o rigid body prueba a poner a uno de los fantasmas además del steering un sensor alwais con un actuador motion, en el actuador en Force le pones - 20 a z, esto aplicará una fuerza constante en - z y hará que siempre esté pegado a la esfera, en Loc le pones la velocidad que tu quieras, creo que te funcionará, esto es lo que deberiá de hacer el script, si te funciona y lo quieres con script, lo hacemos.
Te comento un poco el script que has puesto.

from bge import logic
from mathutils import Vector #Este módulo no hace falta

cont = logic.getCurrentController()
own = cont.owner
scene = logic.getCurrentScene()

for obj in scene.objects: # recorre todo los objetos de la escena
if"gravity" in obj: #Si el objeto tiene la propiedad "gravity"

pull = obj.getVectTo(own)[1] # obtén el vector de posición del objeto
pull.magnitude = own["gAmount"] #magnitud es igual a la propiedad "gAmount " , no la veo en la imagen de depuración que as puesto, este sería el valor de la fuerza a aplicar en z supongo, no se si es que no la tiene o no le has dado a la casilla de depuración y no está representada

obj.applyForce(pull) #Aquí Pull es el vector de posición del objeto no hace nada, en todo caso sería (pull.magnitud) o (own["gAmount"])

player = scene.objects["Player"] # De la escena coge el objeto Player
align = own.getVectTo(player)[1] #Obtén el vector de posición de Player
player.alignAxisToVect(align, 2, 1)# alinea Player con su propio vector en el eje z (Esto no tiene sentido)

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por juani » Vie Dic 08, 2017 11:20 am

Olvidé decirte que la malla de navegación es opcional en el actuador steering no pongas malla de navegación, intenté hacer un ejemplo y lo que también puede ocurrir es que el planeta (esfera) tenga las colisiones como Box en vez de Sfere, si es así cámbialo (Collision Bounds = Sfere).

Garviazul
Mensajes: 5
Registrado: Mié Dic 06, 2017 3:14 am
Nombre: LUIS GARVI

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por Garviazul » Lun Dic 11, 2017 4:11 am

Muchas gracias pero lo he intentado todo y me sigue ocurriendo lo mismo, cuando he estado tocando el código del script he probado a dejar todo sin gravedad al planeta, y me he dado cuenta que pero sigo teniendo la gravedad por defecto en blender , a pesar de la que tengo en el planeta y por eso creo que estoy teniendo los fallos que tengo, puede ser?? alguien sabe como poder desactivarla??
saludos :P

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por juani » Lun Dic 11, 2017 4:46 am

Captura de pantalla (1).png

Avatar de Usuario
soliman
Mensajes: 5501
Registrado: Jue Sep 01, 2005 1:13 pm
Nombre: soliman
Contactar:

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por soliman » Lun Dic 11, 2017 10:28 am

.....
Adjuntos
GAME.jpg

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por juani » Lun Dic 11, 2017 11:49 am

Gracias Soliman por la aclaración, no se como lo puse en Blender Render pero no tiene que ver con Game Engine.
Saludos.

Avatar de Usuario
soliman
Mensajes: 5501
Registrado: Jue Sep 01, 2005 1:13 pm
Nombre: soliman
Contactar:

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por soliman » Lun Dic 11, 2017 4:20 pm

:)

Garviazul
Mensajes: 5
Registrado: Mié Dic 06, 2017 3:14 am
Nombre: LUIS GARVI

Re: Videojuego Blender Game Seguimiento del enemigo, PROBLEM

Mensaje por Garviazul » Mar Dic 12, 2017 1:07 pm

Vale chicos muchas gracias a todos ya esta solucionado el asunto al final a cada uno de los enemigos fantasmas los programe por bloques de lógica y no por pyton para que se pegaran a la superficie, y mediante el steering hice que me persiguieran al jugador muchas gracias a todos!!.
Saludos ! :) :)

Responder