como poner un color aleatorio cada ves q aparesca un objeto

Preguntas y respuestas relacionadas con el desarrollo de videojuegos y aplicaciones 3D interactivas, usando Blender Game Engine.
rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

como poner un color aleatorio cada ves q aparesca un objeto

Mensaje por rueda89_98 » Dom Feb 28, 2016 6:50 pm

buenas a todos soy nuevo por estos lados.

quisiera saber como hacer un script en python para q un objeto cambie de color cada ves q aparece en la ecena principal y cuando se sumen 4 objetos de igual color desaparescan.

muchas gracias de antemano

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Lun Mar 14, 2016 1:57 pm

bueno despues de tanta busqueda lo mas q e logrado es esto si alguien lo puede arreglar seria de mucha ayuda aca dejo el codigo.

import bge
import random

color1 = [0,1]

def main():

cont = bge.logic.getCurrentController()
own = cont.owner

own.color = [random.choice(color1),random.choice(color1),random.choice(color1), True]

main()

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Mié Mar 16, 2016 2:15 pm

Buenas, lo único que hay mal puesto en ese código es la indentación.
Sería así:

import bge
import random

color1 = [0,1]

def main():
cont = bge.logic.getCurrentController()
own = cont.owner
own.color = [random.choice(color1), random.choice(color1), random.choice(color1), True]

main()

Lo he probado y funciona bien, solo que para Blender, un pulso positivo de un sensor en realidad son dos pulsos, uno al pulsar y otro al soltar la tecla.Según que sensor vayas a utilizar tendrás que ponerlo en modo Tap (Toque).Verás que si no es así el objeto cambiará de color 2 veces y se quedará con el último.
Un saludo

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Mié Mar 16, 2016 2:19 pm

He puesto el codigo indentado y al publicar la respuesta en el foro me he dado cuenta de que lo ha puesto como tu lo tienes, ya no se si tu lo tienes bien y al publicarlo en el foro sale todo el código pegado a la izquierda que estaría mal.
¿ No te funciona este código?

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Mié Mar 16, 2016 10:47 pm

ya lo solucione el script esta bien el problema era al poner el sensor pues le ponia un always en modo pulso(los 3 punticos) despues de varias pruebas termine haciendo este codigo por si alguien lo necesita.

import bge
import random

color = random.randint(0,3)

def main():
cont = bge.logic.getCurrentController()
own = cont.owner

if color == 0:
cont = bge.logic.getCurrentController()
own = cont.owner
own.color = [1,0,0,True]#rojo
else:
if color == 1:
cont = bge.logic.getCurrentController()
own = cont.owner
own.color = [0,1,0,True]#verde

else:
if color == 2:
cont = bge.logic.getCurrentController()
own = cont.owner
own.color = [0,0,1,True]#azul

else:
if color == 3:
cont = bge.logic.getCurrentController()
own = cont.owner
own.color = [1,1,0,True]#amarillo

main()

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Mié Mar 16, 2016 10:47 pm

ojo con la indentacion XD

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Jue Mar 17, 2016 2:41 am

Está bien..,pero podrias simplificar el código un poco mas y quitar la función
porque entiendo que el script se lo pones a cada objeto es decir no trabajas con el controlador python en modo MODULE ¿ verdad?¿o no es así?Por cierto ¿ como harás para que se eliminen cuando el color se repita 4 veces?
Saludos.

import bge
import random
cont = bge.logic.getCurrentController()
own = cont.owner

color = random.randint(0,3)

if color == 0:
own.color = [1,0,0,True]#rojo
if color == 1:
own.color = [0,1,0,True]#verde
if color == 2:
own.color = [0,0,1,True]#azul
else:
o.color = [1,1,0,1]

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Jue Mar 17, 2016 1:38 pm

no tengo ni idea de comohacer q desapescan pero segun e visto, hay forma de detectar las collisiones.
seria q sumara por ejemplo el rojo [1,0,0,True] y cuando llegue a [4,0,0,True] poner un endObject
y se sume al puntaje XD haro el lio es hacerlo.

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Vie Mar 18, 2016 12:39 am

Gracias por responder, la verdad es que pensé que sería fácil hacer que desaparecieran pero me está resultando muy dificil y no doy con la tecla.
Seguiré intentándolo a la vez que aprendiendo.Si tengo algún avance te lo comentaré por aquí y si a ti no te importa comenta los tuyos, se agradece.

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Vie Mar 18, 2016 2:57 pm

claro q si laidea es compartir conocimientos y ayudar.

quisiera saber q juego estas haciendo asi poder ayudar.

yo estoy haciencoalgo asi comoel doctor mario de nes XD pero es muy complicado e vistomas
informacion para hacer juegos en primera persona.

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Sab Mar 19, 2016 2:04 am

Soy un aficionado, no me dedico a esto, esto es un hobbie.Estoy intentando hacer un juego para niños pequeños pero por afición y aprender python y blender que me fascina.He de decirte que no conozco prácticamente ningún juego, no suelo jugar, ahora programar es otra cosa.
En el foro (foro3d.com) estoy publicando el jueguecillo este que te comento.

http://www.foro3d.com/f37/jueguecillo-126142.html

Ahí le puedes hechar un vistazo.Ahora lo tengo un poco dejado porque estoy estudiando para presentarme a unas pruebas que me permitirían estudiar un grado superior de FP a distancia, y son en Mayo.
Me pica el cuerpo porque no puedo dedicar tiempo a Blender, pero bueno vi tu consulta y me picó mucho.Mis ratitos de relax ahora con los estudios estos es hechar un vistazo a los foros y si puedo ayudar... o en este caso aprender, si conseguimos que desaparezcan los objetos.
Un saludo.

rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Lun Mar 21, 2016 10:31 pm

se ve muy bien aunque puedes buscar el sistema de particulas para mejorarlo aun mas estare atento para ver el progreso :D

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

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por juani » Sab Mar 26, 2016 4:49 pm

Gracias por el comentario, pensé hacer este juego para mis sobrinos y como siga así creo que será para los suyos jeje..
Mira este Blend a ver que te parece, si es lo que intentas hacer mas o menos, si es mas o menos esto, quizá lo tenga un poco dominado. Creo que las colisiones habrá que detectarlas con radar o cercania. A ver que piensas.
Saludos.
Adjuntos

[La extensión blend ha sido desactivada y no se mostrará en adelante]


rueda89_98
Mensajes: 11
Registrado: Dom Feb 28, 2016 6:44 pm
Nombre: andres rueda

Re: como poner un color aleatorio cada ves q aparesca un obj

Mensaje por rueda89_98 » Dom Mar 27, 2016 7:16 pm

si es algo asi lo q estoy haciendo el problema es q al poner un script para q se mueba mas lento como las piezas del tetris no se como hacer la collicion voy a poner el blen aca para q le eches un ojo depronto puedes hacerle algo
Adjuntos

[La extensión blend ha sido desactivada y no se mostrará en adelante]



Responder