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

1336
Es difícil saturar la memoria haciendo un ini "grandote". Por ejemplo, un ini con 100 claves, probablemente ocupe en memoria menos o aprox. el mismo espacio que un sprite pequeño. Yo no he usado inis grandes, pero en la GMC he visto hilos en donde se hacían pruebas con inis para comparar el rendimiento entre inis y archivos de texto o el rendimiento entre el sistema nativo de GM vs dlls para manejar inis, y ahí manejaban inis con miles de claves y no había problemas.

No sé por que motivo puedes guardar la última habitación y no puedas guardar la posición del jugador. Al final guardar un número (real) siempre se hace igual, sea la coordenada del personaje, o el índice de una room, etc.

1338
Preguntas y respuestas / Re:Problema Con SDK Android
Agosto 03, 2014, 03:56:06 AM
YoYo recomienda NO USAR el ADT Bundle for Windows. En su lugar deberías usar el SDK Installer que viene más abajo en la página de Android SDK

http://help.yoyogames.com/entries/23363366-Preparing-GameMaker-Studio-for-Android
1339
Cita de: ivn_eze en Agosto 03, 2014, 02:45:09 AM
Se puede usar hasta en 3 pc, lo malo que si lo compartes y se te jode la pc, te vas a quedar sin la licencia.

Me parece que no es así. El límite son tres instalaciones A LA VEZ. Si un equipo deja de funcionar, o símplemente queda en desuso, la licencia se puede usar en otro equipo "de reemplazo". ¿Cómo? Porque parece que YoYo analiza el uso que se hace de las licencias y ellos saben si estás usando o has dejado de usar una de las instalaciones.

http://gmc.yoyogames.com/index.php?showtopic=544594
1340
sprite_xoffset
sprite_yoffset
sprite_width
sprite_height
1341
Más bien es al revés. Es bastante posible detectar con qué versión y licencia está hecho un juego si el creador del IDE así lo quiere. Lo que es más difícil es ponerse a revisar juego tras juego para saber en qué IDE fue desarrollado
1342
Entre mis funciones favoritas están las de colisión. Para detectar una colisión a la izquierda del jugador, suponiendo que el origen del sprite está centrado y el sprite tiene dimensiones de 32x32 pixeles y suponiendo que se quiere que el jugador detecte colisiones sólo contra instancias enemigas:

[STEP] del jugador
colision_izquierda = collision_rectangle(x-20, y -16, x-16, y + 16, obj_enemigo, true, true)  //llamar a la función para revisar colisiones
if (colision_izquierda > 1000)
{
    //eventos que ocurren cuando hay colisión
}

El código anterior crea un rectángulo de colisión de 4 pixeles de ancho por 32 de alto a la izquierda del sprite del jugador. Es sólo un ejemplo, probablemente 4 pixeles de ancho sea una zona muy delgada para por ejemplo, detectar una bala, pero eso depende del juego. collision_rectangle permite especificar las dimensiones de la zona de colisión, haciéndola muy útil por ejemplo para juegos donde el daño varía según la zona donde ocurra un impacto
1343
¿Agregaste el ini a la lista de Included FIles del proyecto?

La escritura (guardado) debería ir en [Room start] o [game end], eso depende de lo que quieras, pero...

Para guardar sería algo como
[gml]ini_open("mazmorra.ini");
if (room != room_start) { ini_write_real("mazmorra","room",room); }    //Guardar la habitación siempre y cuando no se esté en la habitación del menu
ini_write_real("mazmorra","vida",vida);[/gml]

La posición del jugador está dada por dos variables, x e y, pero tú estás usando sólo una variable, no entiendo por qué motivo. Ten en cuenta que para guardar la posición del jugador no es aconsejable usar el eveto room start porque la posición no estaría actualizada, se guardaría la posición en la que comienza el jugador en la habitación, no la posición en la que termina el jugador cuando acaba el juego. Aquí tienes que decidir si usar el evento STEP o el evento GAME END para guardar la posición del jugador
[gml]ini_write_real("mazmorra","player_x", x);
ini_write_real("mazmorra","player_y", y);
ini_write_real("mazmorra","door1",closed);
ini_write_real("mazmorra","door2",closed);
ini_close();[/gml]

Cita de: LowHertzs en Agosto 01, 2014, 09:41:02 PM
El problema es, que no sé como hacer tampoco que si no hay una partida guardada (por ejemplo) automáticamente vaya a la room1.

El ini original debería tener algo como
[mazmorra]
room = 0

Y luego , al cargar el ini en [GAME START] o en el botón de cargar:
[gml]ini_open("mazmorra.ini");
var room_load = ini_read_real("mazmorra","room",0)
if (room_load == 0)
      room_goto(primera_habitacion_jugable)
else
      room_goto(room_load)
[/gml]   

y después en ROOM START cargar(leer) las demás variables.
1344
¿En qué eventos usas tanto la escritura como la lectura del ini?
¿Qué quieres hacer con esta instrucción?
if
ini_read_real("mazmorra","room",0) = 0
{
ini_close();
exit;
}
1345
¿Por qué usar la 39dll en GM:S cuando GM:S tiene sus propias funciones de networking y buffers?

Cita de: TheGreenTie en Agosto 01, 2014, 04:38:24 AM
Traté de instalar la extensión de 39dll en Game Maker: Studio pero es un archivo .dll y sólo me acepta instalar archivos .gex
¿Alguna idea de lo que pueda estar pasando?  :(

Pues una dll no es un paquete de extensión GEX. Para poder usar la dll, ésta se debe agregar mediante Included Files y luego cargar los scripts de la dll en GM:S. Yo preferiría usar las nuevas funciones nativas de GM:S a la 39dll que es viejísima, Black_Cat acaba de hacer un tutorial sobre cómo se hace.
http://www.comunidadgm.org/articulos/haciendo-un-juego-online-(tcp)-con-game-maker-studio
1347
Una manera es (En el evento [Animation End]):
if sprite_index == spr_no_ciclar
     image_speed = 0


Otra manera es (en [STEP]):
if (sprite_index == spr_no_ciclar) and (image_index >= image_number - 1)
     image_speed = 0



1348
Si ese evento DRAW corresonde al objeto que deseas dibujar, la instrucción se escribe tal como te lo indicó Maximo. Esto es porque sprite_index e image_index son variables de la propia instancia.

En lugar de draw_sprite(sprite_index,image_index,x,y) también se puede usar draw_self(). Ambas funcionan siempre y cuando sea el evento DRAW del propio objeto
1349
Preguntas y respuestas / Re:ayuda con bucle
Julio 31, 2014, 05:27:41 AM
Aumentar/disminuir 0.1 por step es demasiado. Si la velocidad de la habitación es 30fps, el alfa del fondo pasaría de 1 a 0 en apenas 1/3 de segundo. Suponiendo que se trata del fondo 0

[CREATE]
d_alfa = -0.02
background_alpha[0] = 1

[STEP]
if (background_alpha[0] >= 1)
    d_alfa = -0.02

if (background_alpha[0] <= 0)
    d_alfa = 0.02

background_alpha[0] += d_alfa

No lo he probado, pero así o con ligeras modificaciones debería funcionar.
1350
Preguntas y respuestas / Re:Actualización y sonido.
Julio 30, 2014, 03:04:16 AM
audio_play_music() se debe reemplazar por audio_play_sound(m,0, true)
audio_music_is_playing se debe reemplazar por audio_is_playing(sonido)

Si estás usardo mp3 como archivos de sonido, no tiene caso usar la opción "compressed" en las propiedades de cada sonido.

http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/index.html