Mostrar Mensajes

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.

Mensajes - dixon2010

16
Preguntas y respuestas / Re:Necesito su ayuda!!
Noviembre 14, 2018, 02:06:26 PM
Hola gusto en saludarle,

Si las vidas son igual a cero entonces las monedas deben ser  cero.
coloca algo así en el evento STEP
if(vida=0)monedas=0;
17
Preguntas y respuestas / Re:Ejecutar UNA sola vez
Noviembre 13, 2018, 03:31:58 PM
Hola a todos me encantaron sus respuestas son maravillosas.

El salto en plataformas presenta muchos obstáculos.

1. Al caer no debe trabarse en el suelo
2. Al saltar no debe trabarse con el techo. (esto es muy importante)
3. Al saltar debe tocar el techo y al caer debe tocar el suelo. Según la precisión que se requiera. (habeces se requiere que la distancia con el techo se disminuya a cero). Esto es precisión.
4.Si el player tiene un bloque en la cabeza o está entrando en un lugar muy pequeño, no debe saltar.
5. Al estar en el aire no debe volver a saltar según el caso, a menos que quieras hacer un double jum tipo castlevania circle of moon


El código para saltar , caer bien y no trabarse en el techo es este:
[EVENT CREATE]:
b2=0; s=0;
[EVENTO STEP] Y/O [DRAW] según el caso.
////version 1 movimiento vertical con gravedad y salto
//requiere en el [EVENT CREATE]: b2=0; s=0;
//movimiento vertical con salto.
b2p=(b2=0)*keyboard_check(38)
b2=keyboard_check(38)
if(b2p*(s=0)*place_meeting(x,y+10,object1))s=20
if(s)s-=1+place_meeting(x,y-1,object1)*2
if(s<0)s=0
vs=10-s
while(place_meeting(x,y+vs,object1))vs-=1*sign(vs)
y+=vs


compatibilidad:
modo de uso:
en vs=10-s cambias el numero 10 por la gravedad que se requiera.
en if(b2p*(s=0)*place_meeting(x,y+10,object1))s=20 cambias s=20 por el valor que le quieras dar al salto

Ahora, pues existe otra dificultad. Supongamos que quieres crear una plataforma con colinas e inclinaciones como mario bros 3:


Pues vas a necesitar otro código si quieres que las coliciones sean precisas, para esto se requiere una combinación de codigos donde según el estado del jugador se decide que código usar.
18
General / Re:¿Esta llegando la hora de cambiar de motor?
Noviembre 13, 2018, 02:59:52 PM
Cita de: kostra en Noviembre 12, 2018, 07:09:27 PM
Gm8 es muy muy incomodo, no deja abrir varias ventanas de codigo y has de cerrar todo cada vez que vas a darle al play, eso para mi es perder mucho tiempo de mi vida xd


kostra, la velocidad de testeo del gm8 es más poderosa que game maker studio 1 y 2..pues gm8 y versiones anteriores incluyen el execute_file(file) con lo cual puedes programar inclusive jugando el juego (programar jugando el juego, programar estando en acción, estando ejecutando) cosa que game maker studio 1 y 2 no existe pues decidieron llamarlo obsoleto, cuando la verdad es que con esta función se puede construir un game maker mediante el game maker y yoyo se dió cuenta de eso y dijo.. no no no llamemosla obsoleto para que se lo crean, no vallan a contruir un game maker gratuito.
19
Hola, gusto en saludarle.

Solo he visto imagenes como esa en errores de videojuegos de consola nes. Si ami me llega a suceder eso entonces pediría ayuda a otra persona para que compile mi juego para intentar descartar problema del compilador (mi game maker). Para poder resolver este problema debes responder estas preguntas:

1.¿que versión de game maker usas?
2.¿te funciona el juego al compilarlo para otro sistema? (windows, mac, html5, etc...) resuesta: si
3.¿el problema es para todos los juegos que exportas para android?
4.¿lo ejecutas desde movil o emulador android?.
5.¿has intentado ejecutarlo desde otro dispositivo? (otro movil).
6.si otra persona lo ha compilado desde otra pc, ¿persiste el problema?.

Evita extenderte usando muchas palabras para que no se fatiguen a leer. Sé concreto y modifica el mensaje principal. Si te funciona en otros sistemas coloca una imágen, no adjuntes imagenes, usa ImgBB https://es.imgbb.com/, los usuarios no registrados no pueden ver la imagen y son muchos los visitantes. Solo sube la imagen y copia el BBCode y pegalo al editar un mensaje y aparecerá la imagen. En la pagina veras algo como esto, recuerda seleccionar BBCode:


Te recomiendo intentar compilar el siguiente juego para android, está programado con precisión para ser exportado sin errores a muchas plataformas y usando cualquier game maker. En el siguiente link se explica como, es facil.

http://www.comunidadgm.org/juegos-completos/la-carreta-precisa/

Cita de: TruperMax en Noviembre 13, 2018, 02:39:40 AM
Pues en otros dispositivos igual no me funciona, ya en windows, HTML5, etc si me funciona solo es en android y no se por que lool

no has respondido todas las preguntas,
20
Juegos completos / Re:Lab 23 [Windows] Me gustó
Noviembre 09, 2018, 07:11:11 PM
Hola, un placer comunicarme con usted.

Desde mi punto de vista la idea de jugar con el mouse es interesate.
Encontré estos problemas donde el jugador se queda pegado a las paredes.



21
Desarrollo de Scripts / orden_alfabetico(str,index)
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:

