Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Silver_light

121
Preguntas y respuestas / Re:como puedo arrastrar un objeto?
Septiembre 18, 2012, 03:57:46 PM
Cita de: WeGame en Septiembre 18, 2012, 03:41:59 PM
En un evento left pressed, coloca el evento "jump to position" y escribe:
en la casilla "x": mouse.x
en la casilla "y": mouse.y
o mouse_x, mouse_y, no recuerdo bien si era punto o barra baja  :-\

saludos ;)
Es de hecho mouse_x y mouse_y.
El inconveniente que plantea esa solución es la siguiente: Solo se ejecutaría para cuando el mouse haga click en la instancia y no en todo el tiempo que lo mantuviera presionado. En ese caso, usaría Left Button, pero este también trae otro inconveniente: que solo se ejecutaría si la instancia siguiera debajo del cursor. Generalmente la velocidad con la que el se mueve la instancia hacia las coordenadas x,y del Mouse es lenta, por lo que la instancia suele quedarse en el camino, por así decirlo, y al quedarse en e camino, dejaría de ejecutarse Left Button, puesto que no estaría debajo del cursor.

Yo propongo otra solución:
Utilizar una variable que indique si está siendo arrastrado, por ejemplo:
Evento create:
[GML]
arrastrar = false;
[/GML]
Luego en el evento Left Pressed, la volvemos verdadera, porque le hicimos click encima;
[GML]
arrastrar = true;
[/GML]
Luego en el evento Step evaluamos si estamos arrastrando el objeto:
[GML]
if (arrastrar)
{
x = mouse_x;
y = mouse_y;
}
[/GML]
Y finalmente cuando dejemos de hacer click, el objeto dejará de seguir el mouse (o ser arrastrado)
Evento Global Left Released:
[GML]
arrastrar = false;
[/GML]

Adjunto un ejemplo, por si las dudas...
Saludos! :)
122
Saludos!
Bueno, el fallo está en el objeto "Esperando" puesto que solo verifica si hay 2 jugadores conectados, una sola vez, esto sucede porque la alarma se ejecuta desde el evento Create y no vuelve a verificarse la condicion que esta en la alarma. Para solucionarlo, haz que se repita nuevamente la alarma:

[GML]
alarm[0] = 20;

if room = inicioconexion
{
if (mplay_player_find() = 2)
  room_goto(room1);
}

[/GML]

Saludos! Nyan! :3
123
Preguntas y respuestas / Re:Reemplazo a gravedad
Septiembre 01, 2012, 09:38:21 PM
Si no vas a usar speed, gravity o direction...
supongo que como mucho podrías utilizar, por ejemplo y+=1 para que "caiga" el personaje, o de última entonces move_contact_solid()...
esas son las formas que se me ocurren de momento.

saludos!
124
Preguntas y respuestas / Re:Problema con collision_rectangle
Septiembre 01, 2012, 02:57:36 AM
apapap...
muchas gracias, ese era el problema!
Gracias por responder :)
125
Saludos!
veran, tengo un problema con la funcion collision_rectangle(), puesto que no cumple con lo que debería hacer, tengo este código en el objeto enemigo, en el evento de colision contra Marisa(Player).

[GML]
if (hspeed > 0)
{
if (collision_rectangle(x-18,y-10,x+5,y+8,marisa,true,true)) // colision caparazon
{
  with(other)
  {
   if (vspeed > 0)
    vspeed = -6;   
  }
}

if (collision_rectangle(x+6,y-8,x+18,y+8,marisa,true,true)) //colision caracol
{
  with(other)
  {
    // Acciones de daño.
  }
}
}
[/GML]

El problema es que se ejecutan las acciones de daño, cuando el personaje colisiona con el caparazón. Lo cual no debería, sino que únicamente deberían cuando colisiona con el caracol.
Hice modificaciones e incluso he dibujado rectángulos para representar las colisiones pero no encuentro el problema.
Saludos!
126
Quizá puedas condicionar el Animation End, con algo como:
Si (sprite == sprite_accion)
  sprite =  sprite_quieto

entonces cuando termina la animacion del sprite, cambia.
No sé si lo hayas intentado...
Saludos!
127
Hi
El concepto del juego se parece como dice el colega Sobaco "...parece un super smash..." y tiene razón Jaja
Me gustó mucho el "prototipo" de batalla, para ser que finalmente estará incluido en el juego tipo GameBoy.
Em... lo gané 7 veces, luché contra todos los contrincantes, inclusive con mi Doppelgänger Haha, es bastante entretenido, el único inconveniente es cuando luchas contra Squirtle puesto que sus ataques al ser celestes como el fondo, no se distinguen demasiado.
pero en fin, me gustó bastante
Suerte!

