Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mensajes recientes

1
Preguntas y respuestas / Re: script GM1 a GM2?
« Último mensaje por Void en Junio 23, 2022, 12:02:28 am »
function nombre_de_funcion(initAngle,numbBullets){
    var bulletAngle = 360/numbBullets;

    for(var i=initAngle; i<initAngle+360;  i+=bulletAngle){
        var thisBullet= instance_create_layer(x, y,"Instances", objBullet);
        thisBullet.sprite_index=sprBull0;
        thisBullet.direction=i;
        thisBullet.speed=2;
    }
}

Cambia nombre_de_funcion por el nombre que le quieras poner a la función, y en instance_create_layer cambia "Instances" por la layer en la que quieras crear la instancia.
2
Juegos completos / Re: Ehala Auapau
« Último mensaje por Marth en Junio 22, 2022, 04:37:47 pm »
Resucito este chat para anunciar que el juego ha sido inscrito en el GDWC 2022:
https://thegdwc.com/pages/game.php?game_guid=7b260fe3-642e-4d4b-865f-d087677cfdca

Estoy seguro de que se la verá con titanes, por lo que a ver que tal le va. :D
3
Preguntas y respuestas / script GM1 a GM2? resuelto
« Último mensaje por Jeffrey Faper en Junio 21, 2022, 11:24:22 pm »
Hola a todos espero tenga un buen dia, tengo esta duda como convertiria este script en un script de GM2
var initAngle,numbBullets,bulletAngle;
initAngle=argument0;
numbBullets=argument1;  
bulletAngle=360/numbBullets;

for(var i=initAngle; i<initAngle+360;  i+=bulletAngle){
    var thisBullet= instance_create(x, y, objBullet);
    thisBullet.sprite_index=sprBull0;
    thisBullet.direction=i;
    thisBullet.speed=2;
 }
4
Desarrollo de Scripts / angle_lines(x1,y1,x2,y2,x3,y3,sentido)
« Último mensaje por dixon en Junio 19, 2022, 11:08:47 pm »
Autor del script: Reyes Dávila (Dixon)
Nombre del script: angle_lines(x1,y1,x2,y2,x3,y3,sentido);
Breve descripción de su función: Devuelve el ángulo que forman dos líneas que tienen un punto en común.
Versiones usadas: Game maker 4. Debe funcionar en todas las versiones superiores. Sí funciona en Game maker studio 2.
Versión del script: 1 


Código: [Seleccionar]
//angle_lines(x1,y2,x2,y2,x3,y3,sentido);
//Devuelve el ángulo que forman dos líneas rectas que tienen un punto en común.
//Serial del script: _DXNS004

//Entrada de datos:
ix_DXNS004=argument0;
iy_DXNS004=argument1;
x1_DXNS004=argument2;
y1_DXNS004=argument3;
x2_DXNS004=argument4;
y2_DXNS004=argument5;
sentido_DXNS004=argument6;

pendiente1_DXNS004=(y1_DXNS004-iy_DXNS004)/((x1_DXNS004-ix_DXNS004)+0.0001*((x1_DXNS004-ix_DXNS004)=0));
pendiente2_DXNS004=(y2_DXNS004-iy_DXNS004)/((x2_DXNS004-ix_DXNS004)+0.0001*((x2_DXNS004-ix_DXNS004)=0));
pendiente1y2_DXNS004=(pendiente1_DXNS004-pendiente2_DXNS004)/((1+pendiente1_DXNS004*pendiente2_DXNS004)+0.0001*((1+pendiente1_DXNS004*pendiente2_DXNS004)=0));

//primera salida de datos:
angulo_DXNS004=arctan(pendiente1y2_DXNS004)*57.296;

