Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

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


Mensajes - dixon

Páginas: 1 2 3 4 5 ... 17
31
General / Re: Scripts en desarrollo
« en: Enero 15, 2022, 02:29:13 am »

32
Juegos completos / Re: La chica del campamento
« en: Enero 13, 2022, 04:28:32 pm »
Hola black_cat, saludos me alegra que estés de nuevo por aquí.




Disculpe que no le di una respuesta inmediata.

Game maker 4.3c (2003) es la última versión gratuita, mediante esta se pueden crear juegos de alta calidad e internacionalmente reconocidos tales como:




Game maker 4.3c (2003) solo exporta a .exe para Windows lamentablemente esto significa que los juegs creados con esta versión solo se podrán jugar en pc.

El proceso que uso para transformar un juego de game maker 4 a html5 es el siguiente:
1.   Creo mi juego en game maker 4.3c.
2.   Convierto el .gmd de GM4 a gmd de GM5. Mediante una herramienta de conversión llamada convert (Convertidor Game Maker 4 a 5 (Convertidor GM 4.x a GM 5.0))
3.   Luego abro game maker html5 o studio e importo el gmd como una versión vieja.
4.   Luego exporto a html5.
5.   Y finalmente le agrego los botones táctiles con el script javascript. Joystick táctiles para juegos html5

Ahora bien al parecer ya existe tecnología que nos permite ejecutar un .exe directamente dentro de un navegador web, esto quiere decir que nuestros antiguos juegos pueden revivir en plataformas como android y ser ejecutados directamente en navegadores.

Las paginas claves para lograr el objetivo son:
https://esgeeks.com/ejecutar-aplicaciones-en-navegador-web/
https://appetize.io/upload
https://www.cameyo.com/

También hay que tomar en cuenta otras cosas como:
1.   Un exe también puede ser transformado en un apk.
https://es.jf-oeiras.pt/how-convert-exe-apk

Es un abanico de posibildades y es necesario abarcar ese tema ya que mediante esto se pudiesen lograr muchas cosas más, las cuales aún no imaginamos.

33
Juegos completos / La chica del campamento
« en: Enero 11, 2022, 09:50:46 pm »




34
General / Re: Joystick táctiles para juegos html5 en proceso.
« en: Enero 05, 2022, 11:49:08 pm »
Hola, saludos, espero que esten muy bien.


Bueno, hoy les traigo una nueva actualización del script para los botones táctiles en juegos html5, ahora los botones tendrán una mejor imagen  “se ven geniales” XD, tambien se le ha corregido un error pero lamentablemente aun presenta otro error grave donde se quedan pegadas las teclas.

El nuevo código es este:

Código: [Seleccionar]

<div id="contenedorFlecha">
<div class="botones" id="botonLeft" onmousedown='funcionBoton(37,"pulsar")' onmouseup='funcionBoton(37,"soltar")' onmouseleave='funcionBoton(37,"soltar")'></div>
<div class="botones" id="botonUp" onmousedown='funcionBoton(38,"pulsar")' onmouseup='funcionBoton(38,"soltar")' onmouseleave='funcionBoton(38,"soltar")'></div>
<div class="botones" id="botonRight" onmousedown='funcionBoton(39,"pulsar")' onmouseup='funcionBoton(39,"soltar")' onmouseleave='funcionBoton(39,"soltar")'></div>
<div class="botones" id="botonDown" onmousedown='funcionBoton(40,"pulsar")' onmouseup='funcionBoton(40,"soltar")' onmouseleave='funcionBoton(40,"soltar")'></div>
</div>
<div id="contenedorBotones">
<div class="botones" id="botonA" onmousedown='funcionBoton(65,"pulsar")' onmouseup='funcionBoton(65,"soltar")' onmouseleave='funcionBoton(65,"soltar")'></div>
<div class="botones" id="botonW" onmousedown='funcionBoton(87,"pulsar")' onmouseup='funcionBoton(87,"soltar")' onmouseleave='funcionBoton(87,"soltar")'></div>
<div class="botones" id="botonS" onmousedown='funcionBoton(83,"pulsar")' onmouseup='funcionBoton(83,"soltar")' onmouseleave='funcionBoton(83,"soltar")'></div>
<div class="botones" id="botonD" onmousedown='funcionBoton(68,"pulsar")' onmouseup='funcionBoton(68,"soltar")' onmouseleave='funcionBoton(68,"soltar")'></div>
</div>

