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

1711
Preguntas y respuestas / Re:IA de los enemigos
Junio 24, 2014, 04:40:28 PM
Hola. Si entendí bien, el enemigo es obj_alien y el jugador es obj_granjero.
El problema está en que el objeto jugador responde a las variables obj_alien.x y obj_alien.y que son las coordenadas de la primera instancia creada de obj_alien, así que aunque tengas muchos enemigos cercanos, si la primera instancia creada está muy lejos, no cambiará su comportamiento.
Para solucionarlo deberías conocer el id de la instancia más cercana usando la función instance_nearest(). Podrías usar un código como éste:
[gml]alien_cercano = instance_nearest( x, y, obj_alien );[/gml]
Entonces debes modificar tu script, cambiando "obj_alien" con "(alien_cercano)" [conservando los paréntesis].
Espero que sea entendible.
1712
Hola

Podrías usar una extensión/dll que pueda pausar la música.
Busca en http://www.gmtoolbox.com/
De esa lista leí las características de "SAudio" y parece que tiene lo que necesitas, aunque hay otros plugins que tienen características similares.

Otra forma, que se me ocurre, es que podrías hacer que el volumen de la música principal sea cero, y que la música de pausa se reproduzca como efecto de sonido. Pero el método tiene varios inconvenientes, porque la música principal no continuará en la misma posición, y no funcionará si ambas pistas son midi.
1713
Simplemente necesitas definir una variable global.
Al inicio del juego pones:
global monedas
Y cuando necesites modificar la variable haces esto:
global.monedas = algo
La variable conservará su valor aunque cambies de room.
1714
Hola

Uno de los métodos mas utilizados para generar terreno es deformar una cuadrícula usando "mapas de alturas". En el foro de YoYo Games puedes encontrar varios ejemplos de eso.

Yo me he basado en el ejemplo que dejo adjunto para hacer algunos terrenos. El terreno es generado a partir de una imagen, donde la altura de cada punto se basa en la brillantez de cada pixel, pero hay que tener en cuenta que el proceso de generación es muy tardado porque se emplea la función draw_getpixel() que de por si es muy lenta. Los valores de las alturas se guardan en una matriz (que en GM le llaman "grid", es conveniente leer las sección del manual sobre "Data Structures"). La matriz se puede exportar y cargar el el juego, para no tener que usar la imagen original.

El mapa de alturas se puede dibujar a mano en cualquier programa de edición de imágenes, o puedes usar algunos programas especialmente diseñados para crear mapas de alturas. Aquí hay dos ejemplos:
http://www.earthsculptor.com/
http://www.bundysoft.com/L3DT/
Son gratis, y además ayudan a generar la textura.

También es importante que aprendas a utilizar las funciones que aparecen el la sección "Creating Models" del manual de GM.

Espero que te sirva la información.
1715
Sólo cambia ésto
operation: smaller than
1716
Preguntas y respuestas / Re:Usar un mando.
Junio 13, 2014, 04:58:53 PM
Hola Marth

No todos los mandos son iguales, así que la posición y numeración de los botones puede variar entre modelos y marcas. Para saber qué números están disponibles puedes ver los detalles del controlador del mando, o hacer un pequeño programa en GM como éste:
[gml]
//Numero total de botones (del joystick 1)
botones = joystick_buttons(1);

//Ver el botón presionado
for( i=1; i<= botones; i+=1 )
{
    if( joystick_check_button(1,i) ) draw_text(0,0,string(i));
}
[/gml]
El código anterior debe ir en el evento Draw.

Hace tiempo hice un script para detectar presión y liberación de los botones:
[gml]
// Asignación de botones
left   = ( keyboard_check(vk_left)  || (joystick_xpos(1) <= -0.5)  );
right  = ( keyboard_check(vk_right) || (joystick_xpos(1) >= 0.5)   );
up     = ( keyboard_check(vk_up)    || (joystick_ypos(1) <= -0.5)  );
down   = ( keyboard_check(vk_down)  || (joystick_ypos(1) >= 0.5)   );
jump   = ( keyboard_check(ord('X')) || joystick_check_button(1,3)  );
attack = ( keyboard_check(ord('Z')) || joystick_check_button(1,4)  );
pause  = ( keyboard_check(ord('S')) || joystick_check_button(1,12) );

// Izquierda o derecha, pero no ambas
if(left && right) {left = 0; right = 0;}

// Presión de los botones
left_press   = (left && !left_prev);
right_press  = (right && !right_prev);
up_press     = (up && !up_prev);
down_press   = (down && !down_prev);
jump_press   = (jump && !jump_prev);
attack_press = (attack && !attack_prev);
pause_press  = (pause && !pause_prev);

// Liberación de los botones
left_release   = (!left && left_prev);
right_release  = (!right && right_prev);
up_release     = (!up && up_prev);
down_release   = (!down && down_prev);
jump_release   = (!jump && jump_prev);
attack_release = (!attack && attack_prev);
pause_release  = (!pause && pause_prev);

