Hola gente GM: FELIZ NAVIDAD Y PR?SPERO 2012

Primero:

Event Key Control
[gml]
objeto1=instance_create(10,10,choose(vaca,perro,gato,loro,gallina));
objeto2=instance_create(10,100,choose(vaca,perro,gato,loro,gallina));
objeto3=instance_create(10,200,choose(vaca,perro,gato,loro,gallina));
alarm[0]=20;
[/gml]

Luego quiero que esa alarma lo que haga es que si el objeto 1 y el objeto 2 y el 3 tienen la misma figura (digamos salieron tres vacas). Hacer cosa como global.score+=100.

D?nme ideas concretas. Yo s? que funciona con ifobjeto1.sprite_index=objeto2.sprite_index{}, pero yo quiero llamar objetos directamente por ejemplo si el la vaca sale en la posici?n 10,10 que se cambie por el objeto animado vaca_gif.

Espero alguna ayuda al respecto.  Gracias


La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

Al crear los objetos y asignarles su ID a una variable (En este caso objeto1) puedes modificar lo que tu quieras.

[gml]if objecto1.variable = objecto2.variable {}[/gml]

Ahi modificas "variable" por lo que quieras igualar y listo, ya que ya tienes sus IDs.

Tu idea de los sprites esta bien. Si quieres que sea por coordenadas haz algo como:

[gml]
with object1
{
if x = 10 and y = 10
{
  //Acciones
}
}
[/gml]

Hola Feliz a?o...
Con este codigo veo dificil hacerlo.
objeto1=instance_create(10,10,choose(vaca,perro,gato,loro,gallina));
objeto2=instance_create(10,100,choose(vaca,perro,gato,loro,gallina));
objeto3=instance_create(10,200,choose(vaca,perro,gato,loro,gallina));
alarm[0]=20;


usa este.
Citar
Event create.
instcrea[0]=vaca
instcrea[1]=perro
instcrea[2]=gato
instcrea[3]=loro
instcrea[4]=gallina
//estos son arrays que contendran los objects en un campo de memoria.

ahora mismo event create
ind=round(random(4)); //indice que usara el array, esto puede ir en un event de teclado o alarm si deseas varia el valor del indice.

ahora agrego esto a tu codigo.

objeto1=instance_create(10,10,instcrea[ind]));
objeto2=instance_create(10,100,instcrea[ind]);
objeto3=instance_create(10,200,instcrea[ind]);

ahora solo tengo que comparar los arrays.
if (objeto1.ind=0 and objeto2.ind=0 and objeto2.ind=0)
{global.score+=100}

//basta con comparar los indices por que al final el object creado sera el mismo segun el indice.


#3 Enero 02, 2012, 07:43:05 PM Ultima modificación: Enero 02, 2012, 08:05:08 PM por kaliman777
Muchas gracias a ambos, estoy aplicando a ver qu? me sale mejor.

Hall? este error:

Citar
ahora agrego esto a tu codigo.

objeto1=instance_create(10,10,instcrea[ind]));
objeto2=instance_create(10,100,instcrea[ind]);
objeto3=instance_create(10,200,instcrea[ind]);

Todos los objetos salen con el mismo sprite, siempre!!! o, sea 3 vacas o tres loros, etc. El round random no est? trabajando nadita.

Saludos!!! 8)

La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

Pod?s usar object_index, as?:
[gml]if (objeto1.object_index == objeto2.object_index == objeto3.object_index) {
   // Los objetos son iguales.
} else {
   // Los objetos son distintos.
}[/gml]
Y...
[gml]if (objeto1.object_index == vaca) {
   // El primer objeto es una vaca.
}[/gml]
Vim.

#5 Enero 02, 2012, 08:28:11 PM Ultima modificación: Enero 02, 2012, 08:34:59 PM por kaliman777
Cita de: Wadk en Enero 02, 2012, 07:45:38 PM
Pod?s usar object_index, as?:
[gml]if (objeto1.object_index == objeto2.object_index == objeto3.object_index) {
   // Los objetos son iguales.
} else {
   // Los objetos son distintos.
}[/gml]
Y...
[gml]if (objeto1.object_index == vaca) {
   // El primer objeto es una vaca.
}[/gml]

Prob? tu c?digo Wadk y result? que: cuando el objeto1==al 3 pero no al 2, hace lo mismo que si los tres fueran iguales. Estoy comprobando, pero parece que debo usar anden lugar de ==.
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

Lo siento, me confund? con otro lenguaje. El c?digo ser?a as?:
[gml]if (objeto1.object_index == objeto2.object_index && objeto2.object_index == objeto3.object_index) {
    // Los objetos son iguales.
} else {
    // Los objetos son distintos.
}[/gml]
Como dec?s, hay que usar and (que tambi?n se puede escribir &&), pero no en lugar de ==.
Vim.

Cita de: Wadk en Enero 02, 2012, 10:41:32 PM
Lo siento, me confund? con otro lenguaje. El c?digo ser?a as?:
[gml]if (objeto1.object_index == objeto2.object_index && objeto2.object_index == objeto3.object_index) {
    // Los objetos son iguales.
} else {
    // Los objetos son distintos.
}[/gml]
Como dec?s, hay que usar and (que tambi?n se puede escribir &&), pero no en lugar de ==.

Mil gracias, ahora funciona!! Prosigo con el jueguito :P
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.