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!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - dixon

Páginas: 1 2 3
1
Juegos completos / Agua pal pueblo
« en: Junio 08, 2021, 05:39:23 am »


Agua pal pueblo


Plataformas


GM4 y Html5

Cada vez que puedo voy a buscar agua potable para mí y mis vecinos, estoy contento de poder ayudar principalmente a las personas necesitadas.




Para todas las plataformas y sistemas:
bit.ly/agua_pal_pueblo


Más información:
Lo he creado para mostrarles la realidad que vivo y lo agradable que es ayudar a los vecinos.

Datos técnicos:
1. Para agilizar la creación de video juegos, me es conveniente crear una plantilla que me ofrezca los códigos básicos para no tener que volver a empezar de cero.
2. Luego de tener la plantilla me conviene crear pequeños generadores de juegos básicos que me ayuden a crear pequeños niveles de forma rápida.
3. La calidad de los juegos puede aumentar si agrego mejores imágenes y más niveles, siempre y cuando no pierda el sentido del juego, su significado y su espíritu.
4. Tengo la esperanza de producir un juego diario de buena calidad.
5. Monetización: …. Sin decisiones certeras. Estuve integrando acortadores de link para recibir algo de dinero por cada jugada, pero al parecer esto no fue muy aceptable por el público. Se requieren más experimentos y quizás nuevas estrategias.


2
Juegos completos / El piloto sin licencia
« en: Mayo 26, 2021, 08:21:21 am »


El piloto sin licencia


Naves


GM: Html5

Lo agradable que es charlar y compartir con los amigos.




Puede jugarse desde cualquier dispositivo en esta web:
Game_web

Más datos:
Esta obra le he creado para compartir algo con ustedes, es bastante corta pero estoy seguro que mediante esta lograré transmitir algunas pequeñas y diminutas emociones.

Datos técnicos:

 Mediante este pequeño juego obtuve los siguientes datos:

1.   El área de los juegos html5 se llama “canvas”, y este puede ser modificado cambiando el index.html.

2.   Para evitar que el explorador nos pregunte por el idioma es necesario cambiar en el index.html la etiqueta  <html lang="en"> por <html lang="es">, dependiendo del idioma de destino (“en” para ingles y “es” para español).

3.   La páginas web alojadas en google drive y difundidas por drv.tw presentarán dificultades al momento de actualizarlas. Para solucionar esto será necesario cambiar el nombre de la carpeta raíz lo que significa tener cambiar todo el enlace de la web.

4.   El estilo recomendado para el canvas del index es:
Código: [Seleccionar]

*{
margin-left: auto;
margin-right: auto;
text-align: center;
width: 80vw;
max-width: 80vh;
}

5.   Los juegos html5 pueden usar “view” adecuadamente.

3
Nombre del autor : Reyes Dávila.
Breve descripción de su función : Dibuja un cubo 3d, sin activar funciones 3d.
Versión GM utilizada : Game maker 3.3 (April 3, 2001)  y teóricamente funciona en todos los game maker superiores

En el siguiente enlace podrás ver el código funcionando en html5
Draw_cube


Código del script:

Código sin color ni giro para todas las versiones superiores a game maker 3
Spoiler
///draw_cube(x,y,width,height,length,anglex,angley);
//Obteniendo argumentos.
posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument3;
length00=argument4;
anglex00=argument5;
angley00=argument6;

//Determinando los cuatro puntos del cuadrado
//Punto A
pax00=posx00;
pay00=posy00;
//Punto B
pbx00=pax00+length00;
pby00=pay00;
//Punto C
pcx00=pbx00;
pcy00=pby00+height00;
//Punto D
pdx00=pax00;
pdy00=pay00+height00;

//Ubicando el punto de fuga
//Determinando el centro del cubo
pcenx00=pax00+length00/2;
pceny00=pay00+height00/2;
//Punto de fuga
lengthmax00=length00*5;
heightmax00=height00*5;
widthmax00=width00*5;

pfugax00=pcenx00+(lengthmax00/45)*anglex00;
pfugay00=pceny00+(heightmax00/45)*angley00;

if(pfugax00>pcenx00+lengthmax00){pfugax00=pcenx00+lengthmax00}
if(pfugay00>pceny00+heightmax00){pfugay00=pceny00+heightmax00}
if(pfugax00<pcenx00-lengthmax00){pfugax00=pcenx00-lengthmax00}
if(pfugay00<pceny00-heightmax00){pfugay00=pceny00-heightmax00}


//Determinando puntos finales
distancia_ab=point_distance(pax00,pay00,pfugax00,pfugay00);
if(distancia_ab>widthmax00){distancia_ab=widthmax00}
porcentajex02=abs(abs(distancia_ab-widthmax00)*100/widthmax00);
width200=(porcentajex02*width00)/100;
i=width00-width200;
directionf=point_direction(pax00,pay00,pfugax00,pfugay00);
distancia_ab=point_distance(pfugax00,pfugay00,pax00,pay00);
distancia_ab+=0.0000001;
distancia_ax=(distancia_ab-i);
porcentaje100=(distancia_ax*100)/distancia_ab;
length200=(porcentaje100*length00)/100;
x1=pax00+i*cos(directionf*pi/180);
y1=pay00-i*sin(directionf*pi/180);
x2=x1+length200*cos(0*pi/180);
y2=y1-length200*sin(0*pi/180);

pex00=x1;
pey00=y1;
pfx00=x2;
pfy00=y2;


//Determinando puntos finales
distancia_ab=point_distance(pdx00,pdy00,pfugax00,pfugay00);
if(abs(distancia_ab)>widthmax00){distancia_ab=widthmax00}
porcentajex02=abs(abs(distancia_ab-widthmax00)*100/widthmax00);
width200=(porcentajex02*width00)/100;
i=width00-width200;
directionf=point_direction(pdx00,pdy00,pfugax00,pfugay00);
distancia_ab=point_distance(pfugax00,pfugay00,pdx00,pdy00);
distancia_ab+=0.0000001;
distancia_ax=(distancia_ab-i);
porcentaje100=(distancia_ax*100)/distancia_ab;
height200=(porcentaje100*height00)/100;

pgx00=pfx00+height200*cos(270*pi/180);
pgy00=pfy00-height200*sin(270*pi/180);
phx00=pgx00+length200*cos(180*pi/180);
phy00=pgy00-length200*sin(180*pi/180);

//Dibujando líneas
//Línea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Línea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Línea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Línea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);

//Línea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Línea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Línea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Línea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);

//Línea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Línea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Línea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Línea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);


Version 2 del codigo sin color pero con rotación, para todos los game maker superiores a game maker 3.
Spoiler
//draw_cube( x, y, width, height, length, rotation, fugax, fugay);