<div id="botonEnter" onmousedown='funcionBoton(13,"pulsar")' onmouseup='funcionBoton(13,"soltar")' onmouseleave='funcionBoton(13,"soltar")'></div>
<div id="botonScreen" onmousedown="toggleFullScreen()"></div>
<div id="botonReiniciar" onmousedown='funcionBoton(113,"pulsar")' onmouseup='funcionBoton(113,"soltar")' onmouseleave='funcionBoton(113,"soltar")'></div>


<style>
body{
text-align: center;
background: black;
}

#botonEnter,#botonScreen, #botonReiniciar{
background: brown;
background: transparent;
border: 1px solid red;
color: red;
width: 30px;
height:24px;
position: absolute;
left: 5vw;
}

#botonScreen{
top: 10px;
}

#botonReiniciar{
top: 55px;
}

#botonEnter{
top: 100px;
width: 60px;
}

canvas{
background: transparent;
border: 1px solid white;

width: 40vw;
max-height: 90vh;
position: absolute;
top: 5vh;
left: 30vw;
}

#contenedorFlecha{
background: navy;
background: transparent;
width: 20vw;
height: 35vh;
position: absolute;
bottom: 5vh;
left: 4vw;
}

#contenedorBotones{
background: navy;
background: transparent;
width: 20vw;
height: 35vh;
position: absolute;
bottom: 5vh;
right: 4vw;
}

.botones{
width: 30%;
height: 30%;
position: absolute;
}


#botonUp, #botonW{
background: brown;
background: transparent;
border: 1px solid white;
top: 0px;
left: 35%;
}

#botonLeft, #botonA{
background: green;
background: transparent;
border: 1px solid white;
bottom: 35%;
left: 0%;
}

#botonRight, #botonD{
background: purple;
background: transparent;
border: 1px solid white;
bottom: 35%;
right: 0px;
}

#botonDown, #botonS{
background: blue;
background: transparent;
border: 1px solid white;
bottom: 0%;
left: 35%;
}

@media (orientation: portrait) {

#botonEnter,#botonScreen, #botonReiniciar{
left: 40vw;
}

#botonScreen{
top: 70vh;
left: 5vw;
}

#botonReiniciar{
top: 70vh;
right: 5vw;
left: auto;
}

#botonEnter{
top: 70vh;
left: calc(50vw-30px);
}


canvas{
width: 90vw;
top: 2vh;
left: 5vw;
}

#contenedorBotones{
width: 38vw;
height: 20vh;
}

#contenedorFlecha{
width: 38vw;
height: 20vh;
}

}



#botonRight{
background-image: url("imagenes/botonRight_up.png");
}
#botonRight:active{
background-image: url("imagenes/botonRight_down.png");
}
#botonUp{
background-image: url("imagenes/botonUp_up.png");
}
#botonUp:active{
background-image: url("imagenes/botonUp_down.png");
}
#botonLeft{
background-image: url("imagenes/botonLeft_up.png");
}
#botonLeft:active{
background-image: url("imagenes/botonLeft_down.png");
}
#botonDown{
background-image: url("imagenes/botonDown_up.png");
}
#botonDown:active{
background-image: url("imagenes/botonDown_down.png");
}

#botonA{
background-image: url("imagenes/botonA_up.png");
}
#botonA:active{
background-image: url("imagenes/botonA_down.png");
}
#botonW{
background-image: url("imagenes/botonW_up.png");
}
#botonW:active{
background-image: url("imagenes/botonW_down.png");
}
#botonD{
background-image: url("imagenes/botonD_up.png");
}
#botonD:active{
background-image: url("imagenes/botonD_down.png");
}
#botonS{
background-image: url("imagenes/botonS_up.png");
}
#botonS:active{
background-image: url("imagenes/botonS_down.png");
}



#botonEnter{
background-image: url("imagenes/botonEnter_up.png");
}
#botonEnter:active{
background-image: url("imagenes/botonEnter_down.png");
}

#botonReiniciar{
background-image: url("imagenes/botonReiniciar_up.png");
}
#botonReiniciar:active{
background-image: url("imagenes/botonReiniciar_down.png");
}

#botonScreen{
background-image: url("imagenes/botonScreen_up.png");
}
#botonScreen:active{
background-image: url("imagenes/botonScreen_down.png");
}



#botonRight, #botonLeft, #botonUp, #botonDown, #botonA, #botonW, #botonD, #botonS, #botonEnter, #botonReiniciar, #botonScreen{
border: 0px;
background-size: 100% 100%;
}


</style>



