
Color Car
![]() | ![]() |
Conducción | Game Maker 4.3c(March 4,2003) |

Conducir, esquivar obstáculos, recoger colores y llamar la atención de un camaleón.



Sólo para windows.
bit.ly/dixonfastgames_colorcar
Gameplay
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.
Menú Mostrar Mensajes![]() | ![]() |
Conducción | Game Maker 4.3c(March 4,2003) |
![]() | ![]() |
Aventura | Game Maker 4.3c |
Esta web trata sobre el desarrollo de un motor de juego para juegos HTML5. Se discuten los conceptos básicos necesarios para comprender cómo funciona un motor de juego, desde la estructura y el formato de los datos hasta los elementos de diseño y la creación del código. Se describen las principales etapas del desarrollo de un motor de juego, incluyendo la recopilación de datos, la implementación de una interfaz de usuario y la creación de un motor de juego y una aplicación. Además, se discuten los beneficios y limitaciones del uso de un motor de juego y los mejores enfoques para optimizar su rendimiento. Finalmente, se discuten las herramientas y bibliotecas disponibles para ayudar en el desarrollo de un motor de juego. |
![]() Plataformas | ![]() GM5 |
![]() http://estudiosistemas.infinityfreeapp.com/Dixon/games/laBusquedaDelJuegoPredilecto/ |
/*
Instrucciones:
1. Este script debe ser llamado: draw_highscore_plus;
2. En game maker studio 2 utilizar: function draw_highscore_plus(argument0,argument1,argument2){
3. Colocar en evento Draw/dibujo: draw_highscore_plus(color fondo,color titulo, color fuente);
4. Ejemplo: draw_highscore_plus(c_teal,c_navy,c_black);
*/
titulo_DXNS0006="Top Ten Players";
color_fondo_DXNS0006=argument0;
color_titulo_DXNS0006=argument1;
color_fuente_DXNS0006=argument2;
porcentaje_DXNS0006=95;
proporcion_DXNS0006=2/3;
scoreW_DXNS0006=porcentaje_DXNS0006*room_width/100;
scoreH_DXNS0006=scoreW_DXNS0006/proporcion_DXNS0006;
while(scoreH_DXNS0006>(95*room_height/100))
{
porcentaje_DXNS0006-=1;
scoreW_DXNS0006=porcentaje_DXNS0006*room_width/100;
scoreH_DXNS0006=scoreW_DXNS0006/proporcion_DXNS0006;
}
scorex1_DXNS0006=(room_width-scoreW_DXNS0006)/2;
scorex2_DXNS0006=scorex1_DXNS0006+scoreW_DXNS0006;
scorey1_DXNS0006=(room_height-scoreH_DXNS0006)/2;;
scorey2_DXNS0006=scorey1_DXNS0006+scoreH_DXNS0006;
draw_set_color(color_fondo_DXNS0006);
draw_roundrect(scorex1_DXNS0006,scorey1_DXNS0006,scorex2_DXNS0006,scorey2_DXNS0006,0);
draw_set_color(color_titulo_DXNS0006);
width_DXNS0006=string_width(titulo_DXNS0006);
titulox_DXNS0006=scorex1_DXNS0006+(scoreW_DXNS0006-width_DXNS0006)/2;
tituloY_DXNS0006=scorey1_DXNS0006+7*scoreH_DXNS0006/100;
draw_text(titulox_DXNS0006,tituloY_DXNS0006,titulo_DXNS0006);
draw_set_color(color_fuente_DXNS0006);
for(i_DXNS0006=1;i_DXNS0006<=10;i_DXNS0006+=1)
{
nombre_DXNS0006=string(highscore_name(i_DXNS0006))+".................................................................";
txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006)+string(highscore_value(i_DXNS0006));
while(string_width(txt_DXNS0006)>90*scoreW_DXNS0006/100)
{
length_DXNS0006=string_length(nombre_DXNS0006);
nombre_DXNS0006=string_delete(nombre_DXNS0006,length_DXNS0006-5,1);
txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006)+string(highscore_value(i_DXNS0006));
}
txt_DXNS0006=string(i_DXNS0006)+". "+string(nombre_DXNS0006);
x1_DXNS0006=scorex1_DXNS0006+5*scoreW_DXNS0006/100;
y1_DXNS0006=scorey1_DXNS0006+10*scoreH_DXNS0006/100;
draw_text(x1_DXNS0006,y1_DXNS0006+i_DXNS0006*30,txt_DXNS0006);
txt_DXNS0006=string(highscore_value(i_DXNS0006));
width_DXNS0006=string_width(txt_DXNS0006);
x1_DXNS0006=scorex1_DXNS0006+95*scoreW_DXNS0006/100-width_DXNS0006;
draw_text(x1_DXNS0006,y1_DXNS0006+i_DXNS0006*30,txt_DXNS0006);
}
Úsenlo junto al script highscore online para tener una agradable tabla de puntuaciones online sin saber de php,sql o hosting. script hishcore_online instantáneo: https://www.comunidadgm.org/desarrollo-de-scripts/highscore_online-instantaneo/ |
//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;
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
//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;
![]() ... | ![]() All GM |
{
if(score<2)
{
juegoEstado="portada";
juegoEstadoCreate=1;
score=2;
celdas=17;
//#Bloquear="
roomwidth=room_width;
roomheight=room_height;
//"
celdaW_asd=roomwidth/celdas;
celdaH_asd=roomheight/celdas;
ballW_asd=1*celdaW_asd-2;
ballH_asd=1*celdaH_asd-2;
ballx_asd=8*celdaW_asd;
bally_asd=8*celdaH_asd;
balldx_asd=1-2*floor(random(2));
balldy_asd=1-2*floor(random(2));
ballxstar_asd=ballx_asd;
ballystar_asd=bally_asd;
ballVelocidadInicial=4;
ballVelocidad=ballVelocidadInicial;
ballVelocidadMaxima=10;
ballEstado="stop";
ballEstadoCreate=1;
ballTiempo=0;
ballTiempo2=0;
ballAceleracion=0.5;
tabla1H_asd=5*celdaH_asd-2;
tabla1W_asd=1*celdaW_asd-2;
tabla1ypos_asd=7*celdaH_asd;
tabla1x1_asd=1*celdaW_asd;
tabla1y1_asd=tabla1ypos_asd;
tabla1Velocidad=12;
tabla2H_asd=5*celdaH_asd-2;
tabla2W_asd=1*celdaW_asd-2;
tabla2ypos_asd=7*celdaH_asd;
tabla2x1_asd=15*celdaW_asd;
tabla2y1_asd=tabla2ypos_asd;
tabla2VelocidadInicial=12;
tabla2Velocidad=tabla2VelocidadInicial;
tabla2posicion=0;
tabla2posicionx=tabla2x1_asd+tabla2W_asd/2;
tabla2posiciony=0;
mb=0;
puntoP2=0;
puntoP1=0;
}
//botones a usar
//#bloquear="
if(keyboard_check(113)){game_restart()}
//mbp=(mb=0)*(mouse_button=1);
mousebutton=mouse_button;
//"
mb=(mousebutton=1);
if(juegoEstado="portada")
{
if(juegoEstadoCreate)
{
tiempo=0;
juegoEstadoCreate=0;
}
x1=8*celdaW_asd;
y1=5*celdaH_asd;
txt="Pong";
draw_text(x1,y1,txt);
tiempo+=1;
if(mb and tiempo>30){juegoEstado="juego";juegoEstadoCreate=1}
}
if(juegoEstado="final")
{
if(juegoEstadoCreate)
{
juegoEstadoCreate=0;
tiempo=0;
x1=7*celdaW_asd;
y1=5*celdaH_asd;
}
tiempo+=1;
x1=7*celdaW_asd;
y1=5*celdaH_asd;
txt="Gana el humano";
if(puntoP2>puntoP1){txt="Gana la PC"}
draw_text(x1,y1,txt);
if(mb and (tiempo>20)){score=0}
}
if(juegoEstado="juego")
{
if(juegoEstadoCreate)
{
juegoEstadoCreate=0
}
tabla1ypos_asd+=tabla1Velocidad-2*mb*tabla1Velocidad;
if(balldx_asd)
{
if((tabla2posiciony-ballH_asd)>(tabla2ypos_asd+(tabla2H_asd/4))){tabla2ypos_asd+=tabla2Velocidad}
if(tabla2posiciony<(tabla2ypos_asd+(tabla2H_asd/4))){tabla2ypos_asd-=tabla2Velocidad}
}
if((balldx_asd=-1) || (ballEstado="stop"))
{
if(tabla2ypos_asd>celdaH_asd*6){tabla2ypos_asd-=tabla2Velocidad}
if(tabla2ypos_asd<celdaH_asd*6){tabla2ypos_asd+=tabla2Velocidad}
}
if(ballEstado="play")
{
if(ballEstadoCreate)
{
ballEstadoCreate=0;
ballVelocidad=ballVelocidadInicial;
ballTiempo=0;
ballTiempo2=0;
ballx_asd=ballxstar_asd;
bally_asd=ballystar_asd;
balldx_asd=1-2*floor(random(2));
balldy_asd=1-2*floor(random(2));
tabla2Velocidad=tabla2VelocidadInicial;
}
ballTiempo+=ballVelocidad;
if(ballTiempo>=30)
{
ballTiempo=0;
ballx_asd+=balldx_asd*celdaW_asd;
bally_asd+=balldy_asd*celdaH_asd;
}
ballTiempo2+=1;
if(ballTiempo2>=30)
{
ballTiempo2=0;
ballVelocidad+=ballAceleracion;
if(ballVelocidad>ballVelocidadMaxima){ballVelocidad=ballVelocidadMaxima}
}
if(ballx_asd>(roomwidth-celdaW_asd)){ballx_asd=(roomwidth-celdaW_asd);ballEstado="stop";puntoP1+=1;ballEstadoCreate=1}
if(ballx_asd<0){ballx_asd=0;ballEstado="stop";puntoP2+=1;ballEstadoCreate=1}
c1=(puntoP1=3);
c2=(puntoP2=3);
if(c1 || c2){juegoEstado="final";juegoEstadoCreate=1}
}
else
{
if(ballEstadoCreate)
{
ballEstadoCreate=0;
ballTiempo=0;
}
ballTiempo+=1;
if((ballTiempo>30) and mb){ballEstado="play";ballEstadoCreate=1}
ballVelocidad=0;
}
}//fin if(juegoEstado="juego")
c1=(ballx_asd>tabla1x1_asd);
c2=(ballx_asd<tabla1x1_asd+tabla1W_asd+celdaW_asd);
c3=((bally_asd+1*ballH_asd)>tabla1y1_asd);
c4=(bally_asd<tabla1y1_asd+tabla1H_asd);
if(c1 and c2 and c3 and c4){balldx_asd=1}
c1=((ballx_asd+ballW_asd)<(tabla2x1_asd+tabla2W_asd));
c2=((ballx_asd+ballW_asd)>(tabla2x1_asd-celdaW_asd));
c3=((bally_asd+1*ballH_asd)>tabla2y1_asd);
c4=(bally_asd<tabla2y1_asd+tabla2H_asd);
c5=(balldx_asd=1);
if(c1 and c2 and c3 and c4 and c5){balldx_asd=-1;tabla2Velocidad-=1;if(tabla2Velocidad<0.5){tabla2Velocidad=0.5}}
if(bally_asd>(roomheight-1*celdaH_asd)){bally_asd=(roomheight-1*celdaH_asd);balldy_asd=-1}
if(bally_asd<0){bally_asd=0;balldy_asd=1}
x1=1+ballx_asd;
y1=1+bally_asd;
draw_line(x1,y1,x1+ballW_asd,y1);
draw_line(x1+ballW_asd,y1,x1+ballW_asd,y1+ballH_asd);
draw_line(x1+ballW_asd,y1+ballH_asd,x1,y1+ballH_asd);
draw_line(x1,y1+ballH_asd,x1,y1);
if(balldx_asd and balldy_asd){balldirection=-45}
if(balldx_asd and !balldy_asd){balldirection=45}
if(!balldx_asd and !balldy_asd){balldirection=135}
if(!balldx_asd and balldy_asd){balldirection=225}
pdx_asd=balldx_asd;
pdy_asd=balldy_asd;
pdirection=balldirection;
if(pdx_asd and pdy_asd){pdirection=-45}
if(pdx_asd and !pdy_asd){pdirection=45}
if(!pdx_asd and !pdy_asd){pdirection=135}
if(!pdx_asd and pdy_asd){pdirection=225}
x1=ballx_asd;
y1=bally_asd;
x2=x1;
y2=y1;
tabla2posicion=0;
i=0;
repeat(16)
{
i+=1;
x2=x1+i*celdaW_asd*cos(pdirection*pi/180);
y2=y1-i*celdaH_asd*sin(pdirection*pi/180);
if(y2>roomheight){y2=roomheight;pdy_asd=-1;x1=x2;y1=y2;i=0}
if(y2<0){y2=0;pdy_asd=1;x1=x2;y1=y2;i=0}
if(x2>roomwidth){x2=roomwidth;pdx_asd=-1;x1=x2;y1=y2;i=0}
if(x2<0){x2=0;pdx_asd=1;x1=x2;y1=y2;i=0}
c1=(y2>tabla1ypos_asd);
c2=(y2<(tabla1ypos_asd+tabla1H_asd));
c3=(x2>tabla1x1_asd);
c4=(x2<(tabla1x1_asd+tabla1W_asd));
if(c1 and c2 and c3 and c4){x2=(tabla1x1_asd+tabla1W_asd);pdx_asd=1;x1=x2;y1=y2;i=0}
if(pdx_asd and pdy_asd){pdirection=-45}
if(pdx_asd and !pdy_asd){pdirection=45}
if(!pdx_asd and !pdy_asd){pdirection=135}
if(!pdx_asd and pdy_asd){pdirection=225}
if(tabla2posicion=0)
{
c1=(x2>=(tabla2x1_asd-celdaW_asd));
if(c1){tabla2posicion=1;tabla2posicionx=x2;tabla2posiciony=y2}
}
//draw_pixel(x2,y2);
}
//draw_circle(tabla2posicionx,tabla2posiciony,5);
if(tabla1ypos_asd>(roomheight-tabla1H_asd)){tabla1ypos_asd=(roomheight-tabla1H_asd)}
if(tabla1ypos_asd<0){tabla1ypos_asd=0}
tabla1y1_asd=floor(tabla1ypos_asd/celdaH_asd)*celdaH_asd;
x1=1+tabla1x1_asd;
y1=1+tabla1y1_asd;
draw_line(x1,y1,x1+tabla1W_asd,y1);
draw_line(x1+tabla1W_asd,y1,x1+tabla1W_asd,y1+tabla1H_asd);
draw_line(x1+tabla1W_asd,y1+tabla1H_asd,x1,y1+tabla1H_asd);
draw_line(x1,y1+tabla1H_asd,x1,y1);
if(tabla2ypos_asd>(roomheight-tabla2H_asd)){tabla2ypos_asd=(roomheight-tabla2H_asd)}
if(tabla2ypos_asd<0){tabla2ypos_asd=0}
tabla2y1_asd=floor(tabla2ypos_asd/celdaH_asd)*celdaH_asd;
x1=1+tabla2x1_asd;
y1=1+tabla2y1_asd;
draw_line(x1,y1,x1+tabla2W_asd,y1);
draw_line(x1+tabla2W_asd,y1,x1+tabla2W_asd,y1+tabla2H_asd);
draw_line(x1+tabla2W_asd,y1+tabla2H_asd,x1,y1+tabla2H_asd);
draw_line(x1,y1+tabla2H_asd,x1,y1);
x1=8*celdaW_asd;
y1=1*celdaH_asd;
txt=string(puntoP1)+"/"+string(puntoP2);
draw_text(x1,y1,txt);
}
Compatibilidad comprobada: ⭐ ![]() Funciona en todos los Game makers desde el antiguo Game Maker 1.4 (june 1, 2000) hasta GameMaker studio 2. No ha sido verificado si el juego funciona en los game makers para mac pero la teoria dice que sí. |
El problema es el siguiente: Que una simple suma dentro de un string pueda resolverse, ejemplo: |
numero = real("5+5");
draw_text(0,0,numero);
Modo de uso 1. Crea un nuevo script y pégale el código que se está entregando. 2. Colocar en el evento create del objeto a mover (ejemplo: la pelota, el proyectil): |
movimiento_parabolico_create=1;
movimiento_parabolico(200,150,10);
movimiento_parabolico(50,50,1);
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Generated by GameMaker:HTML5 http://http://www.yoyogames.com/gamemaker/html5 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name ="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta charset="utf-8"/>
<!-- Set the title bar of the page -->
<title>Game Maker HTML 5</title>
<!-- Set the background colour of the document -->
<style>
body {
background: #222;
color:#cccccc;
}
canvas {
image-rendering: optimizeSpeed;
-webkit-interpolation-mode: nearest-neighbor;
}
</style>
</head>
<body>
<!-- Create the canvas element the game draws to -->
<canvas id="canvas" width="400" height="300">
<p>Your browser doesn't support HTML5 canvas.</p>
</canvas>
<!-- Run the game code -->
<script type="text/javascript" src="html5game/gmk.js?FWFZB=2052234977"></script>
<div id="botonA"></div>
<div id="botonB">F</div>
<style>
body
{
text-align: center;
}
#botonA
{
position:absolute;
top: 5vh;
left: 5vw;
width: 90vw;
height: 90vh;
}
#botonB
{
-webkit-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
-ms-user-select:none;
position:absolute;
top: 5px;
right: 5px;
font-size: 1em;
border-radius: 10%;
border: 1px solid white;
width: 2em;
}
</style>
<script>
var canvas = document.getElementById("canvas");
var canvasProporcion = canvas.width/canvas.height;
var ventana={
ancho: window.innerWidth,
alto: window.innerHeight,
orientacion: "landscape"
}
var botonA_Elemento = document.getElementById("botonA");
var botonB_Elemento = document.getElementById("botonB");
var touchDevice = ('ontouchstart' in document.documentElement);
if(touchDevice == true)
{
botonA_Elemento.addEventListener("touchstart", function(){funcionBoton(65,"pulsar")});
botonA_Elemento.addEventListener("touchend", function(){funcionBoton(65,"soltar")});
botonA_Elemento.addEventListener("touchleave", function(){funcionBoton(65,"soltar")});
botonB_Elemento.addEventListener("touchstart", function(){toggleFullScreen()});
}
else
{
botonA_Elemento.addEventListener("mousedown", function(){funcionBoton(65,"pulsar")});
botonA_Elemento.addEventListener("mouseup", function(){funcionBoton(65,"soltar")});
botonA_Elemento.addEventListener("mouseleave", function(){funcionBoton(65,"soltar")});
botonB_Elemento.addEventListener("mousedown", function(){toggleFullScreen()});
}
/////////////////Funcion de botones
////////////////SIMULANDO TECLADO
////////////////////////////////////////////////////////////////////////////////
function funcionBoton(codigoBoton, accionBoton){
//alert(codigoBoton);
var eventObj_izquierda = document.createEventObject ?
document.createEventObject() : document.createEvent("Events");
eventObj_izquierda.keyCode = codigoBoton;
eventObj_izquierda.which = codigoBoton;
eventObj_izquierda.key=' ';
eventObj_izquierda.code='Space';
if(accionBoton == "pulsar")
{
if(eventObj_izquierda.initEvent){eventObj_izquierda.initEvent("keydown", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj_izquierda) : document.fireEvent("onkeydown", eventObj_izquierda);
}
if(accionBoton == "soltar")
{
if(eventObj_izquierda.initEvent){eventObj_izquierda.initEvent("keyup", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj_izquierda) : document.fireEvent("onkeyup", eventObj_izquierda);
}
}
//////////////////////////////////////////////////////////////////////////////////
///////////////FUNCION PANTALLA COMPLETA
////////////////////////////////////////////////////////////////////////////////
function toggleFullScreen() {
if ((document.fullScreenElement && document.fullScreenElement !== null) ||
(!document.mozFullScreen && !document.webkitIsFullScreen)) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}}}
/////////////////////////////////////////////////////////////////////////////////
setInterval('ejecucionConstante()',1000/30);
function ejecucionConstante()
{
ventana["ancho"]=window.innerWidth;
ventana["alto"]=window.innerHeight;
var porcentajeMaximo=95;
var canvasAncho = porcentajeMaximo*ventana["ancho"]/100;
var canvasAlto = canvasAncho/canvasProporcion;
var canvasAltoMaximo = porcentajeMaximo*ventana["alto"]/100;
while(canvasAlto>canvasAltoMaximo)
{
canvasAncho -=1;
var canvasAlto = canvasAncho/canvasProporcion;
}
canvas.style.width=`${canvasAncho}px`;
}//fin function ejecucionConstante()
</script>
</body>
</html>