//Obteniendo argumentos
posx00=argument0;
posy00=argument1;
width00=argument2;
height00=argument3;
length00=argument4;
rotation00=argument5;
pfugax00=argument6;
pfugay00=argument7;

//Determinado punto central de la primera cara
pcenx00=posx00+length00/2;
pceny00=posy00+height00/2;
direction_center00=360-point_direction(posx00,posy00,pcenx00,pceny00);
distance_center00=point_distance(posx00,posy00,pcenx00,pceny00);

//Hallando los primeros cuatro puntos que conforman la primera cara
for(i=1;i<=4;i+=1)
{
direction_ram00=direction_center00;
if(i=2){direction_ram00=180-direction_center00}
if(i=3){direction_ram00=180+direction_center00}
if(i=4){direction_ram00=-direction_center00}
puntox00[i]=pcenx00+distance_center00*cos((direction_ram00+rotation00)*pi/180);
puntoy00[i]=pceny00-distance_center00*sin((direction_ram00+rotation00)*pi/180);
}

//hallando punto de fuga 2
direction_fuga00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
pfuga2x00=pcenx00+width00*2*cos(direction_fuga00*pi/180);
pfuga2y00=pceny00-width00*2*sin(direction_fuga00*pi/180);

//Hallando al punto central 2
direction_fuga00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
pcen2x00=pcenx00+(width00/2)*cos(direction_fuga00*pi/180);
pcen2y00=pceny00-(width00/2)*sin(direction_fuga00*pi/180);

//Hallando al punto central 3
direction_fuga00=point_direction(pcenx00,pceny00,pfuga2x00,pfuga2y00);
pcen3x00=pcenx00+(width00/2)*cos(direction_fuga00*pi/180);
pcen3y00=pceny00-(width00/2)*sin(direction_fuga00*pi/180);

//Ajuste de punto central 2
distance_fuga00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
if(distance_fuga00<width00/2){pcen2x00=pfugax00;pcen2y00=pfugay00}

//Hallando cuatro ultimos puntos
distance_fuga00=point_distance(pcenx00,pceny00,pfuga2x00,pfuga2y00)+0.00001;
distance_fuga200=point_distance(pcen3x00,pcen3y00,pfuga2x00,pfuga2y00)+0.00001;
porcentaje200=distance_fuga200*100/distance_fuga00;
distance_center200=porcentaje200*distance_center00/100;

for(i=5;i<=8;i+=1)
{
direction_ram00=direction_center00;
if(i=6){direction_ram00=180-direction_center00}
if(i=7){direction_ram00=180+direction_center00}
if(i=8){direction_ram00=-direction_center00}
puntox00[i]=pcen2x00+distance_center200*cos((direction_ram00+rotation00)*pi/180);
puntoy00[i]=pcen2y00-distance_center200*sin((direction_ram00+rotation00)*pi/180);
}

//Dibujando lineas cara final
for(i=5;i<=8;i+=1)
{
x1=puntox00[i];
y1=puntoy00[i];
if(i=8){x2=puntox00[5];y2=puntoy00[5]}else{
x2=puntox00[i+1];
y2=puntoy00[i+1];}
draw_line(x1,y1,x2,y2);
}

bloquear=''
//Dibujando lineas de union
for(i=1;i<=4;i+=1)
{
x1=puntox00[i];
y1=puntoy00[i];
x2=puntox00[i+4];
y2=puntoy00[i+4];
draw_line(x1,y1,x2,y2);
}
//'

//Dibujando lineas cara frontal
for(i=1;i<=4;i+=1)
{
x1=puntox00[i];
y1=puntoy00[i];
if(i=4){x2=puntox00[1];y2=puntoy00[1]}else{
x2=puntox00[i+1];
y2=puntoy00[i+1];}
draw_line(x1,y1,x2,y2);
}




bloquear='
//dibujando lineas al punto de fuga
for(i=1;i<=4;i+=1)
{
x1=puntox00[i];
y1=puntoy00[i];
x2=pfuga2x00;
y2=pfuga2y00;
draw_line(x1,y1,x2,y2)
}

draw_line(pcenx00,pceny00,pfugax00,pfugay00);
draw_circle(pcenx00,pceny00,5);
draw_circle(pcen2x00,pcen2y00,5);
//'


Version ligera donde solo se dibujan las lineas del cubo, solo para game maker 4 y 5
Spoiler
///draw_cube( x, y, length, rotation, color_line);
//Ejemplo: draw_cube(x,y,50,direction,c_fuchsia);

posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
rotation00=argument3;
color00=argument4;

//Asignando el punto de fuga
pfugax00=xstart+length00*3;
pfugay00=ystart+height00*-3;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//dibujando lineas
pen_color=color00;
//draw_set_color(color00)

//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);
//'

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//'

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//'

version ligera para game maker 6,7,8, html5 y mac
Spoiler
///draw_cube( x, y, length, rotation, color_line);
//Ejemplo: draw_cube(x,y,50,direction,c_fuchsia);

posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
rotation00=argument3;
color00=argument4;

//Asignando el punto de fuga
pfugax00=xstart+length00*3;
pfugay00=ystart+height00*-3;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//dibujando lineas
pen_color=color00;
draw_set_color(color00)

//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);
//'

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//'

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//'

Version ligera para game maker studio 1 y 2
Spoiler
///draw_cube( x, y, length, rotation, color_line);
//Ejemplo: draw_cube(x,y,50,direction,c_fuchsia);

posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
rotation00=argument3;
color00=argument4;

//Asignando el punto de fuga
pfugax00=xstart+length00*3;
pfugay00=ystart+height00*-3;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//dibujando lineas
pen_color=color00;
draw_set_colour(color00)

//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);
//'

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//'

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//'

Código con color y giro para game maker 4 y 5
Spoiler
///draw_cube( x, y, length, fugax, fugay, rotation);
//Ejemplo: draw_cube(x,y,50,256,256,direction,c_fuchsia);

posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
pfugax00=argument3;
pfugay00=argument4;
rotation00=argument5;
color00=argument6;

c100=(color00=c_fuchsia);
c200=(color00=c_ltgray);
c300=(color00=c_purple);
c400=(color00=c_red);
c500=(color00=c_white);
c600=(color00=c_yellow);

if(!(c100 || c200 || c300 || c400 || c500 || c600))
{
color00+=25;
}

//c_aqua
//c_black
//c_blue
//c_dkgray
//c_fuchsia no+25
//c_gray
//c_green
//c_lime
//c_ltgray no+25
//c_maroon
//c_navy
//c_olive
//c_purple no+25
//c_red no+25
//c_silver
//c_teal
//c_white no+25
//c_yellow no+25


color01=color00-5;
color02=color00-5*2;
color03=color00-5*3;
color04=color00-5*4;
color05=color00-5*5;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);

