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

91
No, no.
No va en Step, sino en el evento de la tecla que hace de dirección, ya sea para la izquierda o para la derecha.

Y si, es x-=1, y x+=1 respectivamente puesto que se suman al valor anterior, no lo establece, como lo haría x = -1

Los códigos de hace rato pueden traducirse así con acciones:





EDIT: dejo mi respuesta, de todas formas a ver, si te sirve :P
92
Si, debes verificar su posicion, por ejemplo:

Verifica si el personaje está en una posicion mayor a 0.
[GML]
if (x > 0) // si el personaje no se sale del limite izquierdo de la pantalla
{
   x-=1; // mueve a la izquierda
}
[/GML]
Luego la condición de arriba puede adaptarse para el limite derecho con:
[GML]
if (x < room_width) // si el personaje no se sale del limite derecho de la pantalla
{
   x +=1; // mueve a la derecha
}
[/GML]

Saludos!
93
Juegos en desarrollo / Re:guerra de smillies
Marzo 02, 2013, 08:42:19 PM
Wow! :D
Llegué hasta el principio de la tercer misión, de la moticicleta y debo decir que me encantó!
La jugabilidad es super genial, tiene ese estilo a Metal Slug, una jugabilidad bien arcade

Sinceramente quedé... Wow!
Buen trabajo! es un excelente trabajo! :)
94
Hmm, entonces seguramente hay un código por ahí que causa algún conflicto. Personalmente necesitaría ver el editable para checkarlo mejor.

-Si, si puede cambiar el estado solido. Solo debes ir a la pestaña "Control" y colocar el primer cubo que dice VAR, que es completamente gris.
Colocas en Variable: solid
y en Value: true

Eso haría que cambie.
95
Estaría bueno si pudieras colocar el código de colision de las escaleras, porque así como así podrían ser varias cosas lo que provoquen el problema. Podría ser que no sean solidas, o que tenga un parent incorrecto, por ejemplo.
96
Hay distintas formas de hacerlo, pero en vista que utilizas varios objetos, y cómo se me ha ocurrido la solucion, la haría de la siguiente forma, sentencias IF anidadas:

if (P1_obj.tipo<1)
   P1_obj.tipo = 1;
else
   if (P2_obj.tipo<1)
       P2_obj.tipo = 1;
   else
      if (P3_obj.tipo<1)
          P3_obj.tipo = 1;
      else
          if (P4_obj.tipo<1)
             P4_obj.tipo = 1;
          else
              if (P5_obj.tipo<1)
                 P5_obj.tipo = 1;

entonces verifica si el primer pozo está vacio, sino lo está verifica el segundo pozo, sino el tercero y así hasta el quinto pozo. Verifica si funciona mi idea.
Saludos!
97
De hecho puede evitar el uso de alarmas. Sin embargo el uso de una alarma no hará que se sobrecargue el juego en lo más mínimo.
Pero si te sirve, puede simular una, con una variable contador, que llegado determinado valor activa la variable "Puede" en verdadero.
Algo asi:
Evento Create:
contador = 0;
puede = false;

Evento Step:
if (contador < 90) // 90, serian aproximadamente 3 segundos, ya que son 30 steps por segundo
   contador += 1;

if (contador >= 90)
puede = true;

Y ya con eso te evitarías usar una alarma, pero como digo, no creo que sea una gran carga utilizar un evento alarm, además de que puede dejar tu programa más entendible.
Saludos!
98
Preguntas y respuestas / Re:Más de 1 barra de vida
Enero 29, 2013, 12:07:42 AM
Efectivamente, colocas en el argumento "amount" la variable que hará que se llene o vacíe la barra.

draw_healthbar(x1,y1,x2,y2,amount,backcol,mincol,maxcol,direction,showback,showborder)

Yo recomiendo que si vas a usarla como una barra de energía extra para el personaje, por ejemplo, la declares como una global.
99
Eso sucede si has intentado utilizar el Script tal y como está escrito más arriba. Puesto que a pesar de que está declarada, no está inicializada. Es decir, no tiene un valor, a menos claro que entre en el cuerpo de While, pero en caso contrario si no cumple la condición no entraría nunca, lo cual dejaría a x2 sin valor, y es en esos casos donde no reconoce dicha variable.
100
Bastante interesante el debate.
Me había topado, haciendo el juego, con una desincronización con los items agarrables, como ser por ejemplo las monedas.
Y mi juego solamente tiene 2 jugadores, es decir, el máximo es de 2, el Servidor y el Cliente.
Supongo que el mejor método sería el de Wadk, o no? Digo porque no son una gran cantidad de jugadores...
101
Había usado lo que coloqué y funcionaba bien, si se ponia +1 o -1 en el id que se enviaba.
Por ejemplo:
Citarclearbuffer();
writebyte(6);
writeuint(id+1);
writeshort(x);
writeshort(y);
sendmessage(global.tcp_cliente);
-Pero claro pensé que algo como eso estaría mal y podría afectar en un futuro.

