Noticias

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

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 - dixon2010

Páginas: 1 2
1
Hola, gusto en saludarles, vengo a solicitarles ayuda para el siguiente problema que voy a indicarles:

Cuando voy programando y el código se va desarrollando, mi mente se va saturando y los scripts voy olvidando. Cuando vuelvo a intentar, todo se me vuelve a olvidar entonces decido borrar y mi juego olvidar.
Si sigo así nunca voy a crear y mis ideas se van a esfumar, de ninguna manera voy a monetizar y tampoco voy a triunfar. Quería saber si me pudiesen aconsejar, sobre cómo administrar, para no olvidar los grandes scripts que necesito crear.

2
Preguntas y respuestas / ¿como automatizar código?[solucionado]
« en: Diciembre 14, 2018, 12:30:48 am »
Tengo el siguiente código modelo:
Código: [Seleccionar]
conjunto=x;
Necesito repetir ese código modelo cambiando la palabra “conjunto” por otros términos de la siguiente manera.
Código: [Seleccionar]
simbolos =x;
fracciones =x;

Para automatizar este código uso el siguiente código:
Código: [Seleccionar]
grupo[1]=”simbolos”;
grupo[2]=”fracciones”;
for(i=1;i<=2;i+=1)
{
str= ‘conjunto=x’;
str=string_replace_all(str,“conjunto”,grupo[i]);
execute_string(str2);
}

Pero Game Maker studio 1 y 2 no aplica execute_string(str);
¿que puedo hacer?.

3
Desarrollo de Scripts / orden_alfabetico(str,index)
« en: Noviembre 09, 2018, 05:01:57 pm »
Nombre del creador: REYES DAVILA
Breve descripción de su función: orden alfabético.
Versión GM utilizada: GM4
Código del Script:

b1=0
b3=0
kbk=0
contador=0

//ADMINISTRADOR DE PALABRAS
palabra_ram=""
i2=1
for(i=1;i<=string_length(argument0);i+=1)
 {
  letra=string_copy(argument0,i,1)
  letra_pos=string_copy(argument0,i-1,1)
  if(letra!=" ")palabra_ram+=letra
  if(letra=" " && letra_pos!=" " || i=string_length(argument0))
   {
    palabra[i2]=palabra_ram
    palabra_id[i2]=i2
    palabra_letra[i2]=string_copy(palabra[i2],1,1)
    if(ord(palabra_letra[i2])>=91 && ord(palabra_letra[i2])<=122)palabra_letra[i2]=chr(ord(palabra_letra[i2])-32)
    palabra_ram=""
    if(i<string_length(argument0))i2+=1
   }
 }
palabra_numero=i2

//organizador de palabras
for(i=1;i<=palabra_numero;i+=1)
 {
 palabra_pos[i]=1
 for(i2=1;i2<=palabra_numero;i2+=1)
  {
  ord1=ord(palabra_letra[i])
  ord2=ord(palabra_letra[i2])
  id1=palabra_id[i]
  id2=palabra_id[i2]
  if(i!=i2 && ord1 > ord2){palabra_pos[i]+=1}
  if(i!=i2 && ord1 = ord2)
   {
   if(palabra[i]=palabra[i2])    
    {
    if(id1>id2){palabra_pos[i]+=1}
    }
    else
    {
    if(string_length(palabra[i])>1 && string_length(palabra[i2])>1)
     {
     superior=0
     i3=1
     repetir=1
     for(i3=1;repetir;i3+=1)
      {
      repetir=0
      letra=string_copy(palabra[i],i3+1,1)
      letra2=string_copy(palabra[i2],i3+1,1)
      if(string_length(palabra[i])>i3-1 && string_length(palabra[i2])>i3-1)
       {
       if(ord(letra) > ord(letra2)){superior=1}
       if(ord(letra) = ord(letra2)){repetir=1;}
       }
      }
     if(superior){palabra_pos[i]+=1}
     }
     else
     {
     if(string_length(palabra[i])!=string_length(palabra[i2]))
      {
      if(string_length(palabra[i])>string_length(palabra[i2])){palabra_pos[i]+=1;}
      }
      else
      {
      if(id1>id2){palabra_pos[i]+=1;palabra_cod[i]="aqui"}
      }
     }//fin else
    }//fin else
   }//fin if
  }//fin for
 }//fin for

//organizador de palabras 2
for(i=1;i<=palabra_numero;i+=1)
 {
 for(i2=1;i!=palabra_pos[i2];i2+=1){};
 palabra_ordenada[i]=palabra[i2]
 }

//agrupando palabras
str2=""
for(i=1;i<=palabra_numero;i+=1)
 {
 str2+=palabra_ordenada[i]+" "
 }

//devolviendo valor

if(argument1)
 {
 return palabra_ordenada[argument1]
 }
 else
 {
 return  str2
 }

orden_alfabetico(str,index): en str colocas la cadena con el conjunto de palabras a ordenar y en index colocas la palabra que quieres ver, si no se especifica nada devuelve la cadena completa ordenada.

Ejemplo1:
orden_alfabetico("corazón tiburón azul ballena")
esto devuelve cadena: "azul ballena corazón tiburón"