//dibujando triangulos
pen_color=c_black;
pen_color=brush_color;
//Cara 6
brush_color=color05;
pen_color=brush_color;
draw_triangle(phx00,phy00,pgx00,pgy00,pfx00,pfy00);
draw_triangle(phx00,phy00,pex00,pey00,pfx00,pfy00);
//Cara 5
brush_color=color04;
pen_color=brush_color;
draw_triangle(pax00,pay00,pex00,pey00,phx00,phy00);
draw_triangle(pax00,pay00,pdx00,pdy00,phx00,phy00);
//Cara 4
brush_color=color03;
pen_color=brush_color;
draw_triangle(pcx00,pcy00,pgx00,pgy00,phx00,phy00);
draw_triangle(pcx00,pcy00,pdx00,pdy00,phx00,phy00);
//Cara 3
brush_color=color02;
pen_color=brush_color;
draw_triangle(pbx00,pby00,pfx00,pfy00,pgx00,pgy00);
draw_triangle(pbx00,pby00,pcx00,pcy00,pgx00,pgy00);
//Cara 2
brush_color=color01;
pen_color=brush_color;
draw_triangle(pax00,pay00,pex00,pey00,pfx00,pfy00);
draw_triangle(pax00,pay00,pbx00,pby00,pfx00,pfy00);
//Cara 1
brush_color=color00;
pen_color=brush_color;
draw_triangle(pax00,pay00,pbx00,pby00,pcx00,pcy00);
draw_triangle(pax00,pay00,pdx00,pdy00,pcx00,pcy00);

pen_color=c_black;
//dibujando lineas
//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);

Código con giro y color para game maker 6, 7, 8, html5 y mac.
Spoiler
///draw_cube( x, y, length, fugax, fugay, rotation);
//Ejemplo: draw_cube(x,y,50,256,256,direction,c_fuchsia);

posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
pfugax00=argument3;
pfugay00=argument4;
rotation00=argument5;
color00=argument6;

c100=(color00=c_fuchsia);
c200=(color00=c_ltgray);
c300=(color00=c_purple);
c400=(color00=c_red);
c500=(color00=c_white);
c600=(color00=c_yellow);

if(!(c100 || c200 || c300 || c400 || c500 || c600))
{
color00+=25;
}

//c_aqua
//c_black
//c_blue
//c_dkgray
//c_fuchsia no+25
//c_gray
//c_green
//c_lime
//c_ltgray no+25
//c_maroon
//c_navy
//c_olive
//c_purple no+25
//c_red no+25
//c_silver
//c_teal
//c_white no+25
//c_yellow no+25


color01=color00-5;
color02=color00-5*2;
color03=color00-5*3;
color04=color00-5*4;
color05=color00-5*5;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);

//dibujando triangulos
pen_color=c_black;
//Cara 6
brush_color=color05;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(phx00,phy00,pgx00,pgy00,pfx00,pfy00,0);
draw_triangle(phx00,phy00,pex00,pey00,pfx00,pfy00,0);
//Cara 5
brush_color=color04;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(pax00,pay00,pex00,pey00,phx00,phy00,0);
draw_triangle(pax00,pay00,pdx00,pdy00,phx00,phy00,0);
//Cara 4
brush_color=color03;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(pcx00,pcy00,pgx00,pgy00,phx00,phy00,0);
draw_triangle(pcx00,pcy00,pdx00,pdy00,phx00,phy00,0);
//Cara 3
brush_color=color02;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(pbx00,pby00,pfx00,pfy00,pgx00,pgy00,0);
draw_triangle(pbx00,pby00,pcx00,pcy00,pgx00,pgy00,0);
//Cara 2
brush_color=color01;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(pax00,pay00,pex00,pey00,pfx00,pfy00,0);
draw_triangle(pax00,pay00,pbx00,pby00,pfx00,pfy00,0);
//Cara 1
brush_color=color00;
pen_color=brush_color;
draw_set_color(pen_color);
draw_triangle(pax00,pay00,pbx00,pby00,pcx00,pcy00,0);
draw_triangle(pax00,pay00,pdx00,pdy00,pcx00,pcy00,0);

pen_color=c_black;
draw_set_color(pen_color);

//dibujando lineas
//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);

Código con giro y color para game maker studio 1 y 2.
Spoiler
///draw_cube( x, y, length, fugax, fugay, rotation);
//Ejemplo: draw_cube(mouse_x,mouse_y,50,room_width/2,room_height/2,direction,c_fuchsia);


posx00=argument0;
posy00=argument1;
width00=argument2/2;
height00=argument2;
length00=argument2;
pfugax00=argument3;
pfugay00=argument4;
rotation00=argument5;
color00=argument6;

c100=(color00=c_fuchsia);
c200=(color00=c_ltgray);
c300=(color00=c_purple);
c400=(color00=c_red);
c500=(color00=c_white);
c600=(color00=c_yellow);

if(!(c100 || c200 || c300 || c400 || c500 || c600))
{
color00+=25;
}

//c_aqua
//c_black
//c_blue
//c_dkgray
//c_fuchsia no+25
//c_gray
//c_green
//c_lime
//c_ltgray no+25
//c_maroon
//c_navy
//c_olive
//c_purple no+25
//c_red no+25
//c_silver
//c_teal
//c_white no+25
//c_yellow no+25


color01=color00-5;
color02=color00-5*2;
color03=color00-5*3;
color04=color00-5*4;
color05=color00-5*5;

//Diagonal
diagonal00=sqrt(power(length00,2)+power(height00,2));

//Punto central
pcenx00=posx00+(diagonal00/2)*cos(315*pi/180);
pceny00=posy00-(diagonal00/2)*sin(315*pi/180);

//Puntos del rectangulo
direction00=rotation00;
distancia00=diagonal00/2;
puntox00=pcenx00;
puntoy00=pceny00;
pax00=puntox00+distancia00*cos((direction00+45)*pi/180);
pay00=puntoy00-distancia00*sin((direction00+45)*pi/180);
pbx00=puntox00+distancia00*cos((direction00+45*3)*pi/180);
pby00=puntoy00-distancia00*sin((direction00+45*3)*pi/180);
pcx00=puntox00+distancia00*cos((direction00+45*5)*pi/180);
pcy00=puntoy00-distancia00*sin((direction00+45*5)*pi/180);
pdx00=puntox00+distancia00*cos((direction00+45*7)*pi/180);
pdy00=puntoy00-distancia00*sin((direction00+45*7)*pi/180);


i=width00;
direction00=point_direction(pcenx00,pceny00,pfugax00,pfugay00);
distanciax00=point_distance(pcenx00,pceny00,pfugax00,pfugay00)+0.00001;
pcenx200=pcenx00+i*cos(direction00*pi/180);
pceny200=pceny00-i*sin(direction00*pi/180);

distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);
if(distancia100<=i){pcenx200=pfugax00;pceny200=pfugay00}

porcentaje000=i*100/distanciax00;
diagonal000=(diagonal00/2)-porcentaje000*(diagonal00/2)/100;

widthmin=(width00);
if(distancia100<=i){diagonal000=widthmin}
if(diagonal000<widthmin){diagonal000=widthmin}

pex00=pcenx200+diagonal000*cos((rotation00+45)*pi/180);
pey00=pceny200-diagonal000*sin((rotation00+45)*pi/180);
pfx00=pcenx200+diagonal000*cos((rotation00+45*3)*pi/180);
pfy00=pceny200-diagonal000*sin((rotation00+45*3)*pi/180);
pgx00=pcenx200+diagonal000*cos((rotation00+45*5)*pi/180);
pgy00=pceny200-diagonal000*sin((rotation00+45*5)*pi/180);
phx00=pcenx200+diagonal000*cos((rotation00+45*7)*pi/180);
phy00=pceny200-diagonal000*sin((rotation00+45*7)*pi/180);

//distancia100=point_distance(pcenx00,pceny00,pfugax00,pfugay00);

//dibujando triangulos
//Cara 6
brush_color=color05;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(phx00,phy00,pgx00,pgy00,pfx00,pfy00);
draw_triangle(phx00,phy00,pex00,pey00,pfx00,pfy00);
//Cara 5
brush_color=color04;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(pax00,pay00,pex00,pey00,phx00,phy00);
draw_triangle(pax00,pay00,pdx00,pdy00,phx00,phy00);
//Cara 4
brush_color=color03;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(pcx00,pcy00,pgx00,pgy00,phx00,phy00);
draw_triangle(pcx00,pcy00,pdx00,pdy00,phx00,phy00);
//Cara 3
brush_color=color02;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(pbx00,pby00,pfx00,pfy00,pgx00,pgy00);
draw_triangle(pbx00,pby00,pcx00,pcy00,pgx00,pgy00);
//Cara 2
brush_color=color01;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(pax00,pay00,pex00,pey00,pfx00,pfy00);
draw_triangle(pax00,pay00,pbx00,pby00,pfx00,pfy00);
//Cara 1
brush_color=color00;
pen_color=brush_color;
//draw_set_color(pen_color);
draw_set_colour(pen_color);
draw_triangle(pax00,pay00,pbx00,pby00,pcx00,pcy00);
draw_triangle(pax00,pay00,pdx00,pdy00,pcx00,pcy00);

pen_color=c_black;
//draw_set_color(pen_color);
draw_set_colour(pen_color);

//dibujando lineas
//Linea A-B
x1=pax00;y1=pay00;x2=pbx00;y2=pby00;
draw_line(x1,y1,x2,y2);
//Linea B-C
x1=pbx00;y1=pby00;x2=pcx00;y2=pcy00;
draw_line(x1,y1,x2,y2);
//Linea C-D
x1=pcx00;y1=pcy00;x2=pdx00;y2=pdy00;
draw_line(x1,y1,x2,y2);
//Linea D-A
x1=pdx00;y1=pdy00;x2=pax00;y2=pay00;
draw_line(x1,y1,x2,y2);

//Linea E-F
x1=pex00;y1=pey00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea F-G
x1=pfx00;y1=pfy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea G-H
x1=pgx00;y1=pgy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
//Linea H-E
x1=phx00;y1=phy00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);

//Linea A-E
x1=pax00;y1=pay00;x2=pex00;y2=pey00;
draw_line(x1,y1,x2,y2);
//Linea B-F
x1=pbx00;y1=pby00;x2=pfx00;y2=pfy00;
draw_line(x1,y1,x2,y2);
//Linea C-G
x1=pcx00;y1=pcy00;x2=pgx00;y2=pgy00;
draw_line(x1,y1,x2,y2);
//Linea D-H
x1=pdx00;y1=pdy00;x2=phx00;y2=phy00;
draw_line(x1,y1,x2,y2);
Modo de uso:
1. Copia el código.
2. Crea un nuevo script, pegas el código y colocale de nombre draw_cube.
3. En un evento draw de un objeto cualquiera coloca el siguiente código y modifícalo a tu gusto:
draw_cube(256,256,64,64,64,45,45);

Detalles de la función draw_cube
draw_cube( x, y, width, height, length, anglex, angley):
X y Y: Posición de la esquina superior izquierda del cubo, es la ubicación del cubo en la room.
Width, height y length: Coloca en estos el ancho, la altura y el largo respectivamente, guiándote por el siguiente dibujo.
Anglex y angley: son los ángulos de inclinación del cubo los cuales no deben ser menores de -45 ni mayores a 45 grados.
fugax y fugay: Es la posición del punto de fuga en el plano. (Estudiar proyección cónica).
Imagen1:


Imagen 2:


Vista previa:


Limitaciones:
1. El cubo no podrá girar 360 grados, tiene un límite de giro de 45 grados.
2. El cubo no puede adquirir textura ni color de fondo.

Importancia:
Este script contiene los fundamentos básicos de proyección cónica con un punto de fuga (estudiar sobre proyección cónica) y servirá de base para la creación de otros scripts con dos o más puntos de fugas, lo que puede permitir la formación de objetos 3d más exactos y complejos sin necesidad de emplear funciones 3d.

Orígen:
Desde hace algunos años tengo la intención de crear algún juego 3d en game makers que no empleen 3d y luego de investigar encontré el tema de proyecciones cónicas suministrado por un canal de youtube llamado .

Mejoras en proceso:
1. Giro de 360 grados.
2. Funcion para agregar color de fondo.
3. Rotación desde su punto central: lo que se quiere es que el cubo pueda girar sobre su punto central.

Dificultades de programación:
Quiero mejorar el script agregándole la posibilidad de girar el cubo a 360 grados y no encuentro tutorial de proyección cónica que explique eso, sólo encontré un tutorial de entivoo ()que indica que para lograr un giro completo es necesario pasar de “dos puntos de fuga” a “un punto de fuga” (proyecciones cónicas) pero no me explica cómo, para lograr eso es necesario comprender al 100% la transición que existe entre dos puntos de fuga a un punto de fuga.
Intenté crear un script que involucra dos puntos de fuga pero me resultó bastante malo, en el proceso logré echarle un vistazo a lo que me espera y ahora sé que para abordar ese tema será bueno mejorar el presente script (de un punto de fuga) agregándole más funciones complejas y útiles que permita un giro en 2D y agregar colores mediante triángulos.

