(http://www.comunidadgm.org/images/pl_gen.png) Plataformas | (http://www.comunidadgm.org/images/pl_ver.png) GM4 |
(http://www.comunidadgm.org/images/pl_link.png) Lo puedes ejecutar desde pc, movil, table, etc..sin descargar en el siguiente enlace: https://www.kongregate.com/games/reyesdavila1987/la-carreta-precisa ANDROID: https://mega.nz/#!aroHxIAA!TWtJpnlzkcKOqLKnhEyQ61kvpb5gEKLyP5rrTAkk-7U WINDOWS: https://mega.nz/#!X35HEQDD!TX4D32Er9KhN5qjF6cQHBFxZ271gll2DaNfeMoOp6VM (http://www.comunidadgm.org/images/pl_info.png) Presenta tres características: 1. Mono codigo: Se programó con un unico codigo para el evento draw de un objeto principal. 2. Compatibilidad: (https://image.ibb.co/drABtp/versiones.png) (https://imgbb.com/) El código interno del programa es el mismo en todas las versiones del Game Maker desde Game maker 4.3c (March4, 2003) hasta GM studio2. La versión del game maker 3.3 no fue calificada por que no usa la variable sprite_index y en ves de usar mouse_x usa mousex, las posteriores versiones 1 y 2 tampoco. 3. Multisistema: La versión html5 es ejecutable en android, windows, mac y otros sistemas. No requiere descarga. En moviles y tablets hay que activar en el navegador la vista de escritorio, modo pc o vista ordenador. Entrando en configuración-sitio de escritorio. :o sorprendentemente el código usado es el mismo para la versión android. y no requiere más modificación por lo tanto este juego pudo haber sido creado en el 2001 e inclusive poder jugarse en android oreo sin modificar su código fuente (http://www.comunidadgm.org/images/pegi/terror.png) |
(http://imgfz.com/i/490HadY.png) (https://dixonysusjuegoseducativos.000webhostapp.com/juegos_completos/la_carreta_precisa/index.html) Jugar desde la siguiente web Para todas las plataformas. bit.ly/la_carreta_precisa (https://dixonysusjuegoseducativos.000webhostapp.com/juegos_completos/la_carreta_precisa/index.html) Más información: Hoy he venido a compartir con ustedes la primera actualización de este juego llamado "la carreta precisa", mi objetivo era crear un juego que se pudiese ejecutar en todos los game makers y que fuera fácil de armar y cuyos recursos fueran fáciles de obtener. COMPATIBILIDAD: el juego podrá ejecutarse en cualquier Game Maker desde la versión 4 del año 2000 hasta la actual game maker studio 2. MULTIPLATAFORMA: el juego podrá exportarse a cualquier plataforma. ARMABILIDAD: El juego puede armase fácilmente siguiendo los siguienes pasos. Para armar este juego necesitas: Materiales: 1. Dos sprites, son las dos imágenes llamadas: sprite0 y sprite1 sprite0 (https://drive.google.com/file/d/1Hxvj_F4g2FuTjw6dNdVof_N9aVV3rPJF/view?usp=sharing) sprite1 (https://drive.google.com/file/d/1tguD-d7alvcGgvszwLOh4hgnVRLQ-nqr/view?usp=sharing) 2. El script: es el código llamado "script"; 3. Cualquier game maker superior a la versión 3.3 (April 3, 2001), se incluye la versión 4. Instrucciones: a. Abre tu game maker. a. Cargar el sprite0, el cual debe ser llamado "sprite0". b. Cargar el sprite1, el cual debe ser llamado "sprite1". c. Crear un objeto. d. Crear una room con un tamaño de 320x240. e. Colocar el objeto en cualquier parte de la room. f. Colocar en el evento draw (dibujo) del objeto, el siguiente script: Script que controla todo el juego: |
//Simulando el evento create con la variable direction
if(direction=0)
{
//highscore_clear();
font_size=12;
//font_name="Arial";
if(highscore_value(1)=0)
{
highscore_add("Viajes pokémon",5500);
highscore_add("Festival de Cannes",3542);
highscore_add("Tom Holland",3339);
highscore_add("El sr d los Anillos",3332);
highscore_add("NFT y criptoarte",1078);
highscore_add("The Game of Life",896);
highscore_add("Princesa Diana",789);
highscore_add("Huracán Elsa",492);
highscore_add("Vehículo Tesla",448);
highscore_add("COVID-19",200);
}
//Para el objeto mapa
sprite_index=sprite0;
x=0;
y=0;
image_index=0;
image_speed=0;
mapa_activo=0;
click_time=0;
secuencia_image=1;//secuencia de imagenes
estado="portada";//Estado del juego
show_score=0;
velocidad=1;
//Para el mapa
idmap0_x=x;
idmap0_y=y;
idmap0_image=image_index;
ancho_mapa=319;
//Para el mapa 2
idmap1_x=idmap0_x+320;
idmap1_y=y;
idmap1_image=1+floor(random(image_number-1));
idmap1_image=11;
//Para el objeto player
idman_x=149;
idman_y=143;
idman_image=0;
idman_image_inicio=0;
idman_image_final=3;
//Para la rueda
idrueda_x=80;
idrueda_y=151;
idrueda_image=4;
idrueda_image_inicio=4;
idrueda_image_final=23;
idrueda_direction=0;
idrueda_gravedad=0;
//para el centro de la rueda
idcentro_rueda_x=idrueda_x+20;
idcentro_rueda_y=idrueda_y+20;
//Para la carreta
idcarreta_x=48;
idcarreta_y=idrueda_y-32;
idcarreta_image=42;
idcarreta_direction=0;
idcarreta_gravedad=0;
//para el centro de la carreta
idcentro_carreta_x=idcarreta_x+52;
idcentro_carreta_y=idcarreta_y+52;
//Para el titulo
idtitulo_x=90;
idtitulo_y=40;
idtitulo_image=61;
//Para el texto de portada
idtexto_portada_x=100;
idtexto_portada_y=70;
nombre=highscore_name(1);
puntaje=highscore_value(1);
idtexto_texto=string(nombre)+"..."+string(puntaje);
//para el boton comenzar
idcomenzar_x=room_width-64-10;
idcomenzar_y=106;
idcomenzar_image=62;
idcomenzar_estado=0;
//para el boton reiniciar
idreiniciar_x=10;
idreiniciar_y=106+64+10;
idreiniciar_image=64;
idreiniciar_estado=0;
//para el boton TOP 10
idtop10_x=room_width-64-10;
idtop10_y=106+32+10;
idtop10_image=66;
idtop10_estado=0;
//para el boton volver
idvolver_x=5;
idvolver_y=5;
idvolver_image=68;
idvolver_estado=0;
//para la cuerda
idcuerda_x1=idcentro_rueda_x+35*cos(idcarreta_direction*pi/180);
idcuerda_y1=idcentro_rueda_y-35*sin(idcarreta_direction*pi/180);
idcuerda_x2=idman_x+23;
idcuerda_y2=idman_y+13;
//para el punto de colision A
idcoliciona_x=idcentro_rueda_x-36*cos(idcarreta_direction*pi/180);
idcoliciona_y=idcentro_rueda_y+36*sin(idcarreta_direction*pi/180);
//para el punto de colicion con el player;
idcolicion_man_x=idman_x+26;
idcolicion_man_y=idman_y+46;
direction=1
}//fin if(direction=0)
//Evento draw
//Botones a usar
if(keyboard_check(vk_f2)){game_restart()}
//////////////////////////////Juego iniciado
if(estado="juego iniciado")
{
//aumentando velocidad
velocidad+=0.003;
//Para la carreta
//Movimiento y
idcarreta_gravedad+=1;
if(idrueda_gravedad>10){idrueda_gravedad=10}
while((idcarreta_y+idcarreta_gravedad>idrueda_y-32)and (idcarreta_gravedad)){idcarreta_gravedad-=1}
idcarreta_y+=idcarreta_gravedad;
if(idcarreta_y>idrueda_y-32){idcarreta_y=idrueda_y-32;idcarreta_gravedad=0}
//cambiando la direccion de la carreta
if(mouse_y>0 && mouse_y<240)idcarreta_direction=90-floor(mouse_y/6.6)*5;
//Cambiando la imagen de la carreta
if(mouse_y>0 && mouse_y<240){idcarreta_image=42-18+floor(mouse_y/6.6)};
//para el centro de la carreta
idcentro_carreta_x=idcarreta_x+52;
idcentro_carreta_y=idcarreta_y+52;
//para el punto de colision A
idcoliciona_x=idcentro_carreta_x-36*cos(idcarreta_direction*pi/180);
idcoliciona_y=idcentro_carreta_y+36*sin(idcarreta_direction*pi/180);
for(i2=0;i2<=1;i2+=1)
{
if(i2=0){x=idmap0_x;image_index=idmap0_image}
if(i2=1){x=idmap1_x;image_index=idmap1_image}
//Detectando colicion
for(i=0;i<=72;i+=5)
{
posx=idcoliciona_x;
posy=idcoliciona_y;
posx+=i*cos(idcarreta_direction*pi/180);
posy-=i*sin(idcarreta_direction*pi/180);
//Colisionando y finalizando el juego
if((instance_position(posx,posy,0)=id) and (estado="juego iniciado")){estado="game over"}
}
}// fin for(i2=0;i2<=1;i2+=1)
/////////////////para la cuerda
idcuerda_x1=idcentro_carreta_x+35*cos(idcarreta_direction*pi/180);
idcuerda_y1=idcentro_carreta_y-35*sin(idcarreta_direction*pi/180);
idcuerda_x2=idman_x+23;
idcuerda_y2=idman_y+13;
}//fin if(estado="juego iniciado")
/////////////////////////////////////////////////////////////////////
//////////////////////////////Juego iniciado
if(estado="juego iniciado"){
//sumando puntos;
score+=1;
//Para los mapas
if(idmap0_x>idmap1_x){idmap1_x-=velocidad;idmap0_x=idmap1_x+ancho_mapa}
if(idmap1_x>idmap0_x){idmap0_x-=velocidad;idmap1_x=idmap0_x+ancho_mapa}
if(idmap0_x<-ancho_mapa){idmap0_x=idmap1_x+ancho_mapa;idmap0_image=1+floor(random(image_number-1))}
if(idmap1_x<-ancho_mapa){idmap1_x=idmap0_x+ancho_mapa;idmap1_image=1+floor(random(image_number-1))}
//Para La rueda
//Movimiento y
idrueda_gravedad+=2;
if(idrueda_gravedad>10){idrueda_gravedad=10}
//Para el player
//Movimiento y
vs=5
////////////////////////////////////Duplicando la posicion del objeto
for(i2=0;i2<=1;i2+=1)
{
if(i2=0){x=idmap0_x;image_index=idmap0_image}
if(i2=1){x=idmap1_x;image_index=idmap1_image}
//Para el player
//para el punto de colicion con el player;
idcolicion_man_x=idman_x+26;
idcolicion_man_y=idman_y+46;
//Movimiento y
while((instance_position(idcolicion_man_x,idcolicion_man_y+vs,0)=id)and vs){vs-=1}
idman_y+=vs;
while(instance_position(idcolicion_man_x,idcolicion_man_y,0)=id)
{
idman_y-=1;
//para el punto de colicion con el player;
idcolicion_man_x=idman_x+26;
idcolicion_man_y=idman_y+46;
}
//Para La rueda
//Movimiento y
idrueda_direction-=(1+velocidad);
if(idrueda_direction>360){idrueda_direction-=360}
if(idrueda_direction<0){idrueda_direction+=360}
posx=0;
posy=0;
for(i=0;i<360;i+=5)
{
direction_ram=(idrueda_direction+i-15);
//if(direction_ram>360){direction_ram-=360}
//if(direction_ram<0){direction_ram+=360}
dis=28;
if(frac(i/180)=0){dis=30}
posx=idcentro_rueda_x+dis*cos(direction_ram*pi/180);
posy=idcentro_rueda_y-dis*sin(direction_ram*pi/180);
while(instance_position(posx,posy,0)=id)
{
idrueda_y-=1;
//para el centro de la rueda
idcentro_rueda_x=idrueda_x+20;
idcentro_rueda_y=idrueda_y+20;
posx=idcentro_rueda_x+dis*cos(direction_ram*pi/180);
posy=idcentro_rueda_y-dis*sin(direction_ram*pi/180);
}
//if(frac(i/120)=0)
//if(dis=27 and i2=0)
{
//draw_circle(posx,posy,2);
//draw_line(idcentro_rueda_x,idcentro_rueda_y,posx,posy);
}
while((instance_position(posx,posy,0)=id) and (idrueda_gravedad))
{
//gravedad
idrueda_gravedad-=1;
}
}// fin for(i=0;i<360;i+=5)
}//fin for(i2=0;i2<=1;i2+=1)
////////////////////////////////////////Fin Duplicando la posicion del objeto
idrueda_y+=idrueda_gravedad;
//para el centro de la rueda
idcentro_rueda_x=idrueda_x+20;
idcentro_rueda_y=idrueda_y+20;
////////////////secuencia de imagenes
//Para la rueda
idrueda_image=idrueda_image_inicio+floor(idrueda_direction/18);
idman_image+=0.2;
//para el hombre
if(idman_image>idman_image_final){idman_image=idman_image_inicio}
/////////////Fin secuencia de imagenes
}//fin if(estado="juego iniciado")
/////////////////////////////////////////////////////////////////////
//////////////////////////////////////Seccion de dibujos
//Dibujando objetos
c1=(estado!="top 10");
if(c1)
{
//dibujando el mapa 1
draw_sprite(sprite_index,idmap0_image,idmap0_x,idmap0_y);
//dibujando el mapa 2
draw_sprite(sprite_index,idmap1_image,idmap1_x,idmap1_y);
//dibujando cuerda
draw_line(idcuerda_x1,idcuerda_y1,idcuerda_x2,idcuerda_y2);
//dibujando el player
draw_sprite(sprite1,idman_image,idman_x,idman_y);
//dibujando la carreta
draw_sprite(sprite1,idcarreta_image,idcarreta_x,idcarreta_y);
//dibujando la rueda
draw_sprite(sprite1,idrueda_image,idrueda_x,idrueda_y);
}
bloquear='
///Para la carreta
for(i=0;i<=72;i+=5)
{
posx=idcoliciona_x;
posy=idcoliciona_y;
posx+=i*cos(idcarreta_direction*pi/180);
posy-=i*sin(idcarreta_direction*pi/180);
draw_circle(posx,posy,2);
}
draw_circle(idcentro_carreta_x,idcentro_carreta_y,2);
//'
//dibujando score
c1=(estado="juego iniciado");
c2=(estado="game over");
if(c1 || c2){draw_text(280,10,score)}
///////////////////////////////Dibujos de portada
if(estado="portada")
{
//controlando botones
click=0;
click_id="";
//dibujando boton comenzar
boton_id="comenzar";
boton_x=idcomenzar_x;
boton_y=idcomenzar_y;
boton_image=idcomenzar_image;
boton_estado=idcomenzar_estado;
c1=(mouse_x>boton_x);
c2=(mouse_x<boton_x+64);
c3=(mouse_y>boton_y);
c4=(mouse_y<boton_y+32);
c5=(c1 and c2 and c3 and c4);
if(c5){boton_estado=1;click=1;click_id=boton_id}else{boton_estado=0}
draw_sprite(sprite1,boton_image+boton_estado,boton_x,boton_y);
//dibujando boton top 10
boton_id="top 10";
boton_x=idtop10_x;
boton_y=idtop10_y;
boton_image=idtop10_image;
boton_estado=idtop10_estado;
c1=(mouse_x>boton_x);
c2=(mouse_x<boton_x+64);
c3=(mouse_y>boton_y);
c4=(mouse_y<boton_y+32);
c5=(c1 and c2 and c3 and c4);
if(c5){boton_estado=1;click=1;click_id=boton_id}else{boton_estado=0}
draw_sprite(sprite1,boton_image+boton_estado,boton_x,boton_y);
//Al hacer click
if(click)
{
click_time+=1;
if(click_time>10)
{
if(click_id="comenzar"){estado="juego iniciado"}
if(click_id="top 10"){estado="top 10"}
}
}
else
{
click_time=0;
}
//dibujando texto portada
draw_text(idtexto_portada_x,idtexto_portada_y,idtexto_texto);
//dibujando titulo del juego
draw_sprite(sprite1,idtitulo_image,idtitulo_x,idtitulo_y);
}
///////////////////////////// Fin dibujos de portada
//////////////////////////////Dibujos del top 10
if(estado="top 10")
{
draw_text(85,10,"Los 10 puntos más altos:");
dx=75;
dy=35;
for(i=1;i<=10;i+=1)
{
nombre=highscore_name(i);
puntaje=highscore_value(i);
puntos=".";
texto=string(i)+". "+string(nombre)+" "+string(puntos)+" "+string(puntaje);
while((string_width(texto)>200) and string_length(nombre))
{
nombre=string_delete(nombre,string_length(nombre),1);
texto=string(i)+". "+string(nombre)+" "+string(puntos)+" "+string(puntaje);
}
while(string_width(texto)<200)
{
puntos+=".";
texto=string(i)+". "+string(nombre)+" "+string(puntos)+" "+string(puntaje);
}
while(string_width(texto)>200 and string_length(puntos))
{
puntos=string_delete(puntos,1,1);
texto=string(i)+". "+string(nombre)+" "+string(puntos)+" "+string(puntaje);
}
draw_text(dx,dy,texto);
dy+=20;
}
//controlando botones
click=0;
click_id="";
//dibujando boton volver
boton_id="volver";
boton_x=idvolver_x;
boton_y=idvolver_y;
boton_image=idvolver_image;
boton_estado=idvolver_estado;
c1=(mouse_x>boton_x);
c2=(mouse_x<boton_x+64);
c3=(mouse_y>boton_y);
c4=(mouse_y<boton_y+32);
c5=(c1 and c2 and c3 and c4);
if(c5){boton_estado=1;click=1;click_id=boton_id}else{boton_estado=0}
draw_sprite(sprite1,boton_image+boton_estado,boton_x,boton_y);
//Al hacer click
if(click)
{
click_time+=1;
if(click_time>10)
{
if(click_id="volver")
{
game_restart();
}
}
}
else
{
click_time=0;
}
}//fin if(estado="top 10")
////////////////////////////Dibujos de game over
if(estado="game over")
{
//controlando botones
click=0;
click_id="";
//dibujando boton reiniciar
boton_id="reiniciar";
boton_x=idreiniciar_x;
boton_y=10+idreiniciar_y*(idcentro_carreta_y<100);
boton_image=idreiniciar_image;
boton_estado=idreiniciar_estado;
c1=(mouse_x>boton_x);
c2=(mouse_x<boton_x+64);
c3=(mouse_y>boton_y);
c4=(mouse_y<boton_y+32);
c5=(c1 and c2 and c3 and c4);
if(c5){boton_estado=1;click=1;click_id=boton_id}else{boton_estado=0}
draw_sprite(sprite1,boton_image+boton_estado,boton_x,boton_y);
//Al hacer click
if(click)
{
click_time+=1;
if(click_time>10)
{
if(click_id="reiniciar")
{
if(score>highscore_value(10))
{
mensaje="!Has entrado en el top 10!
Escribe tu nombre:";
nombre=get_string(mensaje,"Anónimo");
c1=(string_length(nombre)>10);
c2=(string_length(nombre)<3);
while(c1 || c2)
{
if(string_length(nombre)>10)
{
mensaje="Los nombres no pueden tener más de 10 caracteres.
Vuelve a intentarlo:";
nombre=get_string(mensaje,nombre);
}
if(string_length(nombre)<3)
{
mensaje="Los nombres no deben tener menos de tres caracteres.
Vuelve a intentarlo:";
nombre=get_string(mensaje,nombre);
}
c1=(string_length(nombre)>10);
c2=(string_length(nombre)<3);
}
highscore_add(nombre,score);
}
game_restart();
}
}
}
else
{
click_time=0;
}
}
////////////////////////////Fin Dibujos de game over
//////////////////Fin seccion de dibujos
//texto
vw00=room_width;
vh00=room_height;
dx=0;
dy=0;
txt="";
ver="txt";
//Posicionar cursor aquí
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
if(ver!='txt'){draw_text(dx,dy,'txt: '+string(txt));dy+=20;if(dy>vh00-20){dy=0;dx+=vw00/2}}
//fin codigo