Ejemplo2:
orden_alfabético("corazón tiburón azul ballena", 1)
esto devuelve cadena: "azul"


4
Desarrollo de Scripts / scripts PACK
« en: Noviembre 09, 2018, 04:54:13 pm »
Nombre del creador: REYES DAVILA
Breve descripción de su función: conjunto de scripts explicados más abajo
Versión GM utilizada: GM4 - en proceso de compatibilidad, se pretende compatibilidad hasta la versión studio 2

1. numero_mayor(str,index).
2. numero_menor(str,index).
3. orden_alfabetico(str,index).
4. string_mayuscula(str).
5. string_minuscula(str).
6. string_tilde(str).
7. text_scaner(string,w).


Códigos de los Scripts:

1. numero_mayor(str,index): en str se coloca la cadena de números que se quiere ordenar y en index se coloca el número a visualizar, si no se especifica el index, devuelve la cadena ordenada de mayor a menor.

Código: [Seleccionar]
//el numero mayor.
//ordena los numeros de mayor a menor
//numero_mayor(str,index) en str se coloca la cadena de texto con los numeros a ordenar en index se coloca el numero de la posicion que queremos, si no se especifica nada devuelve una cadena con los numeros ordenados.
//ejemplo string0("6 7 88 109 1 4 66 11 43"); esto te devuelve un string ordenado de mayor a menor.
//ejemplo2 string("4 5 3 3 33 22 6 7 88 43 1 5", 3); esto te devuelve el numero en la posición numero 3 de los numeros ordenados de mayor a menor.
//crea los arrays y las variables siguientes:
//numero_n: cantidad de numeros
//numero[num]: numero en la posicion num sin ordenar
//numero_id[num]: posicion que tiene el numero antes de ordenarse
//numero_pos[num]: posicion del numero despues de ordenarse
//numero_org[num]: numero en la posicion num despues de ordenado

//administrador de numeros
numero_n=0
numero_str=""
i2=1
for(i=1;i<=string_length(argument0);i+=1)
{
numero=string_copy(argument0,i,1)
numero_pre=string_copy(argument0,i-1,1)
if(numero!=" ")numero_str+=numero
if(numero_pre!=" " && numero=" " || i=string_length(argument0))
{
numero_n+=1
numero[i2]=real(numero_str)
numero_id[i2]=i2
numero_str=""
i2+=1
}
}

//organizando numeros
for(i=1;i<=numero_n;i+=1)
{
numero_pos[i]=1
for(i2=1;i2<=numero_n;i2+=1)
{
if((i!=i2) && (numero[i]<numero[i2])){
numero_pos[i]+=1}
if((i!=i2) && (numero[i]=numero[i2])){
if(numero_id[i]<numero_id[i2])numero_pos[i]+=1}
}
}

//ordenando numeros
i2=1
for(i=1;i<=numero_n;i+=1)
{
for(i2=1;i!=numero_pos[i2];i2+=1){};
numero_org[i]=numero[i2]
}

//creando return
str2=""
for(i=1;i<=numero_n;i+=1)
{
str2+=string(numero_org[i])+" "
}

if(!argument1)
{
return str2
}
else
{
return numero_org[argument1]
}


2. numero_menor(str,index): en str se coloca la cadena de números que se quiere ordenar y en index se coloca el número a visualizar, si no se especifica el index, devuelve la cadena ordenada de menor a mayor.

Código: [Seleccionar]
//el numero menor.
//ordena de menor a mayor los numeros
//numero_menor(str,index) en str se coloca la cadena de texto con los numeros a ordenar en index se coloca el numero de la posicion que queremos, si no se especifica nada devuelve una cadena con los numeros ordenados.
//ejemplo string0("6 7 88 109 1 4 66 11 43"); esto te devuelve un string ordenado
//ejemplo2 string("4 5 3 3 33 22 6 7 88 43 1 5", 3); esto te devuelve el numero en la posición numero 3 de los numeros ordenados de menor a mayor.
//crea los arrays y las variables siguientes:
//numero_n: cantidad de numeros
//numero[num]: numero en la posicion num sin ordenar
//numero_id[num]: posicion que tiene el numero antes de ordenarse
//numero_pos[num]: posicion del numero despues de ordenarse
//numero_org[num]: numero en la posicion num despues de ordenado

//administrador de numeros
numero_n=0
numero_str=""
i2=1
for(i=1;i<=string_length(argument0);i+=1)
 {
 numero=string_copy(argument0,i,1)
 numero_pre=string_copy(argument0,i-1,1)
 if(numero!=" ")numero_str+=numero
 if(numero_pre!=" " && numero=" " || i=string_length(argument0))
  {
  numero_n+=1
  numero[i2]=real(numero_str)
  numero_id[i2]=i2
  numero_str=""
  i2+=1
  }
 }

//organizando numeros
for(i=1;i<=numero_n;i+=1)
{
numero_pos[i]=1
for(i2=1;i2<=numero_n;i2+=1)
 {
 if((i!=i2) && (numero[i]>numero[i2])){
 numero_pos[i]+=1}
 if((i!=i2) && (numero[i]=numero[i2])){
 if(numero_id[i]>numero_id[i2])numero_pos[i]+=1}
 }
}

