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

196
Cita de: kostra en Agosto 31, 2015, 02:00:28 PM
es decir... sep es el ancho de la separacion entre letra y letra, y sep es el ancho de toda la linea?? :S



con w siempre mayor o igual a string_width_ext.

¿Te queda claro ahora?

197
Hasta donde sé, no se puede con GML pero tal vez una extensión pueda hacerlo. Hasta ahora no he encontrado alguna que lo haga y si tú la encuentras por favor no dudes en avisar.
198
Probé tu código y lo que hace es dibujar una línea entre la posición previa del mouse y la actual. Como la posición del mouse se actualiza en cada step, si no mueves el mouse en cada step va a desaparecer la línea al ser igual la última posición del mouse con la actual, así que dudo que ese código te sirva de algo.

Respecto a tu pregunta concreta, tienes que hacer un ciclo que recorra las coordenadas de cada línea y compruebe si la línea formada por esas coordenadas colisiona con el jugador. Algo como esto:

colision=false;//indica si hay una línea que colisiona con el jugador
//l es un arreglo de nlineas filas y 4 columnas que guarda para cada línea las coordenadas de sus extremos
//las columnas 0 a 3 de l representan las coordenadas x1,y1,x2,y2 de una línea, respectivamente
for(i=0;i<nlineas;i+=1)
    {
    if collision_line(l[i,0],l[i,1],l[i,2],l[i,3],id,true,false)
        colision=true;
    }
199
Preguntas y respuestas / Re:Dibujar sprites sólidos
Agosto 30, 2015, 08:17:13 PM
Aquí hay una orientación:

https://www.youtube.com/watch?v=QT3pix0m4wg
200
No he trabajado con el motor físico de GML pero por lo que he leído lo que debieras hacer es:

- Guardar en un arreglo o estructura de datos las coordenadas del polígono que define la forma de la figura que el jugador quiere crear (el cual debe ser convexo).
- Crear un fixture con physics_fixture_create.
- Definir su forma con physics_fixture_set_polygon_shape y physics_fixture_add_point.
- Definir sus propiedades físicas con physics_fixture_set_density, physics_fixture_set_friction, etc.
- Hacer un bind con la instancia que lo va a representar en el juego mediante physics_fixture_bind
201
Si con "chocar" te refieres a poder detectar si el jugador colisiona con una línea, usa la función collision_line. Tendrás que usarla por cada línea que quieras comprobar.
202
¿Qué quieres decir con que "colisione correctamente"? Tienes que describir con detalle cuál es el problema.
203
Puedes usar la acción Test Expression en la pestaña Control para calcular la distancia entre A y B:

Objeto A
Evento step
Acción Test Expression:
distance_to_object(objeto_B)>=100 and distance_to_object(objeto_B)<=200

A continuación de esa acción debes indicar el movimiento que quieres hacer en caso de que la expresión en Test Expression sea verdadera.
204
Cita de: penumbra en Agosto 29, 2015, 09:38:22 PM
(...) permite controlar la separación o interlineado, por lo que ningún parámetro me parece inútil.

Sí, en el caso de draw_text_ext. Pero para string_width_ext el argumento sep es innecesario.
205
Cita de: kostra en Agosto 29, 2015, 12:26:48 PM
ya pero, por mucho que estén "hermanadas" (nunca oi esa palabra jaja), si no devuelve nada mas que un ancho, ese dato no es inservible completamente, hasta para usarlas junto a esas funciones que has dicho?

Me empieza a dar dolores de cabeza esta funcion que probablemente ni use jaja, pero me he puesto el proposito de estudiarme TODO el manual cueste lo que cueste xD Gracias en serio por todo ese esfuerzo ^^

¿Te parece inservible saber el ancho en pixeles que ocupa un texto? Mira el ejemplo que sale en la descripción de string_width_ext del manual.
206
En Room properties, en la pestaña objects, se puede indicar la escala X, Y, rotación, alfa, color blend o hacer "flip" X o Y de la instancia de un objeto que pinches con el mouse en el room.
207
Cita de: Ziliock en Agosto 28, 2015, 06:48:30 PM
Pensaba no decir nada al respecto pero...A ver...
En los iconos cada minima accion tiene un nombre e imagen para reconocerla, incluso puedes dividir secciones con bloques y comentarios.En los Scripts son textos interminables de simbolos de puntuacion, numeracion, operaciones matematicas y palabras en ingles.Y si te equivocas en un solo digito el juego se arruina para siempre.Y hazta que encuentres cual es el parentesis que esta un lugar mas atras ya te olvidaste de donde habia que ponerlo

Estoy de acuerdo en que D&D al ser más visual es más fácil de depurar, mientras que el GML es totalmente abstracto por carecer de las "imágenes" de las acciones, dificultando su lectura. En lo demás estás equivocado. El número de acciones que se pueden realizar con D&D anda en torno a 120 mientras que en GML son varios cientos, así que es falso que "cada mínima acción tiene un nombre e imagen" y si te parece largo un script en GML, piensa que hacer lo mismo con D&D será aún más largo. Hay muchas cosas que son imposibles de hacer con D&D y necesitan ser programadas en GML. Por ejemplo, las funciones de red y funciones asíncronas en general, buffers, estructuras de datos, manejo de archivos, motor físico, shaders, superficies, 3D y un largo etcétera. D&D está pensado para personas sin conocimientos de programación que buscan crear juegos sencillos, pero si lo que quieres es sacarle el máximo provecho a GMS entonces el camino a seguir es GML.
208
Cita de: kostra en Agosto 28, 2015, 03:44:34 PM
No puedo estearlo ahora, me mude a suiza y mi pc aun esta in epein, aqui solo tienen PCs basura jaja. El caso es... si devuelve un "ancho"... para que sirve la separacion del salto de linea, si eso ya se va para abajo no para el lado?, es lo que me confunde :S

Efectivamente, el parámetro sep no influye en nada a la hora de calcular el ancho. Supongo que lo dejaron porque la función está hermanada con string_height_ext y draw_text_ext que sí lo necesitan.
209
Cuando dibujas una cadena de texto con draw_text_ext tienes 5 argumentos:

-La coordenada x del texto
-La coordenada y del texto
-El string
-sep
-w

sep es la separación vertical en pixeles entre las líneas de texto en el caso de que el texto ocupe más de una línea
w es el ancho máximo del texto en pixeles que GMS consulta para saber si debe quebrar el texto en varias líneas para cumplir con ese ancho máximo

La función string_width_ext lo que hace es calcular el ancho real que ocupa el texto como si fuera dibujado con draw_text_ext (no el ancho máximo). Imagínalo como el ancho de un rectángulo circunscrito a tu texto (o como el ancho del "bounding box" del texto, si lo prefieres). Te sirve para saber cuánto ancho exacto ocupa un texto en pixeles y así saber dónde posicionar otras cosas relativas a éste.

Si aún te cuesta imaginar lo que son la separación entre líneas y el ancho máximo, lo mejor es, como siempre, hacer pruebas: dibuja un texto con draw_text_ext cambiando los parámetros sep y w y ve cómo los resultados son diferentes.
210
Cambia el evento Mouse Event for Left Button por Mouse Event for Left Pressed.

Al usar Mouse Event for Left Button el evento se dispara constantemente mientras tengas presionado el botón (por eso go to next room se ejecuta múltiples veces), mientras que Mouse Event for Left Pressed se dispara una vez y no vuelve a dispararse hasta que sueltes y vuelvas a presionar el botón.