Visión a futuro:
Bueno…, sin esperanza no hay programación. Más adelante si Dios lo permite y si recibo ayuda intelectual y quizás económica, pienso crear un script más complejo que permita la formación de figuras 3d a base de triángulos en el espacio, lo que me permitirá crear una versión de starfox de snes. Ya sé que game  maker cuenta con un avanzado sistema 3d que lo facilita todo, pero tomaré el camino difícil para encontrar en el proceso otros códigos más complejos que jamás pudiese haber imaginado.

Imágenes:
Bueno, estos son algunos juegos que quiero aprender a programar desde cero empleando proyección cónica, los cuales me mantienen motivado para seguir con este tema tan fantástico:

Clásico laberinto de Windows 95


Top Gear snes


Mario Kart Snes

Star fox snes



Cubo a cubo lograremos el objetivo



Nos vemos.



4
Desarrollo de Scripts / point_distance y point_direction
« en: Abril 21, 2021, 04:24:40 am »
Nombre del autor : Reyes Dávila.
Breve descripción de su función : Calcular la distancia  y la dirección entre dos puntos de igual forma que las funciones originales, sin usar las funciones originales.
Versión GM utilizada : Game maker 4.3c (March 4, 2003) hasta la Game Maker htm5.

Código del script:
point_direction_plus(x1,y1,x2,y2)
///point_direction_plus(x1,y1,x2,y2)
//Obteniendo argumentos iniciales
//X1 y Y1 representan el origen o el objeto origen del cual se quiere
//tomar la dirección.
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;

//Determinando las medidas entre puntos (no es la distancia entre puntos)
//No es más que el valor absoluto de la resta de los valores en X y Y.
//en otras palabras estamos calculando las longitudes de los catetos de
//un triángulo rectángulo, para luego poder emplear el teorema de pitagoras.
medidaX=abs(x1-x2); //medida en X
medidaY=abs(y1-y2); //medida en Y

//Calculando la dirección:
//Verificando que la longitud o medida X nunca llegue a cero para evitar error en la división.
//Si la medida llegara a cero se produciría un error de división, es
//por eso que cuando la medida X llega a cero se tomará un valor muy
//cercano a cero, pero nunca cero.
if(medidaX=0){medidaX=0.0005}

//Calculando el arco tangente de la división de la medida Y
//entre la medida X, esto es solo la formula trigonométrica que se
//utiliza para determinar el ángulo de un triángulo rectángulo.
angulo1=arctan(medidaY/medidaX);

//Pasando radianes a ángulo
//Como el resultado anterior es devuelto en radianes se
//utiliza la siguiente función para pasarlo a grados.
//Hay muchas formas de pasar radianes a grados:
//Usando la función radtodeg de la siguiente forma:
//angulo1=radtodeg(angulo1);
//O tambien podemos multiplicar radianes por 57.296 (ya
//que un radian son 57.296 grados) de la siguiente manera:
//angulo1=angulo1*57.296
//Yo prefiero la que no usa funciones del game maker.
angulo1=angulo1*57.296;

//Determinando el cuadrante del plano en donde se encuentra el punto (x2,y2).
//La fórmula anterior funciona correctamente solo para el cuadrante I del plano,
//es por eso que deben crearse condiciones para poder ajustar los valores
//según el cuadrante en donde se encuentre el punto.
cuadrante="";
if(x1 <= x2 && y1 >= y2){cuadrante="I"}
if(x1 >= x2 && y1 >= y2){cuadrante="II"}
if(x1 >= x2 && y1 <= y2){cuadrante="III"}
if(x1 <= x2 && y1 <= y2){cuadrante="IV"}

//Ajustando los valores según el cuadrante
//Según en donde se encuentre el punto en el plano, se sumarán o restarán
//los grados necesarios para poder obtener los grados correctos.

if(cuadrante="I"){angulo1=angulo1}
if(cuadrante="II"){angulo1=180-angulo1}
if(cuadrante="III"){angulo1=180+angulo1}
if(cuadrante="IV"){angulo1=360-angulo1}

//Devolviendo la dirección entre los puntos en grados.
return angulo1;


point_distance_plus(x1,y1,x2,y2)
///point_distance_plus(x1,y1,x2,y2)
//Obteniendo argumentos iniciales
//X1 y Y1 representan el origen o el objeto origen del cual se quiere
//tomar la distancia.
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;

//Determinando las medidas entre puntos (no es la distancia entre puntos)
//No es más que el valor absoluto de la resta de los valores en X y Y.
//en otras palabras estamos calculando las longitudes de los catetos de
//un triángulo rectángulo.
medidaX=abs(x1-x2); //medida en X
medidaY=abs(y1-y2); //medida en Y

//Calculando la distancia
//El teorema de Pitágoras
//Si a y b son las longitudes de los catetos de un
//triángulo rectángulo y c es la longitud de la hipotenusa,
//entonces la suma de los cuadrados de las longitudes de los
//catetos es igual al cuadrado de la longitud de la hipotenusa.
distancia=power(medidaX,2)+power(medidaY,2)
distancia=sqrt(distancia);

//Devolviendo la distancia
return distancia;


Modo de uso: se emplean igual que las funciones originales “point_direction” y “point_distance”.
Fueron creadas para ser utilizadas si fallaren las funciones originales al exportar a alguna plataforma y también para que sirvan de guía a la hora de comprender cómo calculan la distancia y la dirección.

Imágenes que utilicé para entender el procedimiento



Bibliografías consultadas

Calcular ángulos
https://es.wikihow.com/calcular-%C3%A1ngulos

TRIANGULO ISÓSELES
https://es.wikipedia.org/wiki/Tri%C3%A1ngulo_is%C3%B3sceles

El teorema de Pitágoras
https://www.montereyinstitute.org/courses/DevelopmentalMath/TEXTGROUP-1-8_RESOURCE/U07_L1_T4_text_final_es.html

5
General / Mensaje de hoy
« en: Enero 19, 2021, 01:39:21 pm »

Martes 19 de enero del 2021

Imagen recomendada: pixabay- AnnaliseArt / 8318 images



Color recomendado: Violeta
Pixabay - bngdesigner / 43 images



Frase: Buenos días Francia.

Mensaje:
Te has descubierto un nuevo talento y hoy debes aplicarlo, no dejes que baje tu autoestima y apresúrate en volverla a subir, bien sabes que con tu alegría podrás ayudar  a muchos y es tu responsabilidad transmitir la buena energía que Dios te ha dado hoy. Vas por buen camino para conseguir las cosas buenas que deseas y tú lo sabes.

Versículo:
Proverbios 17:22 Un corazón que está gozoso hace bien como sanador, pero un espíritu que esta herido seca los huesos.

Músicas y videos recomendados para este día:

Música francesa de café - Música romántica francesa de acordeón y Jazz - Buenos días, Francia


Me voy a comer el mundo - París


Louane - jour 1 (español - francés)