direction2_DXNS004=point_direction(ix_DXNS004,iy_DXNS004,x1_DXNS004,y1_DXNS004);
distance2_DXNS004=point_distance(ix_DXNS004,iy_DXNS004,x1_DXNS004,y1_DXNS004);
direction3_DXNS004=point_direction(ix_DXNS004,iy_DXNS004,x2_DXNS004,y2_DXNS004)-direction2_DXNS004;
distance3_DXNS004=point_distance(ix_DXNS004,iy_DXNS004,x2_DXNS004,y2_DXNS004);
x4_DXNS004=ix_DXNS004+distance2_DXNS004*cos(0);
y4_DXNS004=iy_DXNS004-distance2_DXNS004*sin(0);
x5_DXNS004=ix_DXNS004+distance3_DXNS004*cos(direction3_DXNS004*pi/180);
y5_DXNS004=iy_DXNS004-distance3_DXNS004*sin(direction3_DXNS004*pi/180);


angulo2_DXNS004=abs(angulo_DXNS004);

if((y5_DXNS004<y4_DXNS004) and (sign(angulo_DXNS004)=-1)){angulo2_DXNS004=180-angulo2_DXNS004}
if((y5_DXNS004=y4_DXNS004) and (x5_DXNS004<x4_DXNS004)){angulo2_DXNS004=180}
if((y5_DXNS004>y4_DXNS004) and (sign(angulo_DXNS004)=1)){angulo2_DXNS004=180+angulo2_DXNS004}
if((y5_DXNS004>y4_DXNS004) and (sign(angulo_DXNS004)=-1)){angulo2_DXNS004=360-angulo2_DXNS004}
if(sentido_DXNS004){angulo2_DXNS004=360-angulo2_DXNS004}

return angulo2_DXNS004;




Modo de uso:

angle_lines(x1,y1,x2,y2,x3,y3,sentido): Este script es parecido al script que dibuja un triángulo. En x1 y y1 colocar el punto de colision entre las dos líneas, en x2 y y2 colocar la línea que representará la base en donde se comenzarán a contar los ángulos, y en x3 y y3 colocar un punto de la segunda línea, la cual es la línea móvil que formará el ángulo. En sentido colocar el sentido como se contarán los ángulos, normalmente se coloca -1 para sentido anti horario (como nos enseñaron en la escuela) y 1 para sentido horario.

Aquí dejo unas imágenes que pueden servir se guía:




Si existe alguna duda pueden consultarme por esta web.


Cómo funciona el script
El script calcula la pendiende de ambas líneas y con esto calcula la arco tangente para finalmente multiplicar el resultado por 57.296 para obtener el ángulo. Luego gira el triángulo que se forma para ubicar la línea de base de forma paralela al eje x para luego hacer comparaciones y obtener ángulos superiores a 90 grados.


Más información
El desarrollo de este script sigue vigente, estoy trabajando para que adquiera compatibilidad en todos los game makers ya que me puede servir en la creación de juegos de fake 3d.


Bibliografia del script
Este script lo construí en dos semanas aproximadamente y para lograrlo tuve que consultar muchos tutoriales sobre triángulos, angulos, y trigonometría. Estos son algunos de los consultados:








Bye…


5
Desarrollo de Scripts / arctan(x)
« Último mensaje por dixon en Junio 19, 2022, 05:47:44 pm »
Autor del script: Reyes Dávila (Dixon)
Nombre del script: arctan(x);
Breve descripción de su función: Devuelve la arco tangente de x.
Versiones usadas: Game maker 1, 2, 3, 4, al parecer funciona en todas las versiones.
Versión del script: 1 


Código: [Seleccionar]
//arctan_compatible(x)
//Calcula la arcotangente de x.
//para mayor precisión usar presicion_DXNS001=0.0001; //mientras más decimales mayor precisión.
//SeriAl del script: _DXNS001.


precision_DXNS001=0.01;
pendienteEntrada_DXNS001=argument0;
pendienteSalida_DXNS001=0;
continuar_DXNS001=1;
for(i_DXNS001=-pi/2; i_DXNS001<(pi/2) and continuar_DXNS001;i_DXNS001+=precision_DXNS001)
{
pendienteSalida_DXNS001=tan(i_DXNS001);
if(pendienteSalida_DXNS001>=pendienteEntrada_DXNS001){continuar_DXNS001=0}
}

radianes_DXNS001=i_DXNS001;