//ordenando numeros
i2=1
for(i=1;i<=numero_n;i+=1)
 {
 for(i2=1;i!=numero_pos[i2];i2+=1){};
 numero_org[i]=numero[i2]
 }

//creando return
str2=""
for(i=1;i<=numero_n;i+=1)
 {
 str2+=string(numero_org[i])+" "
 }

if(!argument1)
 {
 return str2
 }
 else
 {
 return numero_org[argument1]
 }


3. orden_alfabetico(str,index): en str colocas el conjunto de palabras que desees organizar alfabéticamente y en index colocas el numero de la palabra que quieres ver ya ordenada, si en index no se especifica nada devuelve una cadena ordenada.

Código: [Seleccionar]
//orden_alfabetico(str,index): en str colocas el conjunto de palabras que desees organizar alfabéticamente y en index colocas el numero de la palabra que quieres ver ya ordenada, si no se especifica nada devuelve una cadena ordenada.

//devuelve las siguientes variables y arrays
//palabra_numero: cantidad de palabras encontradas.
//palabra[num]: palabra en la posicion num antes de ordenar
//palabra_id[num]: posicion que tiene la palabra en la posicion num antes de ordenar.
//palabra_letra[num]: primera letra de la palabra num antes de ordenar.
//palabra_pos[num]: posicion de la palabra despues de ordenar
//palabra_ordenada[num]: palabra en la posicion num despues de ordenar.

b1=0
b3=0
kbk=0
contador=0

//ADMINISTRADOR DE PALABRAS
palabra_ram=""
i2=1
for(i=1;i<=string_length(argument0);i+=1)
 {//inicio for L1
  letra=string_copy(argument0,i,1)
  letra_pos=string_copy(argument0,i-1,1)
  if(letra!=" ")palabra_ram+=letra
  if(letra=" " && letra_pos!=" " || i=string_length(argument0))
   {
    palabra[i2]=palabra_ram
    palabra_id[i2]=i2
    palabra_letra[i2]=string_copy(palabra[i2],1,1)
    if(ord(palabra_letra[i2])>=91 && ord(palabra_letra[i2])<=122)palabra_letra[i2]=chr(ord(palabra_letra[i2])-32)
    palabra_ram=""
    if(i<string_length(argument0))i2+=1
   }
 }
palabra_numero=i2

//organizador de palabras
for(i=1;i<=palabra_numero;i+=1)
 {
 palabra_pos[i]=1
 for(i2=1;i2<=palabra_numero;i2+=1)
  {//inicio for L2
  ord1=ord(palabra_letra[i])
  ord2=ord(palabra_letra[i2])
  id1=palabra_id[i]
  id2=palabra_id[i2]
  if(i!=i2 && ord1 > ord2){palabra_pos[i]+=1}
  if(i!=i2 && ord1 = ord2)
   { //inicio if L3
   if(palabra[i]=palabra[i2])   
    {
    if(id1>id2){palabra_pos[i]+=1}
    }
    else
    {//inicio else L4
    if(string_length(palabra[i])>1 && string_length(palabra[i2])>1)
     {
     superior=0
     i3=1
     repetir=1
     for(i3=1;repetir;i3+=1)
      {
      repetir=0
      letra=string_copy(palabra[i],i3+1,1)
      letra2=string_copy(palabra[i2],i3+1,1)
      if(string_length(palabra[i])>i3-1 && string_length(palabra[i2])>i3-1)
       {
       if(ord(letra) > ord(letra2)){superior=1}
       if(ord(letra) = ord(letra2)){repetir=1;}
       }
      }
     if(superior){palabra_pos[i]+=1}
     }
     else
     { //inicio else L6
     if(string_length(palabra[i])!=string_length(palabra[i2]))
      {
      if(string_length(palabra[i])>string_length(palabra[i2])){palabra_pos[i]+=1;}
      }
      else
      {
      if(id1>id2){palabra_pos[i]+=1;palabra_cod[i]="aqui"}
      }
     }//fin else L6
    }//fin else L4
   }//fin if L3
  }//fin for L2
 }//fin for L1

//organizador de palabras 2
for(i=1;i<=palabra_numero;i+=1)
 {
 for(i2=1;i!=palabra_pos[i2];i2+=1){};
 palabra_ordenada[i]=palabra[i2]
 }

//agrupando palabras
str2=""
for(i=1;i<=palabra_numero;i+=1)
 {
 str2+=palabra_ordenada[i]+" "
 }

//devolviendo valor

if(argument1)
 {
 return palabra_ordenada[argument1]
 }
 else
 {
 return  str2
 }


4. string_mayuscula(str): en str colocas la cadena que será cambiada a mayúscula.

Código: [Seleccionar]
//string_mayuscula(str) en str colocas la cadena que será cambiada a mayúscula.
//convierte un máximo de 1024 millones de palabras.

string_mayuscula_argument0=argument0

 //EDITANDO PALABRAS
 for(string_mayuscula_i=0;string_mayuscula_i<=31;string_mayuscula_i+=1)
 {
 //string_replace_all(str,substr,newstr);
 if(string_mayuscula_i<=25)string_mayuscula_argument0=string_replace_all(string_mayuscula_argument0,chr(97+string_mayuscula_i),chr(65+string_mayuscula_i));
 string_mayuscula_argument0=string_replace_all(string_mayuscula_argument0,chr(224+string_mayuscula_i),chr(192+string_mayuscula_i));
 }

 return string_mayuscula_argument0