<!-- Código JavaScript-->

<script>

/////////////////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();
}}}
/////////////////////////////////////////////////////////////////////////////////


/////////////Funcion para pantallas tactiles
//////////////////////////////////////////////////////////////////////////////////
//Detectando si existe pantalla tactil.
var touchDevice = ('ontouchstart' in document.documentElement);
var botonesId = ["botonLeft","botonUp","botonRight","botonDown","botonA","botonW","botonS","botonD","reiniciar","botonEnter"];
var botonesCodigos = [37,38,39,40,65,87,83,68,113,13];
    var botonId = "";
    var botonCodigo = 0;
    var numeroArray =[];
   
if(touchDevice == true)
{

//Analizando todos los botones contenidos en el array
//Recorriendo el array que contiene los nombres de los botones.

        numeroX=0;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[0],"pulsar");funcionBoton(botonesCodigos[2],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[0],"soltar");}, false);


        numeroX=1;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[1],"pulsar");funcionBoton(botonesCodigos[3],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[1],"soltar");}, false);

        numeroX=2;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[2],"pulsar");funcionBoton(botonesCodigos[0],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[2],"soltar");}, false);

    numeroX=3;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[3],"pulsar");funcionBoton(botonesCodigos[1],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[3],"soltar");}, false);

    numeroX=4;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[4],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[4],"soltar");}, false);

    numeroX=5;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[5],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[5],"soltar");}, false);


    numeroX=6;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[6],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[6],"soltar");}, false);

    numeroX=7;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[7],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[7],"soltar");}, false);


    numeroX=8;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[8],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[8],"soltar");}, false);

    numeroX=9;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[9],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[9],"soltar");}, false);
}
///////////////////////////////////////////////////////////////////////////////////////



</script>

El proceso para integrar los botones a tu juego “HTML5” es el siguiente:
1.   Crea tu juego html5 empleando las teclas del teclado:
Vk_left (código ascii 37);
Vk_up (código ascii 38);
Vk_rigth (código ascii 39);
 Vk_down (código ascii 40);
A (código ascii 65);
W (código ascii 87);
D (código ascii 68);
S (código ascii 83);
Enter (código ascii 13);
F12: para reiniciar el juego. (código ascii 113);

2.   Exporta tu juego html5.
3.   Copia el código para botones táctiles de este post.
4.   Abre con el block de notas el index.html  de tu juego.
5.   Pega el código al final del archivo justo por encima de la etiqueta de cierre </body> como se indica aquí abajo:



6. Descarga el paquete de imágenes de los botones “aquí”;
7.Crea una carpeta llamada imágenes la cual debe encontrarse en la misma carpeta de tu juego como se indica en la imagen:


8. En esa carpeta deberás pegar las imágenes que descargastes para que te quede algo como esto:


9. Listo eso es todo.

Si quieres ver cómo quedó el diseño puedes  acceder al juego “30pepas”.



Listo eso es todo, seguimos programando, nos vemos luego.



35
General / Re: Joystick táctiles para juegos html5 en proceso.
« en: Enero 04, 2022, 08:49:48 am »
Hola, saludos a todos espero que estén bien.


Aquí les traigo una nueva actualización del script que dota a los juegos html5 de botones táctiles permitiendo que los juegos puedan ser jugados desde cualquier plataforma. Ahora la implementación es muy fácil solo tendrán que copiar y pegar.

El código es el siguiente:
Código: [Seleccionar]

<div id="contenedorFlecha">
<div class="botones" id="botonLeft" onmousedown='funcionBoton(37,"pulsar")' onmouseup='funcionBoton(37,"soltar")' onmouseleave='funcionBoton(37,"soltar")'><</div>
<div class="botones" id="botonUp" onmousedown='funcionBoton(38,"pulsar")' onmouseup='funcionBoton(38,"soltar")' onmouseleave='funcionBoton(38,"soltar")'>^</div>
<div class="botones" id="botonRight" onmousedown='funcionBoton(39,"pulsar")' onmouseup='funcionBoton(39,"soltar")' onmouseleave='funcionBoton(39,"soltar")'>></div>
<div class="botones" id="botonDown" onmousedown='funcionBoton(40,"pulsar")' onmouseup='funcionBoton(40,"soltar")' onmouseleave='funcionBoton(40,"soltar")'>\/</div>
</div>
<div id="contenedorBotones">
<div class="botones" id="botonA" onmousedown='funcionBoton(65,"pulsar")' onmouseup='funcionBoton(65,"soltar")' onmouseleave='funcionBoton(65,"soltar")'>A</div>
<div class="botones" id="botonW" onmousedown='funcionBoton(87,"pulsar")' onmouseup='funcionBoton(87,"soltar")' onmouseleave='funcionBoton(87,"soltar")'>W</div>
<div class="botones" id="botonS" onmousedown='funcionBoton(83,"pulsar")' onmouseup='funcionBoton(83,"soltar")' onmouseleave='funcionBoton(83,"soltar")'>S</div>
<div class="botones" id="botonD" onmousedown='funcionBoton(68,"pulsar")' onmouseup='funcionBoton(68,"soltar")' onmouseleave='funcionBoton(68,"soltar")'>D</div>
</div>


