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

91
El manual dice que no es bueno modificar las variables phy_position directamente porque se interrumpe la simulación.
Para seguir el puntero del mouse puedes aplicar una fuerza o modificar la velocidad
[gml]
instMouse.phy_speed_x = mouse_x - instMouse.phy_position_x;
instMouse.phy_speed_y = mouse_y - instMouse.phy_position_y;
[/gml]
El accesorio se puede pegar con una unión rotatoria
[gml]
physics_joint_revolute_create(
    instMouse, instAcc, //instancias involucradas
    420, 220, //coordenadas de la unión
    0, 0, false, //no hay ángulo límite
    0, 0, false, //no hay motor
    false //las inancias no colisionan
);
[/gml]

Ejemplo en GMLIve
92
Grafismo & Composición / Re:Grafismo de Atari 2600
Mayo 24, 2020, 06:09:58 PM
Hay algo de información en Wikipedia
https://es.wikipedia.org/wiki/Atari_2600
https://en.wikipedia.org/wiki/Atari_2600_hardware
https://en.wikipedia.org/wiki/List_of_video_game_console_palettes

La consola tiene muchas limitaciones. La resolución y la complejidad de los gráficos pueden cambiar dependiendo del tipo de juego y de la complejidad de la programación.

Para hacer buen pixel-art es recomendable saber dibujar con técnicas tradicionales (lápiz y papel). Hay temas en el foro hablan sobre software para dibujar. Para dibujos pixelados utilizo Aseprite o GIMP.
94
Para la view debes usar variables que indiquen la posición final y luego desplazar la view poco a poco desde la posición actual hasta la posición final.
Para ello puedes usar la función lerp
https://www.comunidadgm.org/desarrollo-de-scripts/interpolacion-lineal-en-gm8/
[gml]
view_xview[0] = lerp(x_inicial, x_final, t);
view_yview[0] = lerp(y_inicial, y_final, t);
t += 0.05;
if (t > 1) t = 1;
[/gml]
la variable t va de 0 a 1, incrementando un poco en cada step.

Para hacer el cambio entre rooms lo más fácil es utilizar las transiciones predefinidas. Las transisiciones solo funcionan en GM8, se eliminaron en GMS.
Al cambiar de room, debes guardar en varibles globales la posición en la que debe aparecer el personaje en la siguiente room
[gml]
if (room == rm0) {//primera room
    if (x > room_width) {//si se sale de la room por la derecha
        transition_kind = 15; //Push from right
        transition_steps = room_speed * 0.5; //duración de la transición
        global.xx = 0; //posición en la que va a aparecer
        global.yy = y;
        room_goto(rm1); //cambiar de room
    }
}
[/gml]
Adjunto un ejemplo.
95
Supongo que el archivo está en una carpeta en la que el juego no tiene acceso.
https://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html

En Windows puedes navegar a casi cualquier carpeta, pero en otras plataformas el acceso a archivos es más limitado.
Lo mejor sería que agregues el archivo al proyecto (Included file)
https://docs.yoyogames.com/source/dadiospice/001_advanced%20use/002_including%20files.html
96
Preguntas y respuestas / Re:MovimientoDeProyectiles
Mayo 14, 2020, 04:59:26 AM
Puedes hacer algo como esto
[gml]
// Create
x0 = 250; //posicion inicial
y0 = 250;
a = 0; //angulo
r = 0; //radio

// Draw
x = x0 + lengthdir_x(r, a);
y = y0 + lengthdir_y(r, a);
a += 10;
r += 1;
draw_self();
[/gml]

x0 y y0 se pueden sustituir por xstart y ystart
ejemplo en GMLive
97
Interesante la idea.
¿Cuál es el objetivo del salón? ¿Qué beneficios se obtienen?
Tal vez es más fácil cumplir el sueño buscando el apoyo de inversionistas.

El reconocimiento de movimientos corporales se puede hacer con Kinect o con OpenCV. He probado los dos, pero nunca he intentado usarlos como método de entrada para juegos de GameMaker.
98
Prueba con esta línea en el evento Draw del personaje
[gml]
draw_sprite(sprite_index, image_index, round(x), round(y));
[/gml]
Para dibujar el personaje en posición redondeada, pero no alterar su posición.
99
Es muy raro. ¿Puedes poner más código?
100
¿Cómo se obtiene el txt, es un included file, se descarga de internet, se genera dentro del juego?
101
Estaba pensando en proponer font_add_sprite, pero acabo de notar que pusiste el icono de GM8, entonces necesitas una alternativa.
¿Puedes compartir el sprite con las letras?
Supongo que las letras están ordenadas en una cuadrícula o matriz, lo digo por la forma del script. Lo mejor sería que cada letra sea una subimagen en el sprite, recuerdo haber visto scripts que usan ese tipo de sprites, pero no logro encontrarlos. De todas formas podemos intentar escribir uno, no debe ser muy complicado.
102
Primero calcula la dirección (o angulo) del personaje al mouse. Luego dibuja los brazos rotados.
[gml]
draw_sprite_ext(spr_cuerpo, 0, x, y, 1, 1, 0, c_white, 1);

angulo = point_direction(x, y, mouse_x, mouse_y);
draw_sprite_ext(spr_brazo, 0, x-10, y-10, 1, 1, angulo, c_white, 1);
draw_sprite_ext(spr_brazo, 0, x+10, y-10, 1, 1, angulo, c_white, 1);
[/gml]
103
Creo que falta una parte del código, ¿en dónde se asignan los otros sprites?
104
La función es physics_joint_weld_create
Estoy empezando a probarla. Aquí un ejemplo.
Haz clic para agregar más bloques.
105
Es díficil hacer que la computadora juegue de manera inteligente. Lo más común es aplicar teoría de grafos y diferentes algoritmos.
Además de la programación, los sprites y la música implican mucho trabajo.

Me recordaste dos juegos interesantes que se publicaron en la comunidad:
https://www.comunidadgm.org/juegos-en-desarrollo/fallen-empires(tbs)/
https://www.comunidadgm.org/juegos-completos/royal-thief-(android-y-windows)-(rpg-tactico)/
Lo malo es que los creadores de esos juegos llevan mucho tiempo sin conectarse.