5. string_minuscula(str):  en str colocas la cadena que será cambiada a minuscula.

Código: [Seleccionar]
//string_minuscula(str) en str colocas la cadena que será cambiada a minúscula.

string_minuscula_argument0=argument0

//EDITANDO LAS PALABRAS
for(string_minuscula_i=0;string_minuscula_i<=31;string_minuscula_i+=1)
 {
 //string_replace_all(str,substr,newstr);
 if(string_minuscula_i<=25)string_minuscula_argument0=string_replace_all(string_minuscula_argument0,chr(65+string_minuscula_i),chr(97+string_minuscula_i));
 string_minuscula_argument0=string_replace_all(string_minuscula_argument0,chr(192+string_minuscula_i),chr(224+string_minuscula_i));
 }

return string_minuscula_argument0


6. string_tilde(str):  en str colocas la cadena cuyas palabras se le quitará el acento.

Código: [Seleccionar]
//sin_tilde(str) en str colocas la cadena cuyas palabras se le quitará el acento.
//convierte un máximo de 1024 millones de palabras.
//código asci:
//A=65; Z=90
//a=97; z=122
//À=192-197;È=200-203;Ì=204-207;Ò=210-214;Ù=217-220;Ý=221-221
//à=224-229;è=232-235;ì=236-239;ò=242-246;ù=249-252;ý=253-255

sin_tilde_str3=argument0

//EDITANDO PALABRAS
for(sin_tilde_i=0;sin_tilde_i<=31;sin_tilde_i+=1)
 {
 //string_count(substr,str)
 //string_replace_all(str,substr,newstr)
 sin_tilde_newstr=""
 if(sin_tilde_i<=29)
  {
  if(string_count(chr(192+sin_tilde_i),sin_tilde_str3))
   {
   sin_tilde_acento=192+sin_tilde_i
   //À=192-197;È=200-203;Ì=204-207;Ò=210-214;Ù=217-220;Ý=221-221
   if(sin_tilde_acento>=192 && sin_tilde_acento<=197)sin_tilde_newstr="A"
   if(sin_tilde_acento>=200 && sin_tilde_acento<=203)sin_tilde_newstr="E"
   if(sin_tilde_acento>=204 && sin_tilde_acento<=207)sin_tilde_newstr="I"
   if(sin_tilde_acento>=210 && sin_tilde_acento<=214)sin_tilde_newstr="O"
   if(sin_tilde_acento>=217 && sin_tilde_acento<=220)sin_tilde_newstr="U"
   if(sin_tilde_acento=221)sin_tilde_newstr="Y"
   sin_tilde_str3=string_replace_all(sin_tilde_str3,chr(192+sin_tilde_i),sin_tilde_newstr)
   }
  }
 if(string_count(chr(224+sin_tilde_i),sin_tilde_str3))
  {
  sin_tilde_acento=224+sin_tilde_i
  //à=224-229;è=232-235;ì=236-239;ò=242-246;ù=249-252;ý=253-255
  if(sin_tilde_acento>=224 && sin_tilde_acento<=229)sin_tilde_newstr="a"
  if(sin_tilde_acento>=232 && sin_tilde_acento<=235)sin_tilde_newstr="e"
  if(sin_tilde_acento>=236 && sin_tilde_acento<=239)sin_tilde_newstr="i"
  if(sin_tilde_acento>=242 && sin_tilde_acento<=246)sin_tilde_newstr="o"
  if(sin_tilde_acento>=249 && sin_tilde_acento<=252)sin_tilde_newstr="u"
  if(sin_tilde_acento>=253 && sin_tilde_acento<=255)sin_tilde_newstr="y"
  sin_tilde_str3=string_replace_all(sin_tilde_str3,chr(224+sin_tilde_i),sin_tilde_newstr)
  } 
 }

 return sin_tilde_str3


7. text_scaner(str,w): en str colocas el string a evaluar y en w indicas el ancho maximo que deberá tener el texto, si no se indica nada en w  el ancho por defecto será el ancho del room.

  text_scaner(str,w): Devuelve las siguientes variables y arrays:
  palabra_numero: cantidad de palabras que contiene el párrafo incluyendo números y símbolos.
  linea_numero: cantidad de lineas que conforman el párrafo.
  palabra[num]: palabra de la posicion num.
  palabra_index[num]: posición en el string de la primera letra de la palabra de la posicion num
  palabra_index2[num]: posición en el string de la ultima letra de la palabra de la posicion num
  palabra_x[num]: posición x en el room de la palabra de la posicion num
  plabra_x2[num]: posición x2 en el room de la palabra de la posicion num
  palabra_linea[num]: linea en donde se encuentra la palabra de la posicion num.
  linea[num]: contenido de la linea de la posicion num.
  linea_final: contenido de la linea final.

Código: [Seleccionar]
//text_scaner(str,w). en str colocas el string a evaluar y en w indicas el ancho maximo que deberá tener el texto, si no se indica nada en w  el ancho por defecto será el ancho del room.

