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 - king195

91
Hay mucha materia de por medio:

point_distance()<500;

Eso quiere decir básicamente que si la distancia entre tu personaje y la del NPC es menor a 500 se abrirá el recuadro de dialogo.

En el caso de que sea justo cuando colisiona con su mascara es tan fácil como poner un "place_meeting" y a correr.

Y a partir de eso creas la condicion y empiezas a picar codigo en un evento Draw como este

draw_text_ext(x,y,"Hola",-1,200);

Si no me equivoco de sintaxis con eso le dices primero donde quieres que se posicione el texto, le indicas lo que va a haber escrito, la separación entre lineas(la normal es -1)  y 200 son los pixeles entre linea y linea.(suelo usar draw_text_ext por que basicamente te permite modificar más el texto que con un simple "draw_text")

Luego si quieres que el texto presentado este en un rectangulo o un sprite, sólo tienes que aplicar un sistema similar:

draw_rectangle();
draw_sprite();

Siempre con el draw si quieres dibujar algo por pantalla, incluso si quieres indicar una variable sería así:

draw_text(x,y,"Nivel: "+string(global.nivel));

Es cuestión de ir manejandose, a diferencia de C u otros lenguajes de programación, GML ya trae muchas funciones prefabricadas donde sólo debes aplicarlas, te facilita el curro del copiar y pegar un montón de lineas innecesarias y así centrarte sólo en la materia que quieres reproducir.
92
Propuestas y soporte / Re:Foro en vivo
Octubre 05, 2014, 12:18:25 PM
Con un poco de Ajax o javascript se podría conseguir algo. Con Ajax se hacen básicamente los Chats, ya que Ajax interactua con el servidor de forma transparente, de esta forma enseña al lado cliente lo que quiere sin necesidad de estar apretando F5 para actualizar la pagina estática. Imaginalo, si cada vez que escribes una cosa en un chat de una pagina HTML tienes que estar apretando F5 sería un verdadero caos.  Lo que tu pides es un sistema similar a lo que vendría ser un chat, escribes algo y se genera sólo por pantalla.
93
Preguntas y respuestas / Re:Ordenar Imagen
Octubre 04, 2014, 08:52:33 PM
Cita de: penumbra en Octubre 04, 2014, 08:33:39 PM
Desde GMS no creo que se pueda ordenar, pero (esto lo digo desde mi ignorancia, ya que no estoy seguro) creo que no es bueno meterse a modificar una página de textura manualmente, ya que (creo) GMS lleva un control interno de las coordenadas de cada gráfico para saber a qué objeto corresponde cada textura. Incluso si se pudiera, yo no lo aconsejaría, pues me figuro que es bastante enredado hacerlo (a menos que haya un programa que lo haga en automático)

De lo que estoy seguro es que desde GM:S se pueden distribuír los gráficos en distintas páginas de textura (indicar qué imagen va en que página), pero no tengo idea de cómo indicarle qué posición ocupa un gráfico en una de esas páginas. Quizás mediante la opción de Tile horizontal y vertical en las propiedades del sprite, pero no creo.

http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/more%20about%20backgrounds/texture%20pages.html

https://www.yoyogames.com/tech_blog/30

A lo mejor se refiere a que HTML5 le genera un Padding o un borde, cosa que perfectamente se puede manejar si hay un CSS de por medio, pero no dice mucho tampoco como para enterarnos de cual puede ser el problema.
94
Preguntas y respuestas / Re:Ordenar Imagen
Octubre 04, 2014, 06:56:15 PM
Espacios en blanco? Nunca he trabajado con algo compilado desde game maker a HTML5. Que archivos te genera? podrías especificarlo más?

Yo trabajo dia a dia con HTML5 pero especificas poca cosa. Te genera algún CSS?
95
Para que creas otra alarma para hacer que se repita alarma[0]? Yo lo haría mucho más simple

if instance_number(obj_enemigo) < 1
{
repeat(1 + global.nivel)
    {
    instance_create(-16 - random(64), (room_height / 2) - 80 + random(160), obj_enemigo);
    instance_create((room_width / 2) - 64 + random(128), -16 - random(64), obj_enemigo);
    }
global.nivel += 1;
}
alarm[0] = room_speed;


Y de paso tienes una variable global que te indica en que nivel estas. Puedes moldearlo a lo que tu busques, pero vaya, no tiene mucho sentido poner una Alarma si después usas otra para activar la 0. Para eso pon todo dentro de 1 alarma y a correr.