<div id="botonEnter" onmousedown='funcionBoton(13,"pulsar")' onmouseup='funcionBoton(13,"soltar")' onmouseleave='funcionBoton(13,"soltar")'>Enter</div>
<div id="screen" onmousedown="toggleFullScreen()">Screen</div>
<div id="reiniciar" onmousedown='funcionBoton(113,"pulsar")' onmouseup='funcionBoton(113,"soltar")' onmouseleave='funcionBoton(113,"soltar")'>Restart</div>


<style>
body{
text-align: center;
background: black;
}

#botonEnter,#screen, #reiniciar{
background: brown;
background: transparent;
border: 1px solid red;
color: red;
width: 60px;
height:24px;
position: absolute;
left: 5vw;
}

#screen{
top: 10px;
}

#reiniciar{
top: 55px;
}

#botonEnter{
top: 100px;
}

canvas{
background: transparent;
border: 1px solid white;

width: 40vw;
max-height: 90vh;
position: absolute;
top: 5vh;
left: 30vw;
}

#contenedorFlecha{
background: navy;
background: transparent;
width: 20vw;
height: 35vh;
position: absolute;
bottom: 5vh;
left: 4vw;
}

#contenedorBotones{
background: navy;
background: transparent;
width: 20vw;
height: 35vh;
position: absolute;
bottom: 5vh;
right: 4vw;
}

.botones{
width: 30%;
height: 30%;
position: absolute;
}

#botonUp, #botonW{
background: brown;
background: transparent;
border: 1px solid white;
top: 0px;
left: 35%;
}

#botonLeft, #botonA{
background: green;
background: transparent;
border: 1px solid white;
bottom: 35%;
left: 0%;
}

#botonRight, #botonD{
background: purple;
background: transparent;
border: 1px solid white;
bottom: 35%;
right: 0px;
}

#botonDown, #botonS{
background: blue;
background: transparent;
border: 1px solid white;
bottom: 0%;
left: 35%;
}

@media (orientation: portrait) {

#botonEnter,#screen, #reiniciar{
left: 40vw;
}

#screen{
top: 70vh;
left: 5vw;
}

#reiniciar{
top: 70vh;
right: 5vw;
left: auto;
}

#botonEnter{
top: 70vh;
left: calc(50vw-30px);
}


canvas{
width: 90vw;
top: 2vh;
left: 5vw;
}

#contenedorBotones{
width: 38vw;
height: 20vh;
}

#contenedorFlecha{
width: 38vw;
height: 20vh;
}

}


</style>



<!-- Código JavaScript-->

<script>

/////////////////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(); 
}}}
/////////////////////////////////////////////////////////////////////////////////


/////////////Funcion para pantallas tactiles
//////////////////////////////////////////////////////////////////////////////////
//Detectando si existe pantalla tactil.
var touchDevice = ('ontouchstart' in document.documentElement);
var botonesId = ["botonLeft","botonUp","botonRight","botonDown","botonA","botonW","botonS","botonD","reiniciar","botonEnter"];
var botonesCodigos = [37,38,39,40,65,87,83,68,113,13];
    var botonId = "";
    var botonCodigo = 0;
    var numeroArray =[];
   
if(touchDevice == true)
{

//Analizando todos los botones contenidos en el array
//Recorriendo el array que contiene los nombres de los botones.

        numeroX=0;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[0],"pulsar");funcionBoton(botonesCodigos[2],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[0],"soltar");}, false);


        numeroX=1;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[1],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[1],"soltar");}, false);

        numeroX=2;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[2],"pulsar");funcionBoton(botonesCodigos[0],"soltar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[2],"soltar");}, false);

    numeroX=3;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[3],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[3],"soltar");}, false);

    numeroX=4;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[4],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[4],"soltar");}, false);

    numeroX=5;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[5],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[5],"soltar");}, false);


    numeroX=6;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[6],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[6],"soltar");}, false);

    numeroX=7;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[7],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[7],"soltar");}, false);


    numeroX=8;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[8],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[8],"soltar");}, false);

    numeroX=9;