//Devuelve las siguientes variables y arrays:
//palabra_numero: cantidad de palabras que contiene el párrafo incluyendo números y símbolos.
//linea_numero: cantidad de lineas que conforman el párrafo.
//palabra[num]: palabra de la posicion num.
//palabra_index[num]: posición en el string de la primera letra de la palabra de la posicion num
//palabra_index2[num]: posición en el string de la ultima letra de la palabra de la posicion num
//palabra_x[num]: posición x en el room de la palabra de la posicion num
//plabra_x2[num]: posición x2 en el room de la palabra de la posicion num
//palabra_linea[num]: linea en donde se encuentra la palabra de la posicion num.
//linea[num]: contenido de la linea de la posicion num.
//linea_final: contenido de la linea final.

str=argument0
ancho_texto=argument1
if(!ancho_texto)ancho_texto=room_width
str2=string_replace_all(str,string(chr(13))," ")

//CALCULANDO ANCHO MAXIMO PERMITIDO DEL TEXTO
palabra_ram=""
i2=1
for(i=1;i<=string_length(str2);i+=1)
 {
 letra=string_copy(str2,i,1)
 letra_pre=string_copy(str2,i-1,1)
 if(ord(letra)!=32)palabra_ram+=letra
 if((ord(letra_pre)!=32) && (ord(letra)=32) || i=string_length(str2))
  {
  if(ancho_texto<string_width(palabra_ram+" "))ancho_texto=string_width(palabra_ram+" ")
  palabra_ram=""
  }
 }

//EVALUANDO Y REEMPLAZANDO SALTO DE LINEA
espacio=""
for(i=1;i<=ancho_texto;i+=1){espacio+=" "}
str2=string_replace_all(str,string(chr(13)),espacio)

//ADMINISTRACION DE PALABRAS
palabra_ram=""
i2=1
index=1
for(i=1;i<=string_length(str2);i+=1)
 {
 letra=string_copy(str2,i,1)
 letra_pre=string_copy(str2,i-1,1)
 if((ord(letra_pre)=32) && (ord(letra)!=32))index=i
 if(ord(letra)!=32)palabra_ram+=letra
 if((ord(letra_pre)!=32) && (ord(letra)=32) || i=string_length(str2))
 {
 palabra[i2]=palabra_ram
 palabra_index[i2]=index
 palabra_index2[i2]=index+string_length(palabra[i2])-1
 palabra_x[i2]=string_width(string_copy(str2,1,palabra_index[i2]-1))
 palabra_x2[i2]=string_width(string_copy(str2,1,palabra_index2[i2]))
 palabra_x2max[i2]=palabra_x2[i2]+string_width(" ")
 palabra_linea[i2]=1
 palabra_ram=""
 if(i<string_length(str2))i2+=1
 }
 }
 palabra_numero=i2

//ADMINISTRADOR DE LINEAS
i2=1
i3=1
resta_index=0
resta_x=0
i5=1
for(i=1;i<=string_length(str);i+=1)
 {
 letra=string_copy(str,i,1)
 letra_pre=string_copy(str,i-1,1)
 if((ord(letra_pre)!=32) && (ord(letra)=32) || i=string_length(str))i2+=1
 if(palabra_x2max[i2]>ancho_texto)
  {
  linea[i3]=string_copy(str2,1,palabra_index2[i2-1])
  str2=string_copy(str2,palabra_index[i2],string_length(str2))
  resta_index=palabra_index[i2]-1
  resta_x=palabra_x[i2]
  for(i4=i2;i4<=palabra_numero;i4+=1)
   {
   palabra_index[i4]-=resta_index
   palabra_index2[i4]-=resta_index
   palabra_x[i4]-=resta_x
   palabra_x2[i4]-=resta_x
   palabra_x2max[i4]-=resta_x
   palabra_linea[i4]=i3+1
   }
  i3+=1
  }
 }

linea[i3]=str2
linea_numero=i3
linea_final=str2

5
General / Fenris78 ¿como está?
« en: Noviembre 06, 2018, 05:19:39 pm »
Hola, gusto en saludarle.



Ruerdo en el pasado cuando el administrador Fenris78, se pasaba por estos pasillos con mucha frecuencia con su carácter ejemplar, poniendo mucho orden y disciplina. Quisiera saber como está y que consejos puede darnos a todos los que aún usamos gamemaker como nuestro principal motor de desarrollo. Estoy admirado por lo que ha logrado su firma "Oniric Factor".

El siguiente video expone una serie de video juegos creados por Oniric Factor


Los invito a agradecerle todos los reglamentos que ha publicado para esta comunidad y darle un like para ver si algún día se levanta y nos frece algunas palabras de aliento y revolución.  ;)


Es hora de entregarle nuestro bolígrafo.
[youtube]http://www.youtube.com/watch?v=2jauWCFpizE[/youtube]

Cabe mencionar que todos los administradores de esta comunidad son admirables por su conducta y temperamento al enfrentar los problemas de la comunidad y representan un modelo a seguir en ética y respeto. Muchas gracias a todos.

6
Juegos en desarrollo / Inderezar el camino
« en: Noviembre 02, 2018, 03:08:29 pm »