Eso lo que hace es ir repitiéndose y a parte de sumar niveles genera más instancias cada vez de forma infinita o hasta donde tu le indiques.

Edito: No te lo tomes a mal si alguien no te responde al momento a tu pregunta... pero esto es un foro, todos los foros son iguales, no hay gente a la que se le paga para que te responda a ti u a otro usuario, ten paciencia nada más...
96
Con un poco de trabajo se pueden conseguir cosas guapas en Pixel Art, a veces es mejor usar tus propios diseños antes que los de Open Game Art por que ya sabes por donde van los tiros en tu diseño y es más fácil moldearlo a tu estilo.


Antes



Despues


Aun lo sigo diseñando pero es un pequeño ejemplo de que también podéis ir sin miedo a diseñar vuestras propias creaciones.
97
Cita de: Castejoncio en Octubre 01, 2014, 05:54:08 PM
Gracias por la respuesta!!!

El caso es que estoy empezando poco a poco introduciendo GML a lo que voy haciendo... Y el tema era que sobre la base que tengo, que se puede hacer para que no me ocurra eso... Que me esta fastidiando bastante.

Gracias de nuevo y si alguien mas se anima, estaría bien.

Nos vemos!

Te he mandado un Mensaje privado con el link de todo el código hecho.  No es exactamente igual a lo que tenias, pero el corazón del código esta hecho, solo tienes que amasarlo a tu modo o a lo que quieras.
98
Hacer Sprites 2D no es difícil, sólo hay que echarle ganas, yo por ejemplo he ido haciendo cosas como esta que aun esta en pleno proceso:



U esta



Con un toque Isometrico, pero sigue siendo vista vertical sin más. No haréis todos los diseños en 2 dias, básicamente por que lleva tiempo estar haciendo cada cosita a su tiempo, pero con ganas te pueden salir cosas muy guapas y 2D.
99
Lo primero que te recomiendo es que dejes de usar D&D, es una verdadera basura para leer el código. Empieza a hacerlo todo de nuevo desde cero a base de código, es la forma de dejarlo lo más pulido posible y cómodo.


//Step event del personaje


//View-Player
view_xview[0]=x-160;

KEY_LEFT = keyboard_check(ord('A'));
KEY_UP = keyboard_check(ord('W'));
KEY_DOWN = keyboard_check(ord('S'));
KEY_RIGHT = keyboard_check(ord('D'));
 
if !(place_meeting(x-4,y,obj_colision_padre)){
    if (KEY_LEFT){
        x -= 2;
    }
}
       
if !(place_meeting(x+4,y,obj_colision_padre)){
    if (KEY_RIGHT){
        x += 2;
    }
}

if (!KEY_LEFT and !KEY_RIGHT){
    x += 0;
}


Eso para empezar irá bien. Con eso que te pase directamente no necesitas usar ni objetos Solidos, ni place_free, ni cosas raras, es únicamente place_meeting y lo que vaya a hacer, es decir, si tiene un objeto colisionador no puede seguir caminando.

Empieza por hacer eso horizontalmente y pasar el código D&D a lineas de código dentro un evento.
100
Preguntas y respuestas / Reiniciar Path?
Octubre 01, 2014, 02:57:50 PM
Vale, el tema es que tengo 4 enemigos con distintos paths, cuando el jugador se acerca a uno de los enemigos teniendo en cuenta su distancia pues el enemigo cambia de path haciendo uso del tradicional

/Step Event
if alert = 1{
grid = mp_grid_create(0,0,room_width/32,room_height/32,32,32);
path = path_add();
mp_grid_add_instances(grid,obj_parent_col,1);
mp_grid_path(grid,path,x,y,obj_player.x,obj_player.y,1);
path_start(path,1,"",1);
}


Y si no esta cerca es decir "alert = 0", pues cambia al path original que tenia antes de serie.

El tema es como decirle a cada instancia del objeto enemigo que cambie a su path correcto, ya que cada instancia del enemigo tiene su "Path de patrulla" y no estan colocados en la misma zona de la habitación. Cuando hace el cambio va perfecto ya que hace lo que le digo, que es basicamente seguir al personaje hasta que este a cierta distancia, pero cuando ya no lo esta ya no vuelve a su path original, se queda quieto sin mas.


Para ponerle los paths a cada instancia del enemigo he usado el Creation_Code de los enemigos, uno por uno.
101
Preguntas y respuestas / Alguien sabe algo sobre Brushcity?
Septiembre 25, 2014, 01:36:57 PM
He estado indagando y me he encontrado con una especie de web china/inglesa que se dedica a hacer Assets se supone, pero sus precios son demasiado bajos comparado con el resto de webs, alguien sabe algo al respecto sobre esta web? Es de confianza?