6
General / Anécdota Advengers
« en: Enero 17, 2021, 05:23:38 am »
Anécdota Advengers



Advertencia:

Esto es una opinión personal sobre una anécdota que tuve mientras estábamos en la moda Advengers.


Explota Moda adverngers:

Surge la moda Advenger y todo el mundo estaba hablando de esas películas, de cuan sorprendente eran. Yo, no había visto ninguna de esas películas  y me parecía extraño que muchos compañeros hablaban en cada momento sobre los temas relacionados a Advengers, estaba un poco molesto por tanta propaganda que le hacían pero en el fondo quería ver alguna de esas películas.


Youtube y los sorprendentes trailers.

Estaban promocionando la última película de advengers y vi los tráiler una y otra vez tratando de percibir y comprender la composición artística que había hecho tan interesante a esa película, solo encontré algunas emociones y sentimientos plasmados en esos geniales y sorprendentes trailes. Aquí les dejo el traile.




El día del cine:

Cuando vi la película por primera vez,  aparece en las primeras escenas un hombre corpulento con cara morada (Thanos, el villano) que se encuentra cosechando su alimento en un ambiente natural bastante agradable pero está un poco enfermo, carece de recursos económicos se parece a un campesino que ha logrado estar en harmonía con la naturaleza y a los pocos minutos, los héroes invaden su humilde hogar y sin pensarlo dos veces le quitan la vida.





Bueno, adiós.


7
General / Principio de originalidad
« en: Enero 13, 2021, 11:44:31 pm »
Principio de originalidad.




Advertencia:

Antes de comenzar es necesario mencionar que estos son pensamientos personales y carecen de estudio científico, por lo tanto no pueden ser considerados como verdaderos.

Concepto propio:
Lo que intentaré exponer es mi propia visión del concepto “original” y el camino que deben seguir los artistas para crear obras originales, entendiéndose como artista a todo aquel que produce una expresión artística, por tanto toda la humanidad es artista y en esta comunidad somos artistas programadores que expresamos nuestro arte mediante la creación de video juegos.

 Para comenzar voy a definir las palabras: origen, originalidad, original y originar, mediante conceptos extraídos de tres diccionarios que tengo en físico y los voy a ocultar en spoiler, ya que no son relevantes y solo servirán para los que quieran comprender un poco más.

Spoiler
Diccionario Caracol, editorial Santillana, primera edición: enero de 1997.
Origen: s.m. 1. Principio o comienzo de algo. 2. Lo que produce una cosa. 3. Familia de la que procede una persona: Es de origen noble. 4. Lugar de donde procede una persona o cosa. EXPR. Dar origen a algo: Causarlo o provocarlo. SIN. 1. Inicio. 1 y 3. Nacimiento. 2. Motivo, causa. 3. Ascendencia. ANT. 1. Fin. 3. Descendencia.

Original adj. 1.1 Del origen o principio. 2. Distinto de la mayoría, que se sale de lo corriente. 3. Relacionado con obras o películas que están en el idioma en que se han hecho: versión original. || adj. Y s.m. 4. Aquello de lo que se hacen copias, reproducciones o versiones. SIN. 1. Originario, inicial. ANT. 2. Normal. 3. Doblado.

Originalidad s.f. Característica de original.

Originar v. 1. Producir, ser origen, motivo o causa de algo. || originarse 2. Tener alguna cosa su origen o principio en otra. SIN. 1. Causar, provocar.

Diccionario Larousse Básico escolar, Ramón García Pelayo y Gross, por ediciones Larousse, S.A y Cía. Editorial Ultra, S.A de C.V. Centeno 162 Col. Granjas Esmeralda, México 09810,D.F., Marzo del 2008.

Origen m. Principio de una cosa. || Causa, motivo. || Ascendencia, clase social de donde procede una persona. || Patria: de origen español. || Etimología.

Original adj. Relativo al origen. || Que no es copia o imitación. || Que parece haberse producido por primera vez: idea original. || Singular, extraño, raro: un hombre muy original. (ú. t. c. s.).|| -M. Manuscrito primitivo del que se sacan copias. || Manuscrito que se da a la imprenta.

Originalidad f. Calidad de original.
Originar v.t. Dar origen o lugar, ser causa. || --V. pr. Traer una cosa su principio u origen de otra.

Diccionario El pequeño Larousse ILUSTRADO 2010, Editorial Larousse.
Origen s.m. (lat. Origo, -inis), procedencia de algo: el origen de la vida. 2. Causa, lo que hace que una cosa se produzca: el origen de una discusión. 3. País, lugar donde ha nacido una persona o de donde proviene una cosa. 4. Ascendencia, clase social a la que pertenece o de la que procede una persona: origen humilde. 5. HIST. NAT. Punto de fijación de un órgano, lugar donde empieza este órgano: el origen de una hoja. 6. MAT. Punto da partir del cual se miden las coordenadas de un punto o la longitud de un segmento. <> Dar origen Causar. De origen: se dice del lugar, país, etc., de donde procede una persona o cosa; se dice de las circunstancias que ya tenía una cosa desde su inicio: defecto de orden.

Original adj. (lat. Originalis). Relativo al origen. 2. Se dice del artista, intelectual, etc., cuya producción es muy personal, etc.: Cuadro original. 4. Singular, excéntrico. <>adj. Adj. Y s.m Se dice de lo que no es repetición, copia, traducción o imitación de otra cosa, especialmente las obras intelectuales o artísticas. <> s.m. Ejemplar o modelo del que se copia. 2. Cosa o persona que sirve de modelo a un artista. 3. ART.GRÁF. Manuscrito o modelo que se le da a la imprenta para que, de acuerdo con él, se proceda a la composición tipográfica. <> Grabado original: grabado concebido y ejecutado por un solo y mismo artista. Pecado original: Pecado que todas las personas ha heredado de Adán y Eva, según las creencias cristianas.

Originalidad s.f. Cualidad de original.

Originar v.tr. Producir o dar origen o principio a una cosa. <> originarse v.prnl. Porceder una cosa
de otra.


¡La originalidad, lo nuevo, lo que el hombre tiende a ignorar, el principio de la originalidad!




Ser original:

Ser original es sinónimo de ser diferente. Una obra artística es única cuando es diferente a las demás. De las definiciones del diccionario que vamos a tomar son las que concuerdan con que: ser original es salir del pensamiento común.

Para producir obras originales debemos contar con pensamientos originales, pero si el pensamiento original no es fácil de obtener, lo que debemos es englobar todas las ideas de la humanidad dentro de un concepto para luego extraer las ideas repetitivas y lo que nos sobre será original.Para lograr eso primero tenemos que descifrar cual es el pensamiento común que gobierna a la humanidad para luego obtener un pensamiento fuera de lo común.  ???