Usé el metodo de Wadk, que es el que propuso Texic, y que no sabía como aplicarlo, así que gracias por contestar.

Cita de: Texic en Enero 09, 2013, 09:03:37 PM
Es para una bala? Silver, es mejor enviar la dirección, la velocidad y las coordenadas iniciales en el byte y asignarlos al crear, que el cliente saque sus propios cálculos, sino es un mambrollo de datos volando de un lado a otro y jamás te va a funcionar bien en wan

Si, son para disparos. Que el cliente o el servidor dispare y se vea en la otra pantalla.
Ok haré eso que dices así no hay tanto "embrollo de datos" haha

102
Saludos again!
Interesante debate, lastima que no entendí mucho el final :-[

Em... bueno de la forma en que yo lo programé era de la siguiente forma:
Al presionar el boton X, el arma dispara, entonces en ese momento envia el byte al cliente indicando que debe crear una instancia de bala:
Citar
clearbuffer();
writebyte(5);
sendmessage(global.tcp_cliente);
En el objeto que recibe los datos quedó así:
Citar
case 5:
   disparo = instance_create(0,0,disparo);
break;
Luego el disparo del servidor enviaba su identificador, la coordenada X e Y:
Citar
clearbuffer();
writebyte(6);
writeuint(id);
writeshort(x);
writeshort(y);
sendmessage(global.tcp_cliente);
Despues el objeto que recibe los datos leía estas coordeanadas, con:
Citar
case 6:
     disp = readuint();
     disp.x = readshort();
     disp.y = readshort();

Esa es la forma que opté por hacer de acuerdo a la primera respuesta de Ferhand.

Ahora, cómo implementaría la forma que dices tu, Texic?
103
Hola que tal!
Estoy desarrollando un juego con la 39DLL y mi pregunta es la siguiente:
¿Cuál es el mejor método para recibir coordenadas de varias instancias del mismo objeto?
Según como lo he programado tengo del lado del Servidor un arma que ,obviamente, dispara. Sin embargo el Cliente solo recibe las coordenadas de la última instancia creada por el servidor, es decir, que a la próxima que crea se leen las coordenadas y la ya antes creada queda pegada en la pantalla sin moverse.
Entonces, ¿Cómo podría hacer para que el Cliente lea las coordenadas de todas las instancias que crea el Servidor?
Tenía en mente usar listas o arreglos , pero no sé cómo podría programarlas. Y si es, además, un método efectivo.
Saludos!
104
Hola que tal!
Bueno, si utilizas place_meeting() solo serviría para puntos precisos.
Ahora bien, si quieres checar la colisión en un rango podrías utilizar la función collision_line() o collision_rectangle() o cualquier otra funcion "collision_" que satisfaga tus necesidades.
105
Hoooola, que tal!
he estado jugando un rato, hasta la primera aparición del enemigo Azul supermegaultra gigante, el cual no pude derrotar, luego de 4 o 5 minutos reloj disparandole se me hizo muy aburrido el juego. ¿Qué nivel es?

Bueno noté algunas cosas, que supongo no deberían estar, como ser:
- Algunos bloques, enemigos e inclusive el mismísimo jugador queda por encima de la barra de vida, lo cual pienso, no debería.
-El disparo del jugador traspasa a los enemigos. Luego de saber eso puedes alinearlos en una recta hacia tí y se es fácil ganar los primeros niveles :P

Hmmm , otra cosa, los controles estaban un poco incómodos, manejarlo con las flechas y disparar con el cursor no es muy cómodo que digamos, lo usual para este tipo de juegos son las letras "WASD" para mover y bueno, el cursor para disparar.

luego y por último, hubiese estado bueno alguna otra arma o sonidos o música (que si leí la indicación de "Sin Musica", por si acaso... XD )

Me entretuvo un buen rato, hasta bueno, el enemigo azulote gigante que parece inmortal XD
siendo de tipo Maze puedes aún sacarle mucho provecho como colocar trampas o jugar con la camara y hacer laberintos, muchas cosas :)
es todo, saludos!  :)