Hola soy nuevo en esto del lenguaje GM y no se mucho de echo solo se lo basico de if y el unico codigo que conosco es el sprite_index xDDDDDDDDDDDDDDD entonces ahora quiero saber como comprobar si un objeto "Jugador" esta colisionando con otro objeto "Enemigo" y si es haci cambiar el objeto (o instancia) del "Jugador" eso es, espero me puedan resolver esta alluda gracias :D
Puedes usar el evento "colisión con" y eliges el objeto, y ahí escribes lo que suceda.
Para hacerlo por código es
[gml]if (place_meeting(x, y, objetoAColisionar)) {
......
}[/gml]
y a continuacion lo que pasará. Ambos casos hacen lo mismo, yo suelo usar el primero para hacer la colisión de los ataques con el personaje y ahí restarle vida, y el segundo para todo lo demás (chequear que al moverme no haya un muro delante, etc)
Cita de: DarkKRuleR en Febrero 05, 2014, 09:52:43 PM
Puedes usar el evento "colisión con" y eliges el objeto, y ahí escribes lo que suceda.
Para hacerlo por código es
[gml]if (place_meeting(x, y, objetoAColisionar)) {
......
}[/gml]
y a continuacion lo que pasará. Ambos casos hacen lo mismo, yo suelo usar el primero para hacer la colisión de los ataques con el personaje y ahí restarle vida, y el segundo para todo lo demás (chequear que al moverme no haya un muro delante, etc)
Muchas gracias, pero como ago para cambiar el objeto o instancia ?
Realmente no necesitas hacerlo en la mayoría de casos, pero eso es algo de lo que te irás dando cuenta cuando ganes experiencia. Para cambiar:
[gml]instance_create(x, y, objACambiar);
instance_destroy();[/gml]
Con eso creas el objeto objACambiar en la misma posicion del objeto que lo ejecuta, y entonces destruye el actual.
Cita de: DarkKRuleR en Febrero 05, 2014, 10:27:51 PM
Realmente no necesitas hacerlo en la mayoría de casos, pero eso es algo de lo que te irás dando cuenta cuando ganes experiencia. Para cambiar:
[gml]instance_create(x, y, objACambiar);
instance_destroy();[/gml]
Con eso creas el objeto objACambiar en la misma posicion del objeto que lo ejecuta, y entonces destruye el actual.
ajkajka gracias la verdad es que como no se programar tengo una lista enorme de acciones en cada objeto y por lo tanto cada vez que abro "Jugador_Obj" tengo que esperar a que se abra por que se tarda en cargar todas las acciones, por lo tanto me gusta crear multiples objetos como "JugadorAtack_Obj" Para que no se sature tanto con acciones y no se demore tanto en abrir :c
Quizás ahora te sirva, yo cuando empecé siempre hacía eso, pero cuando vayas aprendiendo más dejarás de hacerlo.
Yo tengo UN objeto personaje, el cual salta, ataca, retrocede al ser golpeado, se agarra a paredes... TODO (aunque lo hago todo por código). Lo mismo para el enemigo, 1 solo objeto enemigo. Hay excepciones: para los ataques como balas, bolas de fuego, etc, sí hay que hacer un objeto a parte, pues el ataque será lanzado hacia el enemigo, por ejemplo. o si el enemigo se teletransporta y deja una imagen borrosa de él, eso también puede ser un objeto a parte, que sea creado al momento de teletransportarse :)
Poco a poco tienes que ir optimizando objetos. Si puedes hacer que UN objeto lo haga todo mejor, en vez de muchos. Por ejemplo, yo al principio tenía un objeto para el enemigo, y al morir lo destruía y creaba el enemigo_muerto, el cual era un objeto con el sprite del enemigo muriendose, y se destruía al acabar la animación. Todo eso puede hacerlo el MISMO objeto enemigo. El truco son las variables, como una variable muerto = false, que se ponga a true al morir, y segun su valor el objeto enemigo hace una cosa u otra. Lo mismo para todo.