http://brushcity.com/index.php?route=product/product&product_id=6890

No se.. he visto por ahí incluso copias de Assets de otros juegos estilo Hearthstone etc y me he quedado un poco loco, que se supone que es esta web?

Los diseños son impresionantes todo hay que decirlo.
102
Preguntas y respuestas / Re:Reutilizar alfa de un sprite?
Septiembre 22, 2014, 08:50:51 PM
Cita de: Killer en Septiembre 22, 2014, 08:41:00 PM
Las condiciones en los if hacen que pasado xstart+2000 alfa1 no cambie, esto debido a que cualquier coordenada sea mayor a xstart+2000 también sera mayor que xstart+1020, ambos if se ejecutan y alfa1 queda con el mismo valor que el step anterior.

Cambia las condiciones en el primer if para que también dependa si x es menor que xstart+2000.

Ahá, pensé que quedaría el último en ejecutarse, lo arreglaré, gracias.
103
Preguntas y respuestas / Reutilizar alfa de un sprite?
Septiembre 22, 2014, 08:26:59 PM
Mmmm... he tenido un problema, cuando dibujo un Sprite lo hago con un efecto desvanecer pero cuando intento hacerlo a la inversa no funciona, es como si el anterior se utilizase una vez y no hiciese el nuevo efecto.

Evento Step
if obj_player. x>(xstart+1020){
    if (alfa1 <= 0.7){
        alfa1 += 0.005;
    }
}

if obj_player. x>(xstart+2000){
    if (alfa1 > 0){
        alfa1 -= 0.005;
    }
}


Evento Draw
draw_set_font(5);
draw_set_alpha(alfa1);//alfa1


  if obj_player. x>(xstart+1020) {
  draw_set_colour(make_colour_rgb(1,1,1));  draw_rectangle(view_xview[view_current]+0,view_yview[view_current]+50,view_xview[view_current]+800,view_yview[view_current]+140,0);
104
Preguntas y respuestas / Re:Efecto Slowmotion?
Septiembre 22, 2014, 12:05:48 AM
Cita de: kostra en Septiembre 21, 2014, 11:02:21 PM
leido lo leido, yo recomiendo esa respuesta que te dieron del master_speed, en mi opinión creo que es la mejor, pues así puedes controlar qué cambia de velocidad y qué no y para cambiarlo tansolo debes de cambiar el valor de esa ÚNICA variable, claro, mejor que sea global no? xd

No estas contando en que trabajo con gravedad, no sólo con la velocidad, eso es otro parámetro que en salto pues molesta bastante.
105
Preguntas y respuestas / Re:Efecto Slowmotion?
Septiembre 21, 2014, 01:37:25 PM
Cita de: penumbra en Septiembre 20, 2014, 10:57:42 PM
Mmm yo no implementaría el slowmotion como lo haces, creo que lo estás enredando mucho. No hay necesidad de crear un objeto slow adicional que luego se destruya en una alarma, esto sólo hace más engorrosa la implementación.

Cita de: king195 en Septiembre 20, 2014, 10:20:53 PM
Lo que querría es que cuando pasen esos 4 segundos el personaje no cambie el slowmotion hasta que toque el suelo en el caso de que estuviese saltando(es decir "!ground"), esa sería una gran idea para quitarme todo este lió entre variables.
Estás usando dos variables (noground y yesground) cuando una sola variable puede servir para saber si se pisa (noground = false) o no (noground = true) el suelo.

En el evento Alarma del slowmotion (para que funcione, el jugador debe hacer que noground sea falsa si está tocando el suelo)
[gml]
if (global.slow == true) and global.noground == false){
     //apagar slowmotion
     // ¿destruir obj_slowmotion?
}[/gml]

En el evento STEP del jugador
[gml]
if (global.slow == true) and global.noground == false)
{
      //apagar slowmotion
      // ¿destruir obj_slowmotion?
      // if instance_exists(obj_slowmotion)
      // with (obj_slowmotion) { instance_destroy() }
}[/gml]
Mientras no toque el suelo (si slowmotion está activa) se mantiene slowmotion.

Mmmm.. ya... pero ahora no se desactiva el Slow y se queda puesto de forma infinita D: Puse en el Create

alarm[0]= room_speed *4;

Lo que viene siendo que en 4 segundos se active lo que haya en el Alarm, sin embargo aunque ponga lo que tu mismo especificaste no funciona.