return radianes_DXNS001;


Más información
Este script fue creado para poder calcular la arco tangente en las versiones viejas GM1 y GM2 (año 2000), ya que no cuentan con esta función.

Este script carece de precisión y para aumentarla hay que aumentar la cantidad de decimales de la variable precision_DXNS001=0.01, ejemplo:  precision_DXNS001=0.00001. Al aumentar la precisión la velocidad de cálculo disminuye.

¿Cómo funciona el script?
El script crea un bucle que va desde –pi/2 hasta pi/2 para comparar el valor de x con tan(x), porque la arcotangente se calcula encontrando el valor que la tangente recibió para devolver la x de entrada.

Para lograr el script tuve que ver muchos videos de ángulos y uno de los que más me sirvió para comprender el cálculo de la arco tangente es el siguiente:


El youtuber me dió un like por el comentario que le hice sobre el video.  :)

Tengo pensado seguir añadiendo información a este post ya que hay otras cosas extrañas e interesantes involucradas en el tema pero por los momentos no tengo mucho tiempo.

Bye…

6
Preguntas y respuestas / Re: Problemas con las actualizaciones de Game Maker
« Último mensaje por dixon en Junio 19, 2022, 04:59:46 am »
Hola Marth, espero que te encuentres bien.




No entiendo el problema que explicas, no uso game maker studio 2 y tampoco se como funciona  :'( , pero lo instalé y le descargué el tiempo de ejecución que señalas y todo salió bien.

Estos son los resultados:


Lo que he notado es que la versión de game maker que tengo es la más actual. Recomiendo que descargues la versión actual directamente de la web.


Adiós, nos vemos en otra ocasión.


7
Preguntas y respuestas / Problemas con las actualizaciones de Game Maker
« Último mensaje por Marth en Junio 17, 2022, 11:26:36 pm »
Últimamente al abrir GM me sale que hay una versión mejorada, pero cuando miro veo que se ha atascado en una IDE y no se como terminar la instalación ni como eliminarlo. He probado incluso a desinstalar GM y volver a instalarlo, pero el problema sigue ahí.
8
Preguntas y respuestas / Actualizacion atascada
« Último mensaje por Marth en Junio 17, 2022, 11:24:22 pm »
Últimamente al abrir GM me sale que hay una versión mejorada, pero cuando miro veo que se ha atascado en una IDE y no se como terminar la instalación ni como eliminarlo. He probado incluso a desinstalar GM y volver a instalarlo, pero el problema sigue ahí.
9
Preguntas y respuestas / Re: Problemas usando LootLocker
« Último mensaje por Jeffrey Faper en Junio 17, 2022, 01:55:16 am »
el error es que su variable no se ha establecido antes de leerla en pocas palabras no existe ese error siempre me pasa cuando me equivoco y escribo mal el nombre de una variable aunque hay mas razones para que surga este error, deberia buscar en la comunidad inglesa de game maker ahi siempre reciben errores de ese tipo
10
Preguntas y respuestas / Problemas usando LootLocker
« Último mensaje por Marth en Junio 16, 2022, 11:01:33 pm »
Veran, estoy usando Lootlocker para crear una tabla de puntuaciones.
Este necesita que en un objeto ponga este código en el evento Asinc HTML: LootLockerCallback()

La primera vez fue bien, habiendo logrado subir mi puntuación, pero cuando vuelvo a abrir el juego, me sale este mensaje de error:
]
ERROR in
action number 1
of Async Event: HTTP
for object Empezador:

Variable Empezador.session_token(100118, -2147483648) not set before reading it.
 at gml_Script_LootLockerGetHighscoresTop (line 8) - ds_map_add(map,"x-session-token", session_token);
############################################################################################
gml_Script_LootLockerGetHighscoresTop (line 8)
gml_Script_LootLockerCallback (line 125) -             LootLockerGetHighscoresTop(string(leaderboardID), string(autoRefreshLeaderboardsAmount));
gml_Object_Empezador_Other_62 (line 1) - LootLockerCallback()


¿Qué es lo que va mal?