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

1456
No estoy seguro, pero creo que es porque GM:S está configurado para exportar la APK con soporte para distintas arquitecturas (para que el juego corra en el mayor número de dispositivos posibles) y cada arquitectura elegida aumenta el tamaño de la apk.

http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/android%20tab.html
1457
Preguntas y respuestas / Re:Proteger savegames
Junio 28, 2014, 07:20:57 PM
Cita de: DarkKRuleR en Junio 28, 2014, 03:13:30 PM
Por ejemplo, crear y leer el archivo de guardado en una carpeta dentro de system32 o por ahí...

En GM8.x se podía guardar en cualquier lugar, pero ahora GM:S sólo permite un área de escritura, área que esta predefinida y no se puede cambiar.
http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html

Yo venía a dar una solución parecida a la que propuso Killer, aunque se me había olvidado que GM:S trae funciones para manejar hashes.

Se podría usar una ds_list o ds_map, por ejemplo, para guardar una "huella de tiempo", y esa misma huella de tiempo la guardas en tu archivo de guardado. Se supone que si el usuario hace una "copia de seguridad" del archivo de guardado, esa copia tendría una huella de tiempo anterior o "menor" a la huella de tiempo más reciente, que estaría en la ds_list/ds_map.

También podría guardarse el hash en lugar de la huella de tiempo, con el mismo propósito.
1458
Es muy sencillo: un sprite con dos subimágenes. Una subimagen (supongamos que la 0) muestra el botón, la otra subimagen (supongamos que la 1) está vacía (no contiene pixeles, por lo que es totalmente transparente).

para ocultar el botón
image_index = 1

para mostrarlo
image_index = 0
1459
Preguntas y respuestas / Re:¿Crear GIFs animados?
Junio 28, 2014, 08:39:41 AM
Aquí se explica "cómo está formado un gif" de manera técnica, que creo es lo que buscas

http://en.wikipedia.org/wiki/Graphics_Interchange_Format




1460
score es una variable predefinida en GM

No se deben crear variables nuevas con el mismo nombre que variables predefinidas. En este caso, estás usando una variable global.score.

Simplemente usa score y creo que debería resolverse
1461
también se puede
hspeed = clamp(hspeed, -vel_max, vel_max)
en STEP, creo que funcionaría para ambas direcciones
1462
Preguntas y respuestas / Re:¿Crear GIFs animados?
Junio 26, 2014, 11:26:08 PM
GM no es un creador de gif animados. Lo que pides no se puede hacer con GM. Es decir, GM no te va a dar la posibilidad de que haya un cuadro de diálogo "guardar como" y puedas elegir la extensión .gif. El único formato en el que puedes guardar "algo" que hiciste en el editor de imágenes de GM es PNG

Si quieres hacer gifs animados, necesitas un programa especial, como fireworks. El propio formato gif especifica la duración de cada fotograma, y obviamente que es un conjunto de imágenes.
1463
Preguntas y respuestas / Re:Sonidos entrecortados!
Junio 26, 2014, 09:27:57 PM
Yo usé uncompressed, y en lugar de una prioridad de 30 le puse 0, no sé si eso afecte.
1464
Preguntas y respuestas / Re:Sonidos entrecortados!
Junio 26, 2014, 09:17:20 PM
Me bajé el archivo, y en mis pruebas, tanto con MP3 como con WAV suena bien, sin lag ni nada extraño. ¿En qué evento estás usando audio_play_sound(musicaSonando, 30, true); ?

Otra pregunta, ¿por qué lo conviertes a WAV? En este caso no le veo ninguna ventaja a usar WAV, la calidad va a ser exactamente la misma que la del MP3, pero el tamaño aumenta 5 veces más, lo cual es demasiado.
1465
Lo que quieres entonces no es delimitar la habitación, es delimitar el movimiento del objeto. Esto se puede hacer de muchas formas, mediante la función clamp(), mediante las funciones como median(), mediante ifs. En el manual vienen ejemplos con clamp y median, con if sería

if (x > 0) and (x < room_width)
{
    //código para mover al personaje horizontalmente
}