Muchos libros concuerdan en que la humanidad puede dividirse en dos grandes grupos o pensamientos: los pensamientos que buscan la paz y los que buscan la guerra. Ahora nos queda saber cuál de estos dos pensamientos está reinando en la humanidad para saber hacia dónde se orienta la originalidad.




Análisit:

Debido a que la originalidad se produce cuando salimos del pensamiento común podremos decir que si en el mundo reinara la paz, la originalidad estaría en la guerra y las obras artísticas originales seria aquellas con contenido violento. Pero como en el mundo actual reina la violencia, los contenidos originales o diferentes se hallan buscando la paz y la harmonía.

En la siguiente imagen se explica cómo llegamos a este punto.




Entonces para ser originales tenemos que buscar algo fuera de lo común que contenga la paz y la armonía. En el siguiente diagrama de ilustra esa definición:




 Ahora en base a ese concepto de originalidad; vamos a comparar dos historias cortas para saber si podemos determinar cuál de estas es más original.

Historia 1: Un villano se apodera de un pueblo, entonces surge un valiente que logra derrotarlo mediante el uso de armas modernas.
Historia 2: Un villano se apodera de un pueblo, entonces surge un valiente que logra hacerlo reflexionar y al final el villano explica que había sido dominado por la codicia.

Según las definiciones presentadas de originalidad, podemos decir que  la historia 2 es la más original ya que presenta una trama fuera de lo común, en cambio la historia 1 presenta un modelo de trama que se ha repetido en diversas expresiones artísticas como se indica en la siguiente imagen:




Vamos a hacer un diagrama de torta para visualizar lo que está pasando.




Bueno aqui les dejo un par de ejercicios para que determinen la historia más original.




Para finalizar voy a decir que desde mi punto de vista, si lo que queremos es crear algo diferente, nuevo y original, tenemos que apegarnos a los conceptos de justicia, paz, bondad, benignidad, amistad y todas aquellas cosas que forman parte del pequeño y oculto lado bueno de la vida. Hay una expresión popular que dice: “si quieres ser original, prepárate para ser copiado”, esa expresión no es del todo cierta, ya que la humanidad  no tiende a copiar lo bueno.

Bueno adiós


8
General / Concepción de juego
« en: Enero 12, 2021, 07:57:07 pm »
Concepción personal de "buen juego".



Hola, gusto en saludarlos.

Tengo una concepción de “buen juego”, la cual no considero como la mejor del mundo, solo es mi concepción de “juego adecuado”, y no quiero imponerla ni utilizarla para criticar a otros juegos que aunque no cumplen con mis exigencias personales, me han hecho reir y he disfrutado con ellos.

A continuación se presentan las características que deben tener los “buenos juegos”, según mi concepción personal, “Concepción personal”.


1.   Realismo:

El juego debe presentar una historia realista y apartarse de lo irreal. Lo más ideal sería que el autor del juego plasme su vida real.


2.   Educativo:

Que sirva para orientar o para fomentar una conducta social adecuada como por ejemplo: la amistad, compañía, afecto, solidaridad, compasión, trabajo, etc... En este grupo también entran los juegos de matemáticas, física, química y otros que sirvan para aprender.


3.   Herramienta:

Debe servir como herramienta informática para calcular, comparar, buscar información, estudiar, etc...



4.   Seriedad:

El contenido debe ser serio, evitando la comedia y los temas infantiles. La mejor comedia es la que surge de la seriedad, “según mi parecer”.



5.   Pasajero:

el juego debe diseñarse para que sea útil en un tiempo determinado y no como algo que deba durar para siempre, debe adaptarse al momento actual, a las situaciones mundiales actuales, para luego desaparecer. Por lo tanto el programador debe saber desde siempre que su juego dejará de ser útil, importante y necesario. Esto le puede permitir la libertad de crear con más agilidad sin tener la mente puesta en crear cosas grandiosas las cuales terminan desmotivándolo, más bien se enfoca en crear cosas sencillas para compartir algo humilde.



6.   Imitable:

 El programador debe alejarse del deseo de crear algo que sea difícil para otros, más bien debe crear cosas básicas que puedan ser imitadas por programadores aprendices, de esta forma podrá demostrar que con cosas pequeñas se pueden crear cosas agradables, y que no se requiere de muchas apariencias para lograr cautivar a las personas.



7.   Endógeno:

Que fomente la vida endógena, que transmita un estilo de vida acorde con el cuidado del medio ambiente y el desarrollo de las personas, evitando el contenido violento, la codicia, el capitalismo, consumismo y todo aquello que pueda ser perjudicial para la sociedad.



Hay tres cosas más que considero que deberíamos tomar en cuenta todos los diseñadores de juegos:


1.   Monetización:

El programador, según mi parecer debe programar para su propio desarrollo personal y no para monetizar. La monetización puede convertirse en un motivo vano el cual entorpece el espíritu del juego en si. Por tanto lo mejor sería que el programador cuente con un ingreso económico producto de una actividad de su vida diaria y no que dependa de la monetización y que pueda dedicarse a programar por gusto y no por interés. Además de eso, tener un trabajo duro y humilde puede ayudarnos a producir juegos más humanos, admirables que levante el espíritu de las personas. Y podemos aprovechar eso para decirles a las personas que pese a nuestro sufrimiento hemos logrado encontrar la felicidad y vamos a demostrarlo mediante nuestra expresión artística plasmada en un video juego.


2.   Grano de arena:

 Los juegos deben ser pequeños pero la información debe ser muy útil. Como ejemplo: se puede utilizar el contenido de un video educativo de YouTube y transformarlo en un video juego.


3.   En cuanto a la diversión:

 Al igual que la comedia, debe surgir sola, por lo tanto el programador no debe buscar que su juego sea divertido, sino que debe buscar que su juego sea útil y de esa forma logrará que sea sinceramente divertido.

¡Adiós!

9
General / Html, Css y JavaScript
« en: Enero 11, 2021, 08:37:25 pm »
Hola, saludos a todos.

Existe un conjunto de videos donde Victor Robles (nuestro amigo de youtube), nos explica las bases de Html, Css y JavaScript, en tan solo 15 minutos. Si estás cansado, busca un vaso con agua y ven con nosotros a estudiar estos lenguajes.


Html


Css


JavaScript



10
Juegos completos / Adiós, capitán.
« en: Diciembre 31, 2020, 12:56:32 am »

11
Juegos completos / El pan de nuestra familia
« en: Septiembre 25, 2020, 03:32:22 am »


El pan de nuestra familia


Otro


GM: Studio

Es un Juego corto con una breve historia basada en hechos reales (con algunas modificaciones), donde intentaré contarles una pequeña vivencia familiar.


12
Juegos completos / Aférrate a mí
« en: Agosto 20, 2020, 10:39:21 am »