Saludos  :)
128
Hola, una vez se preguntó algo similar, por el estilo, yo respondí casi lo mismo que Mgbu, y pues las demás respuestas también podrían servirte:
http://www.comunidadgm.org/index.php?topic=10838.msg50450#msg50450

saludos!
129
Pues la única solución que se me ocurre a mi es que dibujes el background como si fuera un sprite, le coloques una profundidad intermedia para que quede por encima del todo, pero no por sobre los datos a dibujar.
Es decir que si los objetos tienen una profundidad (depth) de 0, entonces usarías un objeto para dibujar el fondo por encima, con una profundidad de -1, luego de la linea de código que dibuja el fondo, entonces vas colocando las demás para que dibujen las variables por encima.

saludos!
130
Preguntas y respuestas / Re:Carregar gif(Solucionado)
Agosto 07, 2012, 07:59:00 PM
Pues, se puede hacer de todas formas con el evento Draw, solo debes dibujar el sprite cargado, en el caso del ejemplo sería:

[gml]
draw_sprite(sprite_index,-1,x,y);
[/gml]

Adjunto un ejemplo, por si acaso.
131
Preguntas y respuestas / Re:Carregar gif
Agosto 07, 2012, 05:07:41 PM
Hello's, :)
Estuve probando con las respuestas de aquí mismito... he puesto en imagnumb, el numero de imágenes del Gif, e incluso -1 y cargó perfectamente la animación con la funcion Sprite_add.
Seguramente tengas el image_speed igualado a cero en alguna parte del código.

Adjunto un ejemplo por si lo necesitares...
132
Preguntas y respuestas / Re:Ayuda con draw_line
Julio 27, 2012, 02:45:00 AM
Nop, no se puede...
Pero, para suerte, cuentas con una funcion:
[GML]
collision_line(...);
[/GML]

*Cita el manual* Deteccion de colisiones
133
Preguntas y respuestas / Re:arrays
Julio 23, 2012, 04:59:30 PM
Hello's, mira te explico:

[GML]
if (i2 <= string_length(Dialogo))
{
alarm[0]=10
}
[/GML]

Lo que hace esta porción de código, es ejecutar la alarma 0, mientras i2 sea menor igual a la cantidad de letras que tiene la cadena.
Por ejemplo, dialogo[1] = "hola"... tiene 4 caracteres, entonces la alarma se ejecutará hasta que i2 tenga el mismo valor que caracteres de la cadena, en este caso: 4. En definitiva se ejecutará hasta que i2 sea igual a 4.

Según como yo lo veo debería quedar:
[GML]
i2+=1
// alarm[0]=1 Esta linea se debería quitar.

if (i2 <= string_length(Dialogo))
{
alarm[0]=10
}
[/GML]
Esa linea debería quitarse porque ejecutaría la alarma 0 sin importar si es que faltan o no caracteres de la cadena que debieran ser dibujados.
Saludos!
134
Preguntas y respuestas / Re:place_free - place_empty
Julio 17, 2012, 03:57:41 PM
Dejame citarte lo que dice en el manual traducido:
Citar
place_empty(x,y) Devuelve si la instancia colocada en la posición (x, y) no se encuentra con nadie. Esta función también toma en cuenta las instancias no sólidas.
Funciona para saber si no hay colisión. Digamos que funciona con la posicion próxima de la instancia en donde se utiliza el código.
El problema está en que solo verifica eso si es una instancia, el Mouse al no ser una instancia de ningún objeto, entonces no funciona.
135
Hi!
Mira, estuve checando el editable y el problema es la forma en que tratas de cargar el sonido.
Para cargarlo externamente debes utilizar la funcion sound_add(). Así en todo casi quedaría
[GML]
sonido = sound_add("Bits-Two\Freedom.mp3",0,false);
sound_play(sonido);
[/GML]

El único inconveniente que tiene tu juego, es que por alguna razón no reproduce los mp3. Ahora bien, si conviertes el sonido a otro formato se soluciona el problema. Yo he hecho la prueba de convertirlo a ".wav" y sonaba perfectamente.
Entonces cambié:
[GML]
sonido = sound_add("Bits-Two\Freedom.wav",0,false);
sound_play(sonido);
[/GML]
Y funcionó a la perfección...
Saludos!