Para dibujar algo "sin que se mueva" NO hay que usar X y Y como cordenadas porque esas son posiciones en la habitación, lo que hay que hacer es usar la posición x y y DE LA VISTA (VIEW) que uses para seguir al jugador. Consulta el manual para view_xview o view_yview y ahí de nuevo, encontrarás un ejemplo de cómo se usa, o aquí en el foro, esa pregunta está hecha innumerables veces
1466
Preguntas y respuestas / Re:Insertar video en Studio
Junio 26, 2014, 08:32:28 PM
NO. GM:S no tiene ninguna función para agregar/manejar video
1467
Lo que pides es sencillo, pero ahorita ando algo escaso de tiempo. En estos casos es útil usar un objeto controlador, este objeto (invisible y generalmente persistente) se encargaría de crear los objetos bonus.

Para posicionar los objetos bonus en un lugar vacío, hay que usar la función place_empty() o place_free(). Pero ojo, estas funciones se basan en la máscara de colisión, que a su ve está definida (generalmente) por el sprite del objeto. El objeto bonus no se puede crear a si mismo, esto es lógico, por lo que se usa el objeto controlador, pero el objeto controlador (en este caso) debe de tener asignado el mismo sprite que el objeto bonus, para que el objeto controlador pueda evaluar colisiones yencontrar (o no) un lugar vacío (pasillo)

Si el lugar está vacío, ahí se crearía un objeto bonus. El objeto bonus debe tener un evento de alarma (alarma iniciada en su evento CREATE) en el cual el objeto se destruye a los tantos segundos. No puedo especificar más que ando corto de tiempo. Saludos
1468
Preguntas y respuestas / Re:Mantener variable
Junio 26, 2014, 07:43:58 AM
Persistente se refiere a un objeto, no a una variable. Por ejemplo, en un juego RPG difícilmente querrías que en cada habitación tu jugador comenzara con la misma vida, el mismo nivel, experiencia, etc indicadas en el evento CREATE, sino que lo lógico sería que dichas variables se mantuvieran a lo largo del juego.

Es decir, si tengo un mago de nivel 15, quiero que al pasar a la siguiente habitación la variable nivel siga siendo 15 y no 1 (como está iniciada en CREATE). Pues eso se logra de dos maneras. La difícll: haciendo un sistema de guardado que guarde al fnalizar una habitación y cargue al iniciar la nueva. La manera sencilla: marcar al objeto jugador como persistente.

No están uds para saberlo ni yo para contarlo, pero hace aprox un año (meses más, meses menos) la afluencia era muchísimo menor que ahora, se hacían uno o dos posts por día.
1469
Preguntas y respuestas / Re:Crear criticos
Junio 26, 2014, 04:14:29 AM
http://www.comunidadgm.org/preguntas-y-respuestas/sistema-de-ataque/msg99354/#msg99354

Sólo que la fórmula de daño sería algo como

dmg = atk + atk*crítico

1470
Preguntas y respuestas / Re:hacer score //
Junio 26, 2014, 03:46:36 AM
Cita de: trapitoloko en Junio 26, 2014, 02:48:54 AM
una ayuda porfavor.

Colega, la ayuda uno mismo la puede encontrar. ¿Por qué no darse un tiempo para aprender primero el ABC del GM? (Recursos sobran). Resulta que conseguiste un código que suma +1 a una variable y guarda el resultado en un INI, pero no tienes idea de cómo hacer que en vez de sumar reste y guarde. que prácticamente es lo mismo que hace el código que ya tienes. Pero para que no digas que soy un ogro maleducado (que sí lo soy  XD) te diré que:

Si quieres que una variable (score o la que sea) comience en un valor, esa variable se tiene que inicializar (asignarle un valor inicial), eso se hace en el evento CREATE de algún objeto:
score = 500

Si esa variable quieres que pierda 1 cuando se haga click en un objeto, en ese objeto se elige un evento mouse left PRESSED y ahí se pone la cantidad a restar
if (score > 0) { score -= 1 }

En el mismo evento mouse left PRESSED se puede guardar el score en el ini
ini_open("mi_ini")
ini_write_real("Game", "Score", score)
ini_close()

El codigo anterior no va a funcionar directamente, tienes que adaptarlo al nombre de tu ini y el nombre de la sección y clave correspondiente

Todo lo anterior hace que el score se guarde en el INI, pero no que el juego lea el INI al comienzo. Para eso puedes usar un evento como el Game Start y ahí leer el score que quedó guardado en el INI mediante ini_open() ~ ini_read_real() ~ ini_close()