Inderezar el camino


Serius Game


GM5

Este futuro game pretende ser un entretenimiento educativo y herramienta para desarrollar la habilidad de tolerar largas horas de lectura con alegría. En cuanto al tema principal del juego pues trata sobre las técnicas biblicas que he aplicado para corregir mi conducta.

La mis internacional 2018 Mariem Velazco, menciona que estimulará a los niños para que lean.
[youtube]http://www.youtube.com/watch?v=nUN4dIzSEq0[/youtube]






https://mega.nz/#!mqQCWK7C!5Op1uLjteMq3IOA05KPf4Rz7pmEr2DOuc2r8ir9e1jE


El código utilizado me ha sido bastante complicado pues para conseguir ciertas funciones he tenido que imitar la función draw_text_ext

Código: [Seleccionar]
if(x=0)
{
kbk=0
b1=0
b3=0

b5=0
b6=0
contador=1
contador2=1

str="Proverbios 1:5 El sabio escucha y absorbe más instrucción, y el entendido es el que adquiere dirección diestra,"
font_name="Courier New"
font_size=10

//ADMINISTRADOR DE PALABRAS
i2=1
palabra_ram=""
margen=" "
sl=0
for(i=1;i<=string_length(str);i+=1)
{
letra=string_copy(str,i,1)
letra_pos=string_copy(str,i+1,1)
if(letra!=" ")palabra_ram+=letra
if(ord(letra)=13)sl=320
if(letra!=" " && letra_pos=" " || i=string_length(str))
{
palabra_linea[i2]=1
palabra[i2]=palabra_ram
palabra_index[i2]=i-string_length(palabra[i2])+1
palabra_index2[i2]=i
palabra_x[i2]=string_width(string_copy(str,1,palabra_index[i2]-1))
if(i2=1)palabra_x[i2]=0
palabra_x2[i2]=string_width(string_copy(str,1,palabra_index2[i2]))
palabra_x2max[i2]=string_width(string_copy(str,1,palabra_index2[i2])+string(margen))
if(i<string_length(str))i2+=1
palabra_ram=""
}
}
palabra_numero=i2

//ADMINISTRADOR DE LINEAS
palabra=1
i2=1
str2=str

for(i=1;i<=string_length(str);i+=1)
{
letra=string_copy(str,i,1)
letra_pos=string_copy(str,i-1,1)
if(letra=" " && letra_pos!=" " || i=string_length(str)){palabra+=1}

if(palabra_x2max[palabra]>320)
{
linea[i2]=string_copy(str2,1,palabra_index2[palabra-1])
str2=string_copy(str2,palabra_index[palabra],string_length(str2))
i2+=1

for(i3=palabra+1;i3<=palabra_numero;i3+=1)
{
palabra_index2[i3]-=palabra_index[palabra]-1
palabra_index[i3]-=palabra_index[palabra]-1
palabra_x2max[i3]-=palabra_x[palabra]
palabra_x2[i3]-=palabra_x[palabra]
palabra_x[i3]-=palabra_x[palabra]
palabra_linea[i3]=i2
}
palabra_linea[palabra]=i2
palabra_index2[palabra]-=palabra_index[palabra]-1
palabra_index[palabra]-=palabra_index[palabra]-1
palabra_x2[palabra]-=palabra_x[palabra]
palabra_x2max[palabra]-=palabra_x[palabra]
palabra_x[palabra]-=palabra_x[palabra]
}
}
linea_numero=i2
linea[linea_numero]=str2

x=1
}
//botones a usar
b1p=(b1=0)*keyboard_check(37)
b1=keyboard_check(37)
b3p=(b3=0)*keyboard_check(39)
b3=keyboard_check(39)
b5p=(b5=0)*keyboard_check(97)
b5=keyboard_check(97)
b6p=(b6=0)*keyboard_check(98)
b6=keyboard_check(98)
contador+=b3p-b1p
contador2+=b6p-b5p
kbkp=(kbk=0)*keyboard_key
kbk=keyboard_key

if(kbkp=113)game_restart()

//dibujos
recy=(palabra_linea[contador]-1)*(font_size+font_size/1.5-1)
draw_rectangle(palabra_x[contador],recy,palabra_x2[contador],recy+font_size+font_size/1.5)

draw_text_ext(0,0,str,-1,320)

dy=120

i=1
repeat(linea_numero)
{
draw_text(0,dy,linea[i])
dy+=font_size+font_size/2
i+=1
}




7
Hola gusto en saludarles.

¿Game Maker Studio 2 trae el archivo de ayuda 5pice.chm u otro archivo parecido como lo trae Studio 1.4?.  De ser así ¿podrían compartirlo?.



Att. Reyes Dávila.

8
Hola gusto en saludarles.

Cuando se ejecuta un juego html5 en un dispositivo android, la posicion del dedo se interpreta como la posicion del raton en pc. Basandome en esos datos he creado un juego html5 que puede ser jugado en pc, tablets y moviles. pero para poder ejecutarlo en moviles hay que colocar el explorador en vista de escritorio y eso es incomodo para los usuarios. Quisiera saber cual es la forma mas efectiva de adaptar los html5 en android.