botonId = botonesId[numeroX];
var elementoTouch= document.getElementById(botonId);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
funcionBoton(botonesCodigos[9],"pulsar");}}, false);
elementoTouch.addEventListener('touchend', function(event){
funcionBoton(botonesCodigos[9],"soltar");}, false);
}
///////////////////////////////////////////////////////////////////////////////////////



</script>



Este es un código que combina html, css y javascript y para implementarlo en sus juegos html5 tendrán que seguir estos sencillos pasos:

1.   Crea tu juego html5 empleando las siguientes teclas del teclado:
Vk_left (código ascii 37);
Vk_up (código ascii 38);
Vk_rigth (código ascii 39);
 Vk_down (código ascii 40);
A (código ascii 65);
W (código ascii 87);
D (código ascii 68);
S (código ascii 83);
Enter (código ascii 13);
F12: para reiniciar el juego. (código ascii 113);

2.   Exporta tu juego html5.
3.   Copia el código para botones táctiles de este post.
4.   Abre con el block de notas el index.html  de tu juego.
5.   Pega el código al final del archivo justo por encima de la etiqueta de cierre </body> como se indica aquí abajo:

6.   Listo.


Dudas y preguntas aquí.
Pueden ver este código funcionando  en el juego “30pepas” publicado recientemente.

Tengo planeado mejorar el código y darle una mejor apariencia a los botones, ya le he encontrado varios errores pero si Dios quiere pronto serán corregidos.

36
Juegos completos / 30pepas 😅
« en: Enero 04, 2022, 08:16:10 am »

37
Preguntas y respuestas / Re: Capturar texto dibujado en un objeto
« en: Enero 02, 2022, 08:40:59 pm »
Hola, saludos.



Quizás hiciste algo como esto:
Código: [Seleccionar]
draw_text(x,y,”Soy el objeto x”);

Lo adecuado es introducir el texto dentro de una variable y usar esa variable como el siguiente código:
Código: [Seleccionar]
variableTexto=”soy el objeto x”;
draw_text(x,y,variableTexto);

En el evento creación (CREATE) también deberás colocar:
Código: [Seleccionar]
variableTexto=”soy el objeto x”;
Ahora mencionas a un objeto que capturará el texto que contenga la instancia luego de colisionar con ella.

Para resolver eso debemos identificar a los objetos que intervienen en el proceso:

objetoTexto: objeto que contiene el texto, el cual tiene varias instancias.
objetoCapturador: objeto que capturará el texto de alguna instancia del objetoTexto.
Tambien debemos identificar las variables que intervendrán en el proceso:
variableTexto: es la variable del objetoTexto que contiene el texto del objeto la cual varía en cada instancia.
variableCaptura: es la variable del objetoCapturador la cual almacenará el texto que contenga la instancia con la cual colisione.
Entonces el proceso es el siguiente:
1.   El objetoCapturador colisiona con una instancia del objetoTexto.
2.   El objetoCapturador identifica a la instancia.
3.   El objetoCapturador toma el texto almacenado en la variableTexto del objetoTexto.
4.   El objetoCapturador almacena el texto capturado en su propia variableCaptura.

Códigos necesarios para el objetoCapturador:
   “OBJETOCAPTURADOR.”
1.   El objetoCapturador colisiona con una instancia del objetoTexto.
Supongo que estás usando un evento de colision o quizás estas usando place_empty o place_free o place_meeting, u otra técnica para interpretar una colision.

2.   El objetoCapturador identifica a la instancia:
En el evento de colisión deberás colocar:
Código: [Seleccionar]
nnn=instance_nearest(x,y,objectTexto);
variableCaptura = nnn.variableTexto;

   Listo, el objeto capturador tiene en su variableCaptura el valor de la variableTexto de la instancia con la cual ha colisionado.

