Bueno,esta es otra de mis superfamosas preguntas :-[, y va de que en el videojuego PIXELES DE ANTAÑO (Cosita especial añadida para los fans de CGM :)) estamos desarollando una parte de PING PONG. He conseguido hacer powerUps,que funcionen,que la bola se mueva,etc. Y me gustaría saber si hay alguna manera de que el juego detecte que "palito" ha dado ultimo a la bola antes de que esta toque el powerUp
Gracias de antemano :D
PD: Dejo el deitable adjunto,para que podáis ayudarme :P
Supongamos una variable: "ULTIMO" en el objeto de la bola.
Si tienes dos objetos distintos para cada palito, es simple, agrega colision con cada uno y haz que se modifique esa variable por "1" o por "2", entonces vas a saber cual fue el ultimo.
Si usas un solo objeto para los dos palitos, lo que podrias hacer es hacer que en la colision con el palito verifique en que estado esta esa variable, entonces si esta en "1", que se ponga en "2", y si ya esta en "2", que se ponga en "1".
create una variable global:
global.Golpeador=noone;
luego cuando un jugador golpee la pelota añadir*:
global.Golpeador=id;
Con esa variable vas a poder usarla para afectar directamente una instancia algo asi:
if instance_exists(global.Golpeador)
{
with(global.Golpeador)
{
//lo que esta aca adentro le afecta al la instancia con el ultimo toque
powerUp=1;
}
}
*podes hacelo mediante comprobacion de colision o comprobando la coordenadas de la pelota:
es ultima se puede hace algo asi:
if (Obj_Bola.x<Obj_Bola.x+16) {global.Golpeador=id;}
1o: GRACIAS POR RESPONDER TAN RAPIDO :) :) :)
2o: ME HA SURGIDO OTRA DUDA,COMO HAGO EN GML especificar que es una var :-[?
Me gustaría poner que si la variable ULTIMO es 1(por ejemplo) el objeto PowerUp vaya directamente hacia el Palo1
Cita de: romon_28 en Junio 26, 2012, 01:54:13 PM
create una variable global:
global.Golpeador=noone;
luego cuando un jugador golpee la pelota añadir*:
global.Golpeador=id;
Con esa variable vas a poder usarla para afectar directamente una instancia algo asi:
if instance_exists(global.Golpeador)
{
with(global.Golpeador)
{
//lo que esta aca adentro le afecta al la instancia con el ultimo toque
powerUp=1;
}
}
*podes hacelo mediante comprobacion de colision o comprobando la coordenadas de la pelota:
es ultima se puede hace algo asi:
if (Obj_Bola.x<Obj_Bola.x+16) {global.Golpeador=id;}
Ya te respondio la duda y es una genial idea!
yo pongo una variable, por ejemplo "ply" y cuando uno toca la bola le pongo un valor y cuando la toca el otro, pues otro valor xD y para lo que luego quieras (ejemplo pillar un item para saber quién lo pilla, pues le pones un if con la variable esa, para saber quién fue el último que tocó la bola.
PD: ni me he leido las respuestas de los otros xd
Primero de todo,gracias por las respuestas,me agrada ver que no paran de ayudar a los otros :D.
Luego,he usado lo de poner una variable y eso, y cambiar el valor cada vez,y al final me ha salido algo así:
if global.golpeador=1;
{
sprite_replace_sprite(Palo1Normal,Palo1Largo)
}
else
{
sprite_replace_sprite(Palo2Normal,Palo2Largo);
}
No se si es correcto,pero la función sprite_replace_sprite sirve para cambiar un sprite a otro ????
Lo malo,es que cuando intento iniciar el juego,me sale esto:
CitarFATAL ERROR in
action number 1
of Collision Event with object PowerUp1
for object obj.Bola:
COMPILATION ERROR in code action
Error in code at line 5:
else
^
at position 2: Unexpected symbol in expression.
Lo he revisado con lo que he podido,pero no se que hacer :'(
PD: Si el código está mal,por favor ponedme el correcto :-[
PD2: Me gustaría poner el editable,pero no se porque,desde mi portátil no me deja pasar los archivos GMK. Alguna idea? (Uso windows 7)
pk no pasas el editable y te lo miro si quieres? xd
Cita de: SobacoEnLlamas en Junio 29, 2012, 12:39:31 PM
pk no pasas el editable y te lo miro si quieres? xd
No has leído el PD2,verdad :-X?
no te deja pasar el qué a donde o a qué? porque no entendí eso... guardalo y lo subes donde te plazca, no hay misterio, gmk o el que te salga... o a a las malas sube el binario y ya lo rebiento yo mismo xD
Es decir, no podía pasar al USB el editable ( el archivo se llama GMK) para desde ahí pasarlo de este ordenador aqui. Un lio,la verdad :-X.
Ya esta pasado,se descarga arriba del todo :)
ah vale... es porque no tienes internet en el pc donde lo haces?.. uf pues... chungo, pero probaste lo que te dije? es algo muy muy simple
Bueno,vuelo a resuirgir este tema,pero sigo sin solución:
Lo que he hecho ha sido crear una variable global llamada golpeador, y dependieno de quien le da el valor cambia a 1,2o 3. El problema viene cuando quiero que se cambie el sprite del palo por uno mas largo. Que código puedo usar para que sea poosible?
Podes bajarte la extension Extreme GML y utilizar el change_sprite(spr_speed) o simplemente cambiar el sprite_index=spr_detuobjeto