En el siguiente enlace se presenta el juego en cuestion para ser evaluado de forma directa sin descargar.
http://www.comunidadgm.org/juegos-completos/la-carreta-precisa/msg134770/#msg134770


9
Juegos completos / La carreta precisa
« en: Octubre 05, 2018, 11:47:12 pm »


La carreta precisa


Plataformas


GM4

Hola, gusto en saludarles.

Les presento este reto informático de precisión donde se controla el ángulo de inclinación de la carreta para lograr que se adapte a las superficies. A algunos usuarios pueden llegar a sentir miedo cuando la carreta está apunto de precipitarse.







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


Presenta tres características:
1. Mono codigo: Se programó con un unico codigo para el evento draw de un objeto principal.
2. Compatibilidad 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




Proceso de armado del juego

Aquí les dejo el proceso sencillo que debe seguirse para armar este juego mediante cualquier versión del game maker exceptuando las anteriores a Game maker 4.0 (2001).


0.Descargar las imagenes.https://mega.nz/#!LihAnCBI!7FBQpRuJtrDdv8lnCyS4ehcfvJnG5SRORE1b1oQaj0Y
1.Habre tu Gamemaker, en cualquier Gamemaker te funcionará.
2.Crear 6  sprites y modificarlos como se indica mas abajo (desde el cero al 5).
3.Crear 6 objetos (desde el cero al 5).
4.Al objeto0 crearle un evento DRAW e introducele el código fuente que está mas abajo.
5.Crear un room y colocarle los 6 objetos en cualquier sitio (desde el cero al 5).
 Listo ejecutar...



Características de los sprites:

sprite0: 00_man.gif
origin x=26; y=24
Precise: NO

sprite1: 01_map.gif
origin: x=0; y=0
Precise: SI

sprite2: 02_rueda.gif
origin: x=20; y=20
Precise: SI

sprite3: 03_carreta.gif
origin: x=52; y=52
Precise: SI

sprite4: 04_boton.gif
origin: x=0; y=0
Precise: SI

sprite5: 05_titulo.gif
origin: x=0; y=0
Precise: SI

Código fuente:

if(x=0)
{

global.sprite_man=0
global.sprite_map=1
global.sprite_rueda=2
global.sprite_carreta=3
global.sprite_boton=4
global.sprite_titulo=5

global.idmap=object1.id
global.idmap.x=0
global.idmap.y=0
global.idmap.sprite_index=global.sprite_map
global.idmap.image_speed=0
global.idmap.depth=2

global.idmap2=object2.id
global.idmap2.x=320
global.idmap2.y=0
global.idmap2.sprite_index=global.sprite_map
global.idmap2.image_speed=0
global.idmap2.image_index=1+floor(random(31))
global.idmap2.depth=2

global.idman=object3.id
global.idman.x=175
global.idman.y=167
global.idman.sprite_index=global.sprite_man
global.idman.image_speed=0

global.idcarreta=object4.id
global.idcarreta.x=100
global.idcarreta.y=171
global.idcarreta.sprite_index=global.sprite_carreta
global.idcarreta.image_speed=0
global.idcarreta.image_index=18

global.idrueda=object5.id
global.idrueda.x=100
global.idrueda.y=171
global.idrueda.sprite_index=global.sprite_rueda
global.idrueda.image_speed=0
global.idrueda.depth=-1

global.idcontrol=id
global.pause=1
global.choque=0
global.reloj=0
global.escena=1
global.v=0
global.puntos=0

depth=1
kbk=0
show_score=0
dp=0
x=1
}

//para objeto control
kbkp=(kbk=0)*keyboard_key
kbk=keyboard_key
if(kbkp=113){x=0;game_restart()}
if(kbkp=123){game_end()}

//boton
bajar_boton=0
mover_boton=0
subir_boton=0
if(global.choque && global.idrueda.y<120)bajar_boton=200
if(global.choque){mover_boton=185;subir_boton=100}
boton_x=185-mover_boton
boton_y=100-subir_boton+bajar_boton
toque=0
if(mouse_x>boton_x && mouse_y>boton_y && mouse_x<boton_x+128 && mouse_y<boton_y+39){global.reloj+=0.1;toque=1}else{global.reloj=0}
if(global.pause)
{
global.v=0
if(global.choque=0)
{
draw_sprite(global.sprite_titulo,0,90,40)
draw_text(105,70,"Puntaje más alto: "+string(highscore_value(1)))
}
if(floor(global.reloj)=1)
{
if(global.choque)
{
highscore_add("usuario",global.puntos)
game_restart();x=0
}
global.pause=0
global.v=1
}
draw_sprite(global.sprite_boton,global.choque*2+toque,boton_x,boton_y)
}

//mapa
with(object1)
{
if(global.pause=0)
{
x-=floor(global.v)
}
if((x+320)<0)
{
x+=640
image_index=1+floor(random(31))
}
}

//mapa2
with(object2)
{
if(global.pause=0)
{
x-=floor(global.v)
}
if((x+320)<0)
{
x+=640
image_index=1+floor(random(31))
}
}

//man
with(global.idman)
{
if(global.pause=0)
{
//movimientoy
vs=5
while(place_meeting(x,y+vs,object1))vs-=1
while(place_meeting(x,y+vs,object2))vs-=1
y+=vs
}
image_speed=global.v/5
if(place_meeting(x,y+5,all)=0)image_index=2
}

