AddObject Python BGE

Juani - 20/01/2019 08:26
Buenas, este script es para añadir objetos a la escena principal. Llamo escena principal a la capa en la cual lanzamos el juego. Si estoy en la segunda capa y pulso p para lanzar el juego, esta sería la escena principal. Digo esto porque a la hora de añadir objetos tenemos que referirnos a ellos como objetos inactivosdel juego ya que de momento y mientras no se añadan, no forman parte de la escena y no podemos hacer nada con ellos.
En el blend adjunto, el cubo está en la primera capa o escena principal para mí, el toro en la segunda y la esfera en la tercera.
En el script llamo a todos los objetos de la escena como [escena = g, getCurrentScene()], ahora para llamar a cualquier objeto de la escena lo haría así:
escena, objects[Cube] -> De todos los objetos de la escena, coge el cubo que se llama Cube.
Si quiero llamar al toro o a la esfera no puedo hacerlo como (escena, objects[Torus]) porque estos objetos no están en la escena cuando yo lanzo el juego, tengo que llamarlos como objetos inactivos, entonces llamaríamos al toro como (escena, objectsInactive[Torus]) y a la esfera como (escena, objectsInactive[Sphere]).

La API dice que se añade el objeto a la escena de la siguiente manera:
addObject(objeto, referencia, time)
objeto: El objeto que queremos añadir, por ejemplo, el toro
referencia: El objeto aparecerá en el centro del objeto que declaremos como referencia, en este blen, el cubo, pudiendo ser el objeto que queramos, empty
etc.
time: el tiempo que el objeto añadido permanecerá en la escena siendo 0 todo el tiempo y si no es cero el objeto permanecerá en la escena el tiempo
indicado en frames, como el juego va más o menos a 60 frames por segundo, si pongo (time = 120) el objeto estará en la escena 2 segundos aproximadamente, y desaparecerá de nuevo.

Editado:
Edito este mensaje porque en el script (time = 0) y (time = 120), están declaradas como variables. No es que pase nada, pero es absurdo porque se accede simplemente poniendo el valor de tiempo que queramos en vez de time. Ejemplo: escena, addObject(esfera, cubo, 120) escena, addObject(toro, cubo, 0)
Entré para usarlo y me di cuenta de esto. Pido perdón por si ha llevado a confusión.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #227826

3dpoder - 20/01/2019 16:31
Gracias, descargado correctamente.
Juani - 21/01/2019 19:52
Lo siento, pero a mí no me descarga, no sé si el problema será mío, pero tengo 2 ordenadores y en ninguno, es más en el número de descargas del archivo pone cero, o al menos es lo que yo veo.
3dpoder - 21/01/2019 23:53
[QUOTE=Juani;974119]el número de descargas del archivo pone cero.[/QUOTE]Acabo de darme cuenta de algo, por tu comentario del contador, es cierto que pone cero, pero yo me la he descargado, haz click con el botón derecho del ratón y deberías poder descargar.

De todas formas, tienes razón en que algo falla, no cuenta la descarga y no descarga si se da click con el botón izquierdo, voy a revisar otra vez a ver si veo el fallo. Gracias.

Posdata: Acabo de hacer la prueba aquí mismo, y los puedo descargar directamente sin problemas, inténtalo tú, y si no te funciona, mira a ver si tienes activado el adbloock del navegador o algo parecido, si lo tienes activado, puede darte fallos, no solo en este caso, sino en otros apartados del foro.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #227834



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #227835

Soliman - 22/01/2019 14:40
[QUOTE=3dpoder;974123]Acabo de darme cuenta de algo, por tu comentario del contador, es cierto que pone cero, pero yo me la he descargado, haz click con el botón derecho del ratón y deberías poder descargar.

De todas formas, tienes razón en que algo falla, no cuenta la descarga y no descarga si se da click con el botón izquierdo, voy a revisar otra vez a ver si veo el fallo. Gracias.

Posdata: Acabo de hacer la prueba aquí mismo, y los puedo descargar directamente sin problemas, inténtalo tú, y si no te funciona, mira a ver si tienes activado el adbloock del navegador o algo parecido, si lo tienes activado, puede darte fallos, no solo en este caso, sino en otros apartados del foro.[/QUOTE]Descargar se puede, pero el (*.blend) está vacío.