¿Cómo funciona?
1.   La función instance nearest devuelve o retorna el id o identificador único de la instancia más cercana al punto indicado, en este cado los puntos son x,y los cuales hacen referencia a la posición del objetoCapturador.
2.   ¿Cómo es eso que devuelve? , Respuesta: Eso quiere decir que nos dará el nombre único de la instancia.
3.   ¿Qué es el nombre único? , Respuesta: Es el id, o el identificador único que tiene cada instancia, es su nombre.
4.   ¿Para qué quiero el identificador único? , Respuesta: Con el identificador único podemos acceder a cualquier variable interna de la instancia.
5.   ¿Cómo obtenemos una variable interna de la instancia? ,Respuesta:
a.   Primero almacenamos su identificador único en una variable, en este caso la llamaremos nnn.
Código: [Seleccionar]
nnn=instance_nearest(x,y,objetoTexto);
Esto quiere decir que ahora la variable nnn contiene el nombre único de la intancia.

b.   Luego le colocamos un punto seguido de la variable para acceder a cualquier otra variable interna de la instancia.
Código: [Seleccionar]
nnn.x
nnn.y
nnn.sprite_index
nnn.speed
nnn.hspeed
nnn.image_index
c.   Luego almacenamos en una variable el valor de la variable a obtener:
Código: [Seleccionar]
variableCapturadora = nnn.variableTexto;

38
Preguntas y respuestas / Re: Controles
« en: Enero 01, 2022, 04:49:48 am »
Hola, saludos Elvis espero que estés bien.



Esa pregunta puede tener múltiples soluciones y trataré de darte lo que tengo hasta ahora.

1.   Si te refieres a colocar un botón y ejecutar una función de una tecla.
Respuesta:
*Crea un objeto botón y en el evento mouse enter le colocas keyboard_check(tecla).




       2. Si te refieres a botones para pantallas táctiles.

   Respuesta: Tienes que emplear el draw gui, los siguientes tutoriales me ayudaron a comprender eso:







3.   Si te refieres a los temas que voy desarrollando sobre joystick táctiles para juegos html5. El tema está dividido en dos métodos, el primero emplea un molesto y complejo sistema de escalas el cual no se lo aconsejo a nadie XD, y el segundo emplea javascript y es más eficiente, adecuado y fácil de entender.

Aquí te dejo el post.
https://www.comunidadgm.org/general/joystick-tactiles-para-juegos-html5-en-proceso/

   Si te refieres a este último lo recomendable es exportar a html5 y editar el index.html resultante, de la siguiente manera.
1.   Crear un botón dentro de código html como este:
Código: [Seleccionar]
<button id="boton_izquierda" onmousedown="pulsar_boton(37)" onmouseup="soltar_boton(37)" onmouseout="soltar_boton(37)">L</button>

2.   Luego deberás agregarle un código javascript como este:
Código: [Seleccionar]

//Boton izquierda
nombre_boton="boton_izquierda";
var elementoTouch= document.getElementById(nombre_boton);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
pulsar_boton(37);}}, false);
elementoTouch.addEventListener('touchend', function(event){
soltar_boton(37);
}, false);


3.   Y luego finalizas con el simulador de tecla presionada:

Código: [Seleccionar]

//Simulando el teclado
var variable_1 = document.getElementById("variable_1");
function pulsar_boton(key){
var eventObj = document.createEventObject ?
    document.createEventObject() : document.createEvent("Events");
eventObj.keyCode = key;
eventObj.which = key;
eventObj.key=' ';
eventObj.code='Space';
if(eventObj.initEvent){eventObj.initEvent("keydown", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj) : document.fireEvent("onkeydown", eventObj);}

function soltar_boton(key){
var eventObj = document.createEventObject ?
    document.createEventObject() : document.createEvent("Events");
eventObj.keyCode = key;
eventObj.which = key;
eventObj.key=' ';
eventObj.code='Space';
if(eventObj.initEvent){eventObj.initEvent("keyup", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj) : document.fireEvent("onkeyup", eventObj);}



Lamentablemente no he realizado un manual explicativo para comprender a fondo los códigos. Por ahora sólo recomiendo estudiar lo básico de html, css y javascript.

39
General / fastGame
« en: Diciembre 26, 2021, 02:05:02 am »
Hola saludos cordiales.



Aquí les dejo un video donde se presenta la primera etapa de mi nueva idea para hacer video juegos.





Por ahora mi objetivo es enseñar a hacer video juegos sencillos con materiales reciclados aplicando una técnica fácil.
1.   Primero se hace la maqueta real.
2.   Luego se grava el video.
3.   Se le agregan los efectos de sonido.
4.   Por último se sube a una plataforma online que estoy construyendo la cual no está terminada.
5.   Finalmente se obtiene un video juego muy básico.






Aquí les dejo un bosquejo de un juego que tengo en mente.


chao, nos vemos.

40
General / GAME CGM
« en: Diciembre 11, 2021, 01:53:33 am »



Este juego lo cree gracias al canal Jeff Aporta de youtube, el cual ofrece el siguiente tutorial:

41
General / Re: Joystick táctiles para juegos html5 en proceso.
« en: Diciembre 09, 2021, 07:46:41 pm »
Hola, saludos a todos.



Aquí les traigo un html5 donde se logró implementar los botones de javascript, pueden verificar su funcionamiento en pc y móviles.



html5+game_maker+Javascript
El objetivo del proyecto es crear un joystick virtual para pantallas táctiles que funcione en navegadores, de esta forma se podrán crear juegos html5 con botones que funcionen en todos los dispositivos.

Aquí les dejo el index.html del proyecto exportado con game maker a html5.
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
    <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;
            }

#container{
width: 90vw;
height: 90vh;
//background: blue;
margin: 0 auto;
text-align: center;

}


            canvas {
                      image-rendering: optimizeSpeed;
                      -webkit-interpolation-mode: nearest-neighbor;
height: 75%;
width: auto;
            }