//rueda
with(global.idrueda)
{
if(global.pause=0)
{
//movimientoy
vs=10
while(place_meeting(x,y+vs,object1))vs-=1
while(place_meeting(x,y+vs,object2))vs-=1
y+=vs
}
image_speed=global.v/3
}


//carreta
with(global.idcarreta)
{
if(place_meeting(x,y,object1)){global.choque=1;global.pause=1}
if(place_meeting(x,y,object2)){global.choque=1;global.pause=1}
if(global.choque=0)
{
if(global.pause=0)
{
if(mouse_y>0 && mouse_y<240)image_index=floor(mouse_y/6.6)
}
//movimiento vertical
y=global.idrueda.y
}
}


//PAUSE Y CAMARA
if(global.pause=0)
{
//movimiento camara
global.v+=0.001
global.puntos+=1

//dibujando cueda al final
//cuerda
if(mouse_y>0 && mouse_y<240)direction=90-floor(mouse_y/6.6)*5

}

//cuerda
dcx=cos(direction*pi/180)
dcy=-sin(direction*pi/180)
draw_line(global.idman.x-3,global.idman.y-11,global.idcarreta.x+dcx*35,global.idcarreta.y+dcy*35)

//puntos
if(global.puntos)
{
draw_text(260,0,global.puntos)
}



10
Hola

Quisiera saber donde puedo conseguir documentación o manuales de game maker para sus distintas versiones en diversos lenguajes para cualquier formato (PDF, doc, HTML, txt).

En la siguiente web se permiten descargar dichos manuales pero faltan otras versiones.
http://gamemaker.cc/?section=documents

En la siguiente página se presentan las distintas versiones del game maker
http://game-maker.wikidot.com/game-maker-versions

11
Juegos completos / El oro para mi madre
« en: Septiembre 02, 2018, 06:00:44 am »


El oro para mi madre


ROL


GM4

Lorenzo está angustiado buscando oro para poder comprar los medicamentos a su querida madre.




Lo puedes jugar directamente desde aquí, sin descargar nada:
https://www.kongregate.com/games/reyesdavila1987/el-oro-para-mi-madre


Este es un juego de rol de un minuto de duración. Lo he creado en 5 días con el propósito de comprender las bases de este tipo de juegos. Yo pienso que para crear un gran juego RPG primero hay que crear uno pequeño como este. Realmente lo he creado con game maker 4 y luego lo pasé al game maker studio para la versión html5. La idea surgió a raiz de una pregunta en esta comunidad sobre el desarrollo de un juego rpg en el siguiente enlace:
http://www.comunidadgm.org/preguntas-y-respuestas/como-creo-un-rpg-en-gmk/msg134155/#msg134155



12
Hola,

Cuando intento abrir el manual de ayuda de Game maker llamado Game_Maker.chm windows no reconoce ese tipo de archivo y me habre una ventana llamada "Abrir con" y me pide seleccionar un programa.

Quiero abrirlo al parecer le falta un archivo de mi windows XP

13
 Hola. Gracias por leer esta pregunta espero me puedas ayudar ;)

  Estoy creando una configuracion control y almaceno dicha configuracion como un string en la siguiente variable:

 teclasausar="11037038039000000000/21087067065000000000/"

 Presionando los botones Abrir y Guardar de la configuracion control se jecutan las siguientes funciones de la siguiente manera:

 teclasausar=get_open_filename(".txt","configuracion")
 get_save_filename(".txt","configuracion")

 Y no me funcionan

 Estos son mis problemas
  1_No sé que es un filtrer (filtro)
  2_No sé como asignarle el string del archivo
  3_No sé si tengo o no tengo que usar las siguientes variables
   file_text_read_string(fileid)  
   file_text_open_read(fname)
   file_text_write_string(fileid,str)
  4_no se cuales son mis otros problemas

 Ya puedes responder :)





14
Preguntas y respuestas / ¿como enviar un string al correo enectronico?
« en: Febrero 22, 2010, 09:58:38 pm »
Deseo enviar un string al correo electronico con alguna version del GM

15
Deseo mostrar "configuracion control" en el borde de la ventana, como en la siguiente imagen editada con paint



Coloco el nombre del caption En la caption of the room que se encuentra En la pestaña settings del editor de rooms. y Uso la función room_caption=true en el create event de un objeto y no da resultado.


Aqui puedes descarcar el example en el que estoy trabajando: http://www.2shared.com/file/11388188/8fb7f0d2/configuracion_control.html



Esto se debe a un ERROR en game maker 6.1

[Solución]:
1.Crear la room antes de crear cualquier objeto
2.En la caption of the room(dentro del room) coloque el nombre del caption
3.Crear un objeto y colocarle en el create event: room_caption=true

El no cumplir con este procedimiento paso a paso impide la visualización del caption o nombre de la ventana

Estos dos examples son exactamente iguales pero se ejecutan distinto debido aque la primera se edito siguiendo el procedimiento y la segunda no,pueden descargarlas aqui http://www.megaupload.com/?d=ZX9MWNMP


Páginas: 1 2