[gml]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=1
for(i2=1;i2<=palabra_numero;i2+=1)
  {
  ord1=ord(palabra_letra)
  ord2=ord(palabra_letra[i2])
  id1=palabra_id
  id2=palabra_id[i2]
  if(i!=i2 && ord1 > ord2){palabra_pos+=1}
  if(i!=i2 && ord1 = ord2)
   {
   if(palabra=palabra[i2])   
    {
    if(id1>id2){palabra_pos+=1}
    }
    else
    {
    if(string_length(palabra)>1 && string_length(palabra[i2])>1)
     {
     superior=0
     i3=1
     repetir=1
     for(i3=1;repetir;i3+=1)
      {
      repetir=0
      letra=string_copy(palabra,i3+1,1)
      letra2=string_copy(palabra[i2],i3+1,1)
      if(string_length(palabra)>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+=1}
     }
     else
     {
     if(string_length(palabra)!=string_length(palabra[i2]))
      {
      if(string_length(palabra)>string_length(palabra[i2])){palabra_pos+=1;}
      }
      else
      {
      if(id1>id2){palabra_pos+=1;palabra_cod="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=palabra[i2]
}

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

//devolviendo valor

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

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"

22
Desarrollo de Scripts / scripts PACK
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.

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

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

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

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

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

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

//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
23
Intenta con este y avísame su funcionamiento.
donde object1 es el suelo y/o la pared

[EVENT CREATE]

s=0;


[EVENT STEP]

b2=keyboard_check(38)
if(b2*(s=0)*place_meeting(x,y+10,object1))s=20
if(s)s-=1
vs=10-s
while(place_meeting(x,y+vs,object1))vs-=1*sign(vs)
y+=vs


24
General / Re:¿Esta llegando la hora de cambiar de motor?
Noviembre 07, 2018, 07:42:07 PM
Hola gusto en saludarles.


Mark Overmars, diseñó un lenguaje muy poderoso.

Al final se encuentra un enlace a un código fuente de un juego desarrollado con game maker versión 4.0 (julio 16, 2001) que puede ser exportado a android oreo 2018 sin ningún error.

http://www.comunidadgm.org/juegos-completos/la-carreta-precisa/
25
Propuestas y soporte / Re:Propuesta mas que pregunta!
Noviembre 06, 2018, 07:32:07 PM
Yo estaba pensando en algo como dice kostra,

El dinero motiva a crear grupos, pero sin dinero ¿qué motiva?.  Solo nos queda crear un juego motivador que atraiga a todos los miembros de esta comunidad.

Eclesiastés 10:19 El pan es para la risa de los trabajadores, y el vino mismo regocija la vida; pero el dinero es lo que tiene buena acogida en todo.
26
General / Fenris78 ¿como está?
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
https://www.youtube.com/watch?v=sc2VlGqL5Bo

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.


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.
27
Juegos en desarrollo / Re:Inderezar el camino
Noviembre 02, 2018, 04:39:26 PM
Hola ;)

Goganpis me recordastes a Rabbit's Quest [Metroidvania] (TRAILER OFICIAL) que por cierto tiene un buen trailer, creo que el trailer es suficiente diversión.

Es posible crear juegos muy divertidos como Rabbit´s y educativos al mismo tiempo. Que enseñen a los jugadores los conocimientos necesarios para enfrentar su vida diaria. Por ejemplo unos conejitos que intentan hacer un curso de asistente administrativo, secretariado computarizado, mecánica automotriz, reparación de artefactos eléctricos y/o análisis de señales y para pasarlo necesitan ver unas clases y presentar unos examenes.



Esa es la misión del juego inderezar el camino es la unión de la diversión con la sabiduría de aplicación práctica.

Propuesta más que pregunta.
http://www.comunidadgm.org/propuestas-y-soporte/propuesta-mas-que-pregunta!/
28
Juegos en desarrollo / Inderezar el camino
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.









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

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
}




29
Hola, gusto en saludarles.

La sabiruria es la cosa principal adquiere sabiduría y con todo lo demás adquiere conocimiento.

La internet debes olvidar, las distracciones evitarás, motor de videojuegos debes encontrar libre y gratuito, un lenguaje de programación decidirás aprender, estudiar informática en la universidad te ayudará, amar a las matematicas deberás. Pedir ayuda a Dios y te dará.

El siguiente video explica la pasión por las matemáticas
https://www.youtube.com/watch?v=RUS_W1Y5cos
30
Propuestas y soporte / Re:Propuesta mas que pregunta!
Noviembre 01, 2018, 04:00:11 PM
Admito que mi comentario no fue adecuado, me he equivocado de nuevo usando palabras sin pensar, pido disculpas a usted y a todos los que ofendí. Gracias por las correcciones.

He leído su publicación con dificultad pues el tema se desvía mucho (Proverbios 22:15), me gustó su propuesta de crear un grupo de desarrollo de video juegos, es cierto que una persona sola no puede hacer mucho pues en la unión está la fuerza (Proverbios 11:14). Me agradó cuando mencionaste la importancia de la sabiduría (Proverbios 4:7), también me pareció interesante el tema de los vicios a los video juegos, lamentablemente  la mayoría de los video juegos no aportan sabiduría práctica,  solo se ofrecen temas irreales que no son de provecho en la vida real. (1 Samuel 12:21). Con respecto a lo mencionado sobre el dinero, sería muy bueno obtener ganancias económicas suficientes para enfrentar tranquilamente nuestra situación en Venezuela, pero mucho dinero pudiese ser perjudicial (1 Timoteo 6:10). Es motivador y emocionante programar con la meta de ayudar a las personas.