// Estado previo de los botones
left_prev   = left;
right_prev  = right;
up_prev     = up;
down_prev   = down;
jump_prev   = jump;
attack_prev = attack;
pause_prev  = pause;
[/gml]
El script debe ejecutarse en cada step, y las variables "prev" deben inicializarse a cero en el evento Create.
1717
Hola, en el editor del room, en la pestaña backgrounds, debes marcar la opción Draw background color.
1718
Hola comunidad

Estoy haciendo un juego en 3D en el que aparecen pequeños planetas con sus respectivas atmósferas. Estoy usando una esfera para representar la atmósfera y todo se dibuja con niebla menos el fondo de estrellas. Éste es el código que uso para dibujar la atmósfera:
[gml]
draw_set_blend_mode_ext( bm_src_color, bm_inv_src_color );
draw_set_color( c_black );
d3d_set_fog( true, $226644, 0, 400 );
d3d_model_draw( mdAtmosfera, 0,0,0, -1 );
draw_set_blend_mode( bm_normal );
[/gml]
y éste es el resultado:

De ésta forma he conseguido que se vea un tenue degradado, y que ese degradado cambie dependiendo de la posición y ángulo de la cámara.

El problema es que con éste método no se puede lograr que el color de la atmósfera sea completamente opaco, a menos que sea de color blanco.

¿Existe alguna forma de hacer el objeto transparente y que se sólo se vea la niebla sobre el objeto?

Gracias por la ayuda.
1719
Hola, se me ocurren varias formas de hacer eso:

La primera es usar el evento Boundary View, y poner ahí x = xprevious;

La segunda es definir una distancia máxima entre los dos objetos, si la distancia se hace mayor a la distancia máxima la variable x de los objetos debe cambiarse sumando o restando (distancia_max - distancia)/2.

Otra forma es revisar la posición relativa de los objetos en la View (la posición relativa se obtiene con pos_rel = x - view_xview;). Por ejemplo el objeto de la izquierda puede tener este código if( pos_rel < borde ) x = view_xview + borde;, tu decides cual es el tamaño del borde.

Espero que te ayude.
(No olvides poner el icono para este post)
1720
Intercambio / Re:Propuesta
Junio 10, 2014, 11:04:50 PM
Saludos.

Me interesa participar en el proyecto, me ofrezco como programador.
1721
Juegos completos / Re:Blind Typer
Mayo 30, 2014, 05:58:51 AM
Excelente juego, con varios puntos a su favor:
- Es amigable con las personas invidentes.
- Nos ayuda a practicar Inglés.
- Invita a ser ágil con el teclado.

Que agradable es ver un juego que aporta algo a la sociedad.

Encontré 2 bugs:
- En el juego de las flechas, a veces se escucha el sonido de error aunque la dirección sea correcta.
- Y en el juego de presionar letras, en el nivel 5, el texto de abajo no se ve completo (aunque eso tiene que ser insignificante en un juego en el que no debes ver).
1722
Juegos en desarrollo / Re:Proto Hardgame [BETA][PC]
Mayo 28, 2014, 04:03:36 AM
Buen juego, pero creo que es demasiado difícil para llegar a ser realmente adictivo.

Pude llegar hasta donde cambia la gravedad, con 30 intentos, después hice otros 10 intentos, de ahí ya no pude pasar.
Me gustaría que la bola quedara más a la izquierda para tener mayor rango de visión, y tal vez sería bueno tener un contador de tiempo o de distancia para saber cuánto has avanzado.
1723
El problema es que en GM8 no se puede usar el evento Draw GUI, entonces se tiene que usar un poco de trigonometría.
He dejado un ejemplo, puedes desplazar la vista con las flechas y girar con xz. Revisa el código que está en el objeto obPeonNegro.

Hubo dos cosas que me confundieron, la primera es que la vista gira respecto a su centro (a diferencia de los sprites que giran respecto a su origen) y la segunda es que el eje "y" en GM está invertido, pero con algunas pruebas y errores logré resolver el problema.

Respecto a tu ejemplo noté algo que podría causar problemas (a menos que lo hayas planeado así); en cada evento Step haces que las coordenadas de la View sean las mismas que las de la nave1, pero la vista tiene un borde alrededor de ese objeto, entonces cuando se van a dibujar los objetos la vista cambia de posición para respetar el borde.

Espero que sea entendible.
1724
Intercambio / Busco árboles 3D
Mayo 26, 2014, 01:26:18 AM
Alguien sabe dónde puedo conseguir modelos tridimensionales de árboles con el formato de GM o .obj. De preferencia que se vean bien desde arriba.
Gracias de antemano por la ayuda.
1725
Preguntas y respuestas / Re:ayuda
Mayo 23, 2014, 07:23:58 PM
Model Creator. Éste programa sirve para crear modelos compatibles con GM. Aquí está una versión traducida:
http://www.comunidadgm.org/juegos-completos/model-creator-esp-(utilidad-3d)/
O puedes visitar la página oficial:
http://www.maartenbaert.be/model-creator/