Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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

Páginas: 1 2 3 ... 10
1
General / Como y a que Edad Conocieron GameMaker
« en: Julio 05, 2020, 08:53:21 pm »
Hola Makeros, Como muchos yo he conocido GameMaker para hacer mi propios videojuegos, bueno no lo he logrado todavia pero aun me acuerdo mi primera vez y recuerdo la motivacion que tenia en ese momento

Como olvidarlo, tenia 15 años y estaba viendo fangames de Sonic en Youtube, mientras buscaba otro video, aparecio un video curioso de "Como crear un Juego de Sonic en GameMaker", y como en la descripcion decia que no se requeria programar

Bueno en retrospectiva fue una completa mentira y ese fangame nunca se termino pero no lo deje botado, segui por 3 meses viendo Tutoriales de Adderly Cespedes hasta que finalmente me di cuenta que si queria hacer algo bueno pues tenia que programar  :-X

2 años despues y aqui estoy con un mayor conocimiento en la programacion pero sin haber logrado nada xD

Bueno llevo desde los 6 años interesado, asi que menos pienso dejarlo botado, en fin no voy a dar mas recuento pues si no, terminare acaparando este Tema  :-[

2
Preguntas y respuestas / Re:Duda sobre DS_Map
« en: Julio 05, 2020, 05:35:04 pm »
Yo hace menos de 3 semanas que acabo de empezar a usar Estructuras de Datos y lo que mas me llamo la atencion fueron los Ds_maps

Si conoces los ficheros .ini, supongo ya te podrias hacer una idea mas clara, los mapas son como los inis, primero creas el mapa usando
mapa = ds_map_create()
Luego le das un valor en la llave que quieras guardarlo, que puede ser numerica o de cadena, sugiero empieces usando llaves de cadena para adaptarte
ds_map_add(mapa, "monedas", 100)
El valor en una seccion del mapa puede ser tanto una string como un valor real, incluso puedes usar una variable y almacenar ese valor en las distintas secciones de un mapa, un ejemplo seria
ds_map_add(mapa, "puntos", score);
Usar la misma variable de score funciona, puede que no lo captes al principio pero con un mapa puedes almacenar distintos valores en una misma variable(mapa) usando las llaves como los espacios en los que quieres almacenar los valores

Existen muchas funciones utiles para manejar y trabajar con los mapas, algunas de ellas pueden ser realmente utiles, por ejemplo
/// Funciones para el manejo de los mapas
ds_map_replace(mapa, "puntos", score/2) // Esta Remplaza el valor de una seccion, pues con la otra funcion solo añades y puede que no quieras sumarle en concreto
ds_map_find_value(mapa, "pociones") // Esta funcion te ayuda para saber el valor de una seccion(llave) en el mapa
ds_map_delete(mapa, "valores") // Esta funcion es para borrar la llave y su valor del mapa, por si quieres liberar algo de espacio
ds_map_clear(mapa) // Esta en vez de borrar una seccion, solo vacia el mapa entero sin borrarlo
ds_map_destroy(mapa) // Esta si borra el mapa completo, por si no quieres que el mapa perdure al destruir el objeto

Una mejor explicacion te la puede dar esta pagina:
https://www.aprendegamemaker.com/mapas/

3
Listo logre solucionarlo, bueno con algunas mejoras al script
/// Event Create
var i, b, sprite;
b = 0;
sprite = sprite_create_from_screen(0,0,1,1,0,0,0,0)
sprite_delete(sprite)
for(i=0; i<sprite; i+=1) {
  if sprite_exists(i)
  {
    sprite_save_strip(i, "sprite"+string(b)+".png");
    b += 1;
  }
}
Pero por alguna extraña razon no me guardaba los sprites cuando le ponia sprite_get_name(), asi que lo hice nada mas con el id de los sprites, alguien me puede explicar porque cuando lo hago manualmente usando el nombre si lo guarda pero cuando lo hago recorriendo con un for no lo guarda ???

Bueno de todas formas ya lo solucione y de paso aprendi mas sobre los id que tiene cada recurso en GM, cosa curiosa es que puedo usar draw_text(x, y-15, spr_ball_yellow) para saber el id y no solo con sprites, tambien con otros recursos

En fin estoy muy intrigado XD

4
Saludos Makeros, estaba viendo un viejo proyecto hecho en GMS 1.2 y me preguntaba como podia exportar los sprites pues por alguna extraña razon no me aparecia la opcion de save sprites que tengo en GM8, se me ocurrio la idea de exportarlas por medio de codigo

Estuve investigando algunas funciones para el manejo de los sprites y creo que lo hice de muy mala forma o es que use las funciones equivocadas
var sprite, i;
i = 0;
sprite = sprite_get_name(i);
while(sprite_exists(sprite)) {
   sprite_save_strip(sprite, "sprite"+string(i)+".png")
   i += 1;
   sprite = sprite_get_name(i);
}
Pues al principio funciona pero por alguna extraña razon solo me guarda el primer sprite que tengo en el proyecto, los demas no se guardan y termina guardando una y otra vez el mismo sprite

Alguna sugerencia  :-[

5
La verdad que si lo habia considerado y tambien hay que poner eso en el instance_create para hacerlo aleatorio, igual gracias por la sugerencia

6
Problema resuelto, acabo de encontrar una buena forma de usar posiciones aleatorias
/// Event Create
var px, py;
px = 0;
py = 0;
// Almacenar posiciones x
repeat(room_width/32) //Se repetira segun las casillas horizontales del room
{
  xpos[px] = px*32;
  if (px != room_width/32) px += 1;
}
// Almacenar posiciones y
repeat(room_height/32) //Se repetira segun las casillas verticales del room
{
  ypos[py] = py*32;
  if (py != room_height/32) py += 1;
}
Y para cuando vaya a crear una instancia aleatoria, lo hago con una alarma
/// Alarma 0
var rx, ry;
rx = irandom(room_width/32);
ry = irandom(room_height/32);
bonus = instance_create(xpos[rx], ypos[ry], obj_bonus)

// Ajustar bonus a una posicion libre
with(bonus) {
  while(!place_empty(x, y))
  {
    x = other.xpos[irandom(room_width/32)]
    y = other.ypos[irandom(room_height/32)]
  }
}

7
Lo tipico es usar
while(!place_empty(x, y))
{
  x = irandom(room_width);
  y = irandom(room_height);
}
Pero eso solo me dara una posicion en cualquier lugar libre y lo que yo necesito es una posicion de 32×32 pixeles, cuando dijiste que lo hiciera buscando un espacio entre 1 y 32, como sugeririas que lo hiciera y de que forma deberia usar esos valores almacenados  ???

La verdad tenia la idea de crear objetos de grilla y almacenar sus puntos de anclajes en una lista pero eso tardaria, en especial la parte de añadir los objetos en cada parte de las rooms

8
Saludos Makeros, estaba modificando un antiguo proyecto Maze, y me preguntaba como podia crear un objeto en una posicion libre

Mi personaje y los enemigos se mueven verficando una posicion libre de 32×32 en la grilla, se gestionar los movimientos en la grilla y crear objetos aleatorios pero lo que nose es como crear aleatoriamente algo en la grilla

Necesito que mi objeto verifique todos los espacios de 32×32 en la grilla y ver si esta libre de otro objeto solido o si tampoco hay un personaje inteligente en ella (incluyendo a mi personaje), y que de paso la cree en cualquier grilla

Casi nunca he trabajado con grillas, a veces solo las uso para movimientos y lo demas me encargo manualmente  :-[

9
Preguntas y respuestas / Re:failed to replace the icon
« en: Junio 29, 2020, 02:35:13 am »
Solo usa un editor de imagenes y exportalo a .ico o simplemente usa un comvertidor en linea

10
Preguntas y respuestas / Re:failed to replace the icon
« en: Junio 28, 2020, 11:40:35 pm »
Loading

11
Preguntas y respuestas / Re:failed to replace the icon
« en: Junio 28, 2020, 08:33:20 pm »
Para cambiar de icono tienes que irte a la opcion de "Global Game Setting" en el apartado de Load, bueno asi se hace en la version 8 de GameMaker, no se como se hara en GMS

Sugiero uses iconos de proporciones iguales, ejemplo: 16×16, 24×24, 32×32, 48×48

Te recomendaria usar iconos de menos de 48×48 para que no se vea borroso en el ejecutable  ;)

12
Preguntas y respuestas / Re:Acciones en el el boton
« en: Junio 28, 2020, 01:38:50 am »
Saludos OmarMakero, voy a intentar darte una soluccion pero si no funciona te sugeriria que cambies un poco tu codigo

Intenta usar lo siguiente en tu codigo al presionar la tecla enter
if (keyboard_check_pressed(vk_enter) && presion) {
   // Intenta gestionarlo con un switch
   switch(boton)
   {
     case 0:
     if (global.lamis == 1) {
       global.Jugador = global.nom;
       global.mision = global.lamis;
       global.capa = global.cap;
       global.vidas = global.vid;
       global.vidas_maxima = global.vm;
       global.espada = global.esp;
       global.elementos = global.elm;
     }
     boton = 0; break;
     case 1:
     boton = 1; break;
     case 2:
     boton = 2; break;
   }
   presion = false;
}
Bueno espero te sirva, aunque me hubiera servido un poco mas saber como funciona ese codigo y una explicacion mas detallada de tu error

13
Bueno mi duda ya esta resuelta, gracias por la aclaracion

14
Ahhh para eso era el room_exists en el while pero que eso no solo te devuelve si existe la room actual, entonces deberia usar algo asi como
Código: [Seleccionar]
if (room_exists(room_next(i)))
   i = room_next(i)

15
No domino muy bien los ds_map pero si puedo reutilizar el codigo
/// Event Create
var i, f;
i = room_first;
f = 0;
while(room_exists(i)) {
   Levels[f] = room_get_name(i);
   f += 1;
   i = room_next(i);
}
room_goto(Levels[1]);
Eso funcionaria bien creo pero no habra un conflicto al acabarse las rooms, digo si "i" almacena la ultima room, entonces esta ya no tendra room que almacenar pues la siguiente room a la actual no existe pues ya se acabaron, eso me ha confundido  ???

Páginas: 1 2 3 ... 10