@media screen and (orientation: portrait) {canvas{width: 95%;height: auto;}}

button{
background: gray;
font-size: 24px;
}

.clead_fix{
clear: both;
}

#boton_reiniciar{
background: green;
margin-left:0px;
}
        </style>
    </head>

    <body>
            <!-- Create the canvas element the game draws to -->
<div id="container">
    <button id="boton_reiniciar" onmousedown="pulsar_boton(113)" onmouseup="soltar_boton(113)" onmouseout="soltar_boton(113)">Reiniciar</button>
<button id="boton_pantalla" onmousedown="toggleFullScreen()">Pantalla completa</button>
<br/>
            <canvas id="canvas" width="256" height="256">
               <p>Your browser doesn't support HTML5 canvas.</p>
            </canvas>
<br/>
<button id="boton_arriba" onmousedown="pulsar_boton(38)" onmouseup="soltar_boton(38)" onmouseout="soltar_boton(38)">U</button> 
<br/>
<button id="boton_izquierda" onmousedown="pulsar_boton(37)" onmouseup="soltar_boton(37)" onmouseout="soltar_boton(37)">L</button> 
<button id="boton_derecha" onmousedown="pulsar_boton(39)" onmouseup="soltar_boton(39)" onmouseout="soltar_boton(39)">R</button>
<br/>
<br/>

<!--<h1 id="variable_1">variable_1: </h1>-->
</div>

        <!-- Run the game code -->
        <script type="text/javascript" src="html5game/html5_botones.js?RDPAC=1661301485"></script>

<script>
var variable_1 = document.getElementById("variable_1");
var nombre_boton ="";
var numero_boton =0;


//////////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(); 
    } 
  } 
}


//Detectando si existe pantalla tactil.
var touchDevice = ('ontouchstart' in document.documentElement);

//Boton arriba
nombre_boton="boton_arriba";
var elementoTouch= document.getElementById(nombre_boton);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
pulsar_boton(38);}}, false);
elementoTouch.addEventListener('touchend', function(event){
soltar_boton(38);
}, false);

//Boton izquierda
nombre_boton="boton_izquierda";
var elementoTouch= document.getElementById(nombre_boton);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
pulsar_boton(37);}}, false);
elementoTouch.addEventListener('touchend', function(event){
soltar_boton(37);
}, false);

//Boton derecha
nombre_boton="boton_derecha";
var elementoTouch= document.getElementById(nombre_boton);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
pulsar_boton(39);}}, false);
elementoTouch.addEventListener('touchend', function(event){
soltar_boton(39);
}, false);

//Boton reiniciar
nombre_boton="boton_reiniciar";
var elementoTouch= document.getElementById(nombre_boton);
elementoTouch.addEventListener('touchstart', function(event){
//Comprobamos si hay varios eventos del mismo tipo
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
// con esto solo se procesa UN evento touch
pulsar_boton(113);}}, false);
elementoTouch.addEventListener('touchend', function(event){
soltar_boton(113);
}, false);


