Hola apreciados amigos (as):
Tengo un objeto o_bola cuyo sprite cuenta con 10 subim?genes. 9 rojas y una blanca(la ?ltima subimagen).
1. En CREATE: image_index=random(10) image_speed=0
2. Con CONTROL Creo 6 instancias del objeto en una hilera. Tomando en cuenta que si en uno de ellos sale la blanca (la ?ltima subimagen), que en los siguientes instancias, el image_index no llegue a 10, solo cicle 9.
?C?mo logro con una variable o m?s que en ese momento image_index pase a ser de 9 y no de 10? Para evitar que la bola blanca no salga en esa tirada m?s de una vez.
He tratado pero no me funciona.
Gacais espero su ayuda.
Lo que podr?as hacer es que, cada vez que vas a crear un objeto, comprobar si ya hay alguno de ellos con image_index=10;
Create:
[gml]
cuenta=0;
[/gml]
Donde crees las bolas:
[gml]
repeat(6) /*Hacemos el proceso 6 veces, es decir, el n?mero de bolas que quieres que salgan*/
{
/*Contamos si ya existe alguna blanca*/
with (objeto_bola) {
if (image_index = 10){
/*Ya existe alguna blanca*/
cuenta=1;
}
}
/*Creamos las bolas*/
if (cuenta=1)
{
(instance_create(0,0,objeto_bola)).image_index=floor(random(10));
}
else
{
(instance_create(0,0,objeto_bola)).image_index=floor(random(11));
}
cuenta=0;
}
[/gml]
No puedo probarlo ya que no estoy en Windows, pero espero que captes la idea :)
Hola, que tal!!
La respuesta anterior es una muy buena forma de realizar lo que deseas. Yo solo te tengo un par de observaciones, no se si las hayas considerado:
1. Si tu total de imagenes es de 10, entonces dichas imagenes estan numeradas del 0 al 9.
2. La funcion random te entrega numeros con decimales.
En algunas ocasiones, sobre todo cuando hacia uso del evento draw, si ponia image_index = 4.5; (por ejemplo), yo esperaba que me mostrara la imagen 4 y en realidad me mostraba la 5. Quizas es lo que te este ocurriendo a ti. .
Podrias tambien intentar reducir el random a 8.5 por ejemplo y observar que es lo que sucede.
Saludos!!
Gracias por los c?digos Daz. Estoy poni?ndolos en pr?ctica. Estoy muy seguro de que funcionar?n, de lo contrario, te lo har? saber y qu? fall?.
Tienes raz?n Zigma, lo que acostumbro a usar es floor(random(x)) o ceil(random(x)) as? me redondea abajo o arriba seg?n yo quiera.
Gracias de nuevo y aviso m?s tarde. :D
Hola, puedes usar algo como en tu evento que genera tus instancias:
[gml]var blanca;
blanca=false;
repeat(6)
{
var azar;
azar=floor(random(10-blanca));
if(azar==9)
{
blanca=true;
}
instance_create(posicion_x,posicion_y,objeto_tal).image_index=azar;
}[/gml]
Saludos.
Hola amigos:
La verdad es que sus c?digos deben estar bien pero al aplicarlos en algo me falla, porque se da el caso de que salen dos bolas blancas en dos instancias diferentes. O sea, se repite. El programa no obedece la variable cuenta, talvez hay que ponerle otra condici?n, no s?. Siempre toma en cuenta todas las imagenes del objeto.
Yo pongo la variable cuenta=0 en CREATE del objeto lanzabolas y en cada alarma (cada 20 step) que crea las bolas pongo el c?digo.
Ser? que debo poner estos c?digos en otro evento?
Hola, como le dije a otro usuario, este ejemplo que puse en otro post hace tiempo puede servir para obtener sin repeticion una sublista dentro de una lista de palabras, objetos, rooms, etc... Saludos.
Post:
http://www.comunidadgm.org/index.php?topic=13803.msg68909#msg68909 (http://www.comunidadgm.org/index.php?topic=13803.msg68909#msg68909)
Ejemplo:
http://www.comunidadgm.org/index.php?action=dlattach;topic=13803.0;attach=8346 (http://www.comunidadgm.org/index.php?action=dlattach;topic=13803.0;attach=8346)
Gracias Zeit, en caso la ?nica q no quiero q se repita es una de las im?genes, las dem?s s?pueden. En tu lista, se generan n?meros no repetitivos.
Tatar? de probar cambiando el sprite_index.
Saludos
Prob? as?:
Create:
[gml]white = false;[/gml]
Evento que crea una bola:
[gml]with (instance_create(0, 0, o_bola)) {
image_index = floor(random(10 - other.white));
other.white = (image_index == 9);
}[/gml]
Por supuesto, ten?s que cambiar los ceros en el instance_create por la posici?n que quieras.
Hola, aqui un ejemplo. Saludos.
Por cierto, cambien la subimagen blanca de la posicion 9 al 0 que es mas comodo y use las otras 9 subimagenes de colores en lugar de puras rojas para identificarlas.
Gracias a ambos por ayudarme, pero a?n me falla algo: :'(
En el caso de Zeit, tu engine est? en GM 8.1, no me funka en GM8.
El c?digo de Wadk funciona si las bolas salieran de un solo, pero como cada una sale a cuenta de una alarma distinta, creo q all? es donde me falla. Las hago aparecer con alarmas porque salen de un mismo punto y se mueven a sitios diferentes cada 20 steps(es un efecto del juego que debo respetar).
Su c?digo et? bien s?lo que en cada alarma deja de valer. Pongo aqu? un simple demo para ver si me le dan el remedio, CONTROL para tirar las bolas. Gracias, es poco lo que falta. Espero me ayuden ya con el demo ac?.
Cita de: kaliman777 en Julio 23, 2011, 11:26:02 PM
Gracias a ambos por ayudarme, pero a?n me falla algo: :'(
En el caso de Zeit, tu engine est? en GM 8.1, no me funka en GM8.
Hola, segun yo las funciones de GM8 y GM8.1 son las mismas por lo que deberia funcionar bien. Saludos.
Cita de: Zeit en Julio 23, 2011, 11:34:57 PM
Cita de: kaliman777 en Julio 23, 2011, 11:26:02 PM
Gracias a ambos por ayudarme, pero a?n me falla algo: :'(
En el caso de Zeit, tu engine est? en GM 8.1, no me funka en GM8.
Hola, segun yo las funciones de GM8 y GM8.1 son las mismas por lo que deberia funcionar bien. Saludos.
Pues no, porque tira un error: este archivo pertenece a una versi?n m?s reciente, baje esta versi?n para verlo. :-[
Te dejo el ejemplo que pusiste arreglado. Mi c?digo anterior ten?a un peque?o error :P.
Adem?s lo modifiqu? para usar una sola alarma, y un solo objeto bola. Tener 6 eventos casi iguales es una locura, y tener 6 objetos iguales m?s a?n.
Los id de las bolas se van guardando en el array "ball". Si quer?s, por ejemplo, destru?r la primera bola, pod?s hacer esto:
[gml]with (ball[0]) {
instance_destroy();
}[/gml]
Tambi?n te dejo el ejemplo de Zeit convertido a gmk, aunque no lo pude probar.
Cita de: kaliman777 en Julio 23, 2011, 11:43:26 PM
Cita de: Zeit en Julio 23, 2011, 11:34:57 PM
Cita de: kaliman777 en Julio 23, 2011, 11:26:02 PM
Gracias a ambos por ayudarme, pero a?n me falla algo: :'(
En el caso de Zeit, tu engine est? en GM 8.1, no me funka en GM8.
Hola, segun yo las funciones de GM8 y GM8.1 son las mismas por lo que deberia funcionar bien. Saludos.
Pues no, porque tira un error: este archivo pertenece a una versi?n m?s reciente, baje esta versi?n para verlo. :-[
Hola, no se si funcione pero, si le cambias la extencion de .gm81 a .gmk??? funcionara algun backup .gb1, .gb2, etc???
Cita de: Zeit en Julio 24, 2011, 12:14:10 AM
Cita de: kaliman777 en Julio 23, 2011, 11:43:26 PM
Cita de: Zeit en Julio 23, 2011, 11:34:57 PM
Cita de: kaliman777 en Julio 23, 2011, 11:26:02 PM
Gracias a ambos por ayudarme, pero a?n me falla algo: :'(
En el caso de Zeit, tu engine est? en GM 8.1, no me funka en GM8.
Hola, segun yo las funciones de GM8 y GM8.1 son las mismas por lo que deberia funcionar bien. Saludos.
Pues no, porque tira un error: este archivo pertenece a una versi?n m?s reciente, baje esta versi?n para verlo. :-[
Hola, no se si funcione pero, si le cambias la extencion de .gm81 a .gmk??? funcionara algun backup .gb1, .gb2, etc???
No, imposible. La extensi?n no importa en lo m?s m?nimo: es ?nicamente parte del nombre archivo. Le pongas la extensi?n que le pongas, el formato sigue siendo el mismo.
De todas formas acabo de convertir tu ejemplo a GM8 y subirlo (en el post anterior).
Gracias mil, Zeit y Wadk, he aplicado sus c?digos y me est?n funcionando.
Saludos,
Hola, que bueno que te sirvio mi ejemplo pero tengo una duda, son necesarias todas las instancias para las 6 bolas??? quiero decir, es necesario el objeto bola??? te lo pregunto por que puedes dibujar todas las bolas usando solo el objeto control, es decir, con solo una instancia. Saludos.
S?, Zeit:
Tengo que dibujar las 6 instancias, como 6 objetos diferentes de igual comportamiento, la raz?n es que para los c?digos de pagos (score), tengo m?s de 700 combinaciones posibles y comparo cada objeto con otros 8. Adem?s cada objeto s?lo debe producir una bola y esta tiene un efecto programado, y otros comportamientos. De hecho son creadas todas en un mismo punto y de ah? se distribuyen como un bingo. De hecho el juego en un tipo de bingo moderno de 10 bolas+una comod?n.
Siquieres te paso el juego completo.
Ser?a bueno, porque me sirves de mentor para que me le hagas algunas cr?ticas o sugerencias.
Te agradezco, an?mate y tendr?s tus cr?ditos, ya est? 99% full.
Saludos 8)