Página 1 de 2

como poner un color aleatorio cada ves q aparesca un objeto

Publicado: Dom Feb 28, 2016 6:50 pm
por rueda89_98
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

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

Publicado: Lun Mar 14, 2016 1:57 pm
por rueda89_98
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()

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

Publicado: Mié Mar 16, 2016 2:15 pm
por juani
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

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

Publicado: Mié Mar 16, 2016 2:19 pm
por juani
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?

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

Publicado: Mié Mar 16, 2016 10:47 pm
por rueda89_98
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()

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

Publicado: Mié Mar 16, 2016 10:47 pm
por rueda89_98
ojo con la indentacion XD

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

Publicado: Jue Mar 17, 2016 2:41 am
por juani
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]

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

Publicado: Jue Mar 17, 2016 1:38 pm
por rueda89_98
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.

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

Publicado: Vie Mar 18, 2016 12:39 am
por juani
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.

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

Publicado: Vie Mar 18, 2016 2:57 pm
por rueda89_98
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.

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

Publicado: Sab Mar 19, 2016 2:04 am
por juani
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.

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

Publicado: Lun Mar 21, 2016 10:31 pm
por rueda89_98
se ve muy bien aunque puedes buscar el sistema de particulas para mejorarlo aun mas estare atento para ver el progreso :D

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

Publicado: Sab Mar 26, 2016 4:49 pm
por juani
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.

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

Publicado: Dom Mar 27, 2016 7:16 pm
por rueda89_98
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

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

Publicado: Lun Mar 28, 2016 5:42 pm
por rueda89_98