Aférrate a mí


Otro


GM: Html5

En medio de esta crisis, un hombre intenta consolar a su mujer.




Se juega directamente en la siguiente web.
https://dixonysusjuegoseducativos.000webhostapp.com/


Sinopsis

Tema: la triste exclusión social que sufren las personas que han contraído alguna enfermedad contagiosa.

Botones: valoro mucho la intuición, me gusta que las personas puedan encontrar los botones por sus propios medios. Admito que todavía me falta mucho por aprender sobre eso.

Duración: Lamentablemente es de poca duración, mi objetivo era crear un juego simple y corto con un mensaje profundo.

Anécdota:
Al acercarme a cierto grupo social, escuche una conversación sobre el virus que nos asecha, en ella se recomendaba no volver a visitar ni tratar a algunas personas lo cual me hiso sentir mucha tristeza y espontáneamente me surgió la motivación de crear un juego donde se pudiera transmitir el dolor que sienten las personas excluidas para generar conciencia en las personas discriminadoras. La motivación fue tal que comencé a crearlo a las 11:00 pm (23:00) y no dormí nada hasta que lo culminé las 5:00 am aproximadamente.

Datos técnicos:
Aunque solo es un juego simple, sirve de base para comprender la importancia de la accesibilidad y para establecer una nueva estrategia de programación o un nuevo modelo de juego que nos permita hacerle frente a la gran ola de video juegos.

Retos informáticos por alcanzar:

Estos tres retos informáticos tienen el propósito de aumentar la accesibilidad e inteligibilidad del juego.
Inteligibilidad del juego: la capacidad que tiene un juego para ser comprendido por diversos grupos sociales, a esto se aplica la posibilidad de cambiar el idioma.

Accesibilidad del juego: Posibilidad de acceder al juego de manera fácil e inmediata.
1.   Multisistema: Lograr que se pueda ejecutar en móviles desde la web html5. Para esto es solo es necesario integrar el movimiento del mouse y permitir la adaptación de pantallas.
2.   Guardado web: Lograr que la web al ser guardada pueda guardar también el juego correctamente.
3.   Idioma: Lograr que se presente en dos o más idiomas.

Correcciones al juego:
1.   Uso de teclas.
2.   Palabras escritas incorrectamente.


13
General / Game Maker Fronteras
« en: Junio 18, 2020, 09:13:40 pm »
Hola, gusto en saludarlos.

Hay una propiedad en paper mario de wii  que siempre me llamó bastante la atención, es la propiedad de transformar mundos 3D en 2D y viceversa, tráiler .
Game maker puede hacer eso y mucho más, pero es necesario traspasar algunas fronteras de programación. No vengo a decirles cómo se crea ese efecto, vengo a hablarles de las nuevas fronteras, de esos nuevos retos que he encontrado al programar en Game Maker.





Mark Overmars declaró en su manual de Game Maker:
Citar
Entonces, ¿esto significa que es imposible crear tus propios juegos de computadora? Afortunadamente no. Por supuesto que no deberías Espere crear su propio Quake o Age of Empires en unas pocas semanas.
Designing Games with Game Maker Version 6.1 Written by Mark Overmars.

Refurtando, diré que con game maker y herramientas especiales, se puede crear un Age of the empire o Quake en menos de un més. Las herramientas que se requerirían para lograr eso, no existen aún o no las conozco, pero sé que se pueden desarrollar con game maker al igual que con otros lenguajes de programación. Estas herramientas imaginarias, también pudiesen ser utilizadas para crear cosas sorprendentes las cuales enlistaré:




14
Hola gusto en saludarlos de nuevo. Dios los cuide.

Si Dios me lo permite implementaré en mis posteriores juegos, pequeñas entrevistas, test, en cuentas y diversas técnicas de recolección de datos. Con el objetivo de  conocer los distintos gustos y preferencias que tienen los usuarios en cuanto a video juegos, De esta forma podré tomar buenas decisiones en la creación juegos.

La dificultad que presento es que no sé nada sobre conexiones online y deseo pasar la respuesta de cada jugador a un solo archivo de texto que pudiese estar alojado google drive, en alguna nube o un hosting.

Déjenme explicar un poco mejor la cosa, con unas imágenes.



Solicito todo tipo de ideas, métodos, códigos, algo que me dé algo de luz.

15
General / Tips para crear juego de preguntas y respuestas
« en: Mayo 26, 2020, 07:42:02 am »
Hola, saludos cordiales.

Me dedico a crear juegos de preguntas y estos son algunos de ellos:
1. Queremos ser abogados
2. Fundamentos básicos de Godot
3. ¿Cómo preparar vitel toné?
4. Wikipedia JavaScript


Actualmente me encuentro creando otro.

Para facilitar la creación de un juego de preguntas y respuestas, he desarrollado un programa gratuito, que mediante la ayuda de Microsoft Exel se logra estructurar y organizar las preguntas de manera rápida, este programa se llama: Preguntas exel a GMK.

¿Qué puedo lograr con la ayuda de este programa?
*.   Redactar preguntas de manera rápida con sus respectivas alternativas mediante Microsoft Exel.

¿Qué obtengo con este programa?
*.   Un código para Game maker que contiene una lista de preguntas organizadas con sus respectivas alternativas.

¿Cómo se utiliza este programa?

1.   Creamos las preguntas organizadas en exel.


2.   Seleccionamos todas las casillas y la pegamos en un archivo de texto.


3.   Ejecutamos el programa seleccionamos el archivo de texto y creamos el código.


4.   Integramos este código a game maker.


Puedes descargar este programa por mega.
 

También se ha adjuntado el archivo para los usuarios registrados.

A futuro si Dios me lo permite, lograré mejorar el programa para generar juegos completos. Donde se pueda elegir entre distintos estilos y tomando como base los juegos de preguntas más populares.

Anexos:
Juego de preguntas y respuestas, los cuales serán tomados como referencia para mejorar el programa:

Juego de cultura general, tambien llamado maratón de preguntas.


Quien quiere ser millonario para gba


Hacer preguntas o en otras palabras hacer reactivos:

Elaborar preguntas puede ser una tarea fácil para algunas personas, pero para otros puede ser complicado y confuso. La elaboración correcta de las preguntas facilitará su compresión, es por eso que es de vital importancia estudiar lo que se conoce como la elaboración de reactivos que no es más que la elaboración de preguntas, y para eso se presentará a continuación un enlace a una web que nos permitirá comprender lo que son y cómo se denominan cada una de las partes que componen a las preguntas de selección simple, las cuales aplicaremos en nuestros video juegos.

Elaboración de reactivos
https://es.coursera.org/lecture/evaluacion-aprendizaje-enfoque-cuantitativo/elaboracion-de-reactivos-gqqZq

Páginas: 1 2 3