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
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.
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)
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]
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 ==.
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 ==.
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