//Simulando el teclado
var variable_1 = document.getElementById("variable_1");
function pulsar_boton(key){
var eventObj = document.createEventObject ?
    document.createEventObject() : document.createEvent("Events");
eventObj.keyCode = key;
eventObj.which = key;
eventObj.key=' ';
eventObj.code='Space';
if(eventObj.initEvent){eventObj.initEvent("keydown", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj) : document.fireEvent("onkeydown", eventObj);}

function soltar_boton(key){
var eventObj = document.createEventObject ?
    document.createEventObject() : document.createEvent("Events");
eventObj.keyCode = key;
eventObj.which = key;
eventObj.key=' ';
eventObj.code='Space';
if(eventObj.initEvent){eventObj.initEvent("keyup", true, true)}
document.dispatchEvent ? document.dispatchEvent(eventObj) : document.fireEvent("onkeyup", eventObj);}



</script>

    </body>
</html>



En este código podremos ver algunos códigos claves:
1.   El código html para visualizar los botones.
2.   El código que verifica si estamos usando pantalla táctil.
3.   Los códigos para eventos de pantalla táctil.
4.   El conjunto de códigos que simula la presión de una tecla del teclado (este es el más importante.).

Conclusiones:
La simulación de teclas es efectiva, los botones de javascript puden simular que una tecla ha sido presionada y esto a su vez es reconocido por game maker correctamente.

Bueno eso es todo por ahora seguimos programando.


42
General / Crash Orient Express
« en: Diciembre 04, 2021, 04:12:08 am »

43
General / Historias: la estrella horrible
« en: Diciembre 02, 2021, 02:00:14 am »

44
General / Historias
« en: Noviembre 22, 2021, 03:17:23 am »

45
Desarrollo de Scripts / draw_text_ext_html5(x,y,str,w);
« en: Noviembre 05, 2021, 03:36:22 am »
Autor del script: Reyes Dávila
Nombre del script: draw_text_ext_html5(x,y,str,w);
Breve descripción de su función: Ajusta un texto al ancho indicado al exportar a html5.
Versiones usadas: Game maker html5, debe funcionar en studio.
Version del script: 1

Código del script
Código: [Seleccionar]
//draw_text_ext_html5(x,y,str,w);
//Para crear textos ajustados a un ancho al exportar a html5.
//Serial del script: _WXP2F

posicion_x_WXP2F=argument0;
posicion_y_WXP2F=argument1;
string_x_WXP2F=argument2;
ancho_x_WXP2F=argument3;

length_x_WXP2F=string_length(string_x_WXP2F);
length_x_prev_WXP2F=length_x_WXP2F;
index_WXP2F=1;
count_WXP2F=1;
width_min_WXP2F=string_width("X");
for(i_WXP2F=1;i_WXP2F<=length_x_WXP2F;i_WXP2F+=1)
{

copy_x_WXP2F=string_copy(string_x_WXP2F,index_WXP2F,count_WXP2F);
width_x_WXP2F=string_width(copy_x_WXP2F);

count_x_WXP2F=string_count(" ",copy_x_WXP2F);
c1_WXP2F=(width_x_WXP2F>ancho_x_WXP2F);
c2_WXP2F=(ancho_x_WXP2F>width_min_WXP2F);
c3_WXP2F=(i_WXP2F>1);
c4_WXP2F=(length_x_WXP2F<length_x_prev_WXP2F*2);
c5_WXP2F=(count_x_WXP2F);

if(c1_WXP2F and c2_WXP2F and c3_WXP2F and c4_WXP2F and c5_WXP2F)
{

index_WXP2F=i_WXP2F;count_WXP2F=1;
copy_x2_WXP2F=string_copy(string_x_WXP2F,index_WXP2F,count_WXP2F);
while(copy_x2_WXP2F!=" " and i_WXP2F>2)
    {
        i_WXP2F-=1;
        index_WXP2F=i_WXP2F;count_WXP2F=1;
        copy_x2_WXP2F=string_copy(string_x_WXP2F,index_WXP2F,count_WXP2F);
    }

string_x_WXP2F=string_insert(chr(35),string_x_WXP2F,i_WXP2F+1);
length_x_WXP2F+=1;
index_WXP2F=i_WXP2F+3;
count_WXP2F=0;
}

count_WXP2F+=1;
}

draw_text(posicion_x_WXP2F,posicion_y_WXP2F,string_x_WXP2F);


Detalles:
La función original draw_text_ext(x,y,str,sep,w) no funciona al exportar a html5 por esta causa se ha creado este script como sustituto, el cual en su primera versión no emplea el argumento “sep” que hace referencia a la separación de las líneas.

Mejoras a futuro:
1. Agregar el argumento sep.
2. Correcciones internas.
3. Mejorar precisión.
4. Crear conjunto de script para el control de textos que permita medir el alto de los párrafos con gran precisión al exportar en html5.

Páginas: 1 2 3 4 5 ... 17