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

166
Muchas gracias Void. Pues voy a probarlo y te cuento.

;)

Cita de: Void en Noviembre 24, 2017, 12:30:49 AM
Hmmm... ok, vamos a hacer una pequeña prueba, voy a dejar acá el ejemplo de Yoyogames para grabar audio, modificado minimamente para hacerlo un poco más amigable con Android. Yo he probado el ejemplo en mi teléfono y funciona correctamente, prueba a ver si a ti te funciona.

Y dejo también la apk ya compilada, si el ejemplo no te funciona prueba con la apk, si la apk tampoco funciona entonces probablemente sea un problema de compatibilidad. Si la apk funciona pero el ejemplo no entonces debe ser un problema de configuración en el GM.
167
En las propiedades de la room hay un boton que pone instance orden o algo asi. Te sale la.lista de todos los objectos que hay en la room y puedes cambiar su orden. Ponlo el ultimo.

Cita de: Yuzo en Noviembre 24, 2017, 11:37:06 AM
Gracias 3DGeminis, mirando tu codigo no entiendo que es lo que me funciona mal.

Sí, Markus, esta tal que así:

[gml]// CREA LUZ SOBRE LAS BALAS
with(ob_player_bullet){
draw_set_blend_mode(bm_subtract)                // modo de dibujar "EXTRAER"
draw_sprite(spr_luz_1,0,ob_player_bullet.x,ob_player_bullet.y)// Lo coloca sobre las balas
}[/gml]

NONOROMAN, como se hace eso ?, suena interesante, aun que no se si lo resolverá.

Estoy dandole vueltas y vueltas y he pensado que tal vez se trate de que tengo un objeto en la room que tambien modifica una surface, tal vez sea que entra en conflico con este.

Tiene lo siguiente:

OBJETO LUCIERNAGA:

CREATE:
[gml]/// PROPIEDADES

escala_x        = 0;                // variable que controla la escala X (tamaño del sprite)
escala_y        = 0;                // variable que controla la escala Y (tamaño del sprite)
tamano_luz_x    = 0;                // variable que controla el tamaño de la luz en X
tamano_luz_y    = 0;                // variable que controla el tamaño de la luz en Y

// PROFUNDIDAD
depth = choose(-2,-1,0,1,2,3);

// DIRECCION
direction = irandom_range(0,360);[/gml]

STEP
[gml]
/// LUZ EN SURFACE

// CREA LA LUZ SOBRE LA LUCIERNAGA
surface_set_target(global.oscuridad)            // llama a la surface
draw_set_blend_mode(bm_subtract)                // modo de dibujar "EXTRAER"
draw_sprite_ext(spr_luz_1,0,x,y,tamano_luz_x,tamano_luz_y,0,1,1)  // dibuja el sprite de luz
draw_set_blend_mode(bm_normal)                  // deja el modo de dibujo en normal
surface_reset_target()                          // cierra la surface
[/gml]

DRAW
[gml]
/// PROPIEDADES

// DIBUJA EL SPRITE ORIGINAL
draw_sprite_ext(spr_luciernaga,0,x,y,escala_x,escala_y,0,c_white,1)

// LO HACE BORROSO
draw_set_blend_mode(bm_add)

// DIBUJA EL SPRITE DIFUMINADO
if global.pause == false and global.magia_on == false{
draw_sprite_ext(spr_luciernaga_des,0,x,y,escala_x,escala_y,0,c_white,alpha_level)}

// ESTABLECE EL MODO DE BLEND EN NORMAL
draw_set_blend_mode(bm_normal);
[/gml]
168
Gracias por responder, pero es que el caso es que marcar esa casilla fue lo primero que hice.

He leido por ahi que no se puede, no se si estaran equivocados o no.

Cita de: Void en Noviembre 23, 2017, 11:06:56 AM
Si, GMS 2 puede grabar audio en Android, y GMS 1 de hecho también puede pero el manual de GMS 1 no ha sido actualizado en algún tiempo así que no refleja esos cambios.

Empieza por ver que en Global Game Settings, en la pestaña de Android / Fire, en la subpestaña de Permissions tengas marcado RECORD_AUDIO.
169
No me jodas. Pues vaya mojon.

Y en game maker studio 2 tampoco se puede??


Cita de: Arcadian en Noviembre 23, 2017, 06:43:49 AM
No sé si tendrá algo que ver con esto, si no se puede grabar, igual tampoco están disponibles el resto de funciones:

170
Prueba poniendo el objecto que controla el draw de las luces en el ultimo orden de carga de la room.

Suerte!!!  ;)
171
Buenas a todos, pues otra vez ando por aqui.

Ahora con la siguiente cuestion.

Necesito grabar con el microfono y controlar el nivel de volumen de este. Lo tengo mas o menos hecho para windows, pero para android la room ni siquiera arranca y corta el juego.

Segun he estado invesigando el problema creo que anda por esta linea de codigo donde se comprueba cuantos dispositivos de grabacion hay en el dispositivo.

if (audio_get_recorder_count() == 0) {
    //There is no microphone or recording is not supported.
    exit;
}

Bueno, espero vuestra ayuda please.

Saludos y gracias de ante manos
172
Gracias Clamud. Pero ya lo he solucionado.

He usado un objecto controlador. Cuando la room end activo una variable y esta reinicia los create de los objectos afectados con event_create.

Y de momento parece que funciona correctamente.

Muchas gracias de todos modos.

Seguimos!!!!  ;D

Cita de: Clamud en Noviembre 10, 2017, 03:16:38 PM
En lugar de usar el evento Create puedes usar el evento Room Start. Si quieres volver a ejecutar el evento Create puedes usar la función event_perform.
173
Buenas, hace un par de dias, tenia una cuestion por resolver, me comentaron por aqui por la comunidad el tema de usar la persistencia en la room, y la verdad es que con esto, solucione, el problema.

Pero, debido a usar la persistencia, varias objectos han dejado de funcionar correctamente.

En concreto los objectos relacionada con la surfaces, que estoy utilizando para recrear el efecto oscuridad y el efecto de luces.

Y el caso es que no se el porque ocurre esto.

Segun las pruebas que he realizado, parece ser que, al volver a la room en modo persistencia, esta, no ejecuta el CREATE de los objectos, y por eso, tengo problemas con estos dos objectos.

O por lo menos, eso parece que ocurre. Si esto fuera asi, lo unico que necesitaria seria es REINICIAR ESTOS OBJECTOS de algun modo, o por lo menos su evento CREATE.

Si alguien sabe algo, por favor que comente please. Thank you de antemano.  ???



174
Preguntas y respuestas / Re:PROBLEMA DE PLANTEAMIENTO
Noviembre 07, 2017, 07:36:30 PM
Hostia, a cabo de resolver el problema que tenia que estaba en el FOR, que tenia que hacer un exit, al asignarle el id y solo era eso.

Ahora todo funciona, puedo poner cuantas cajas quiera, y realmente solo tengo un objecto caja.

Y acabo de ver el documento de la persistencia de la room y he flipado, no sabia que esta pestaña hacia esto.

El caso es que ya lo he resuelto, solo me queda hacerlos con la carreta. Ahora no se si usar mi metodo o el de la persistencia. Bueno ya os contare.

De momento me funciona y eso es lo importante.  ;D

Cita de: 3dgeminis en Noviembre 07, 2017, 07:11:56 PM
En las propiedades del room:

https://docs.yoyogames.com/source/dadiospice/002_reference/rooms/room_persistent.html
175
Preguntas y respuestas / Re:PROBLEMA DE PLANTEAMIENTO
Noviembre 07, 2017, 05:12:07 PM
He probado con un par de FOR pero me da un error.

Os paso el codigo.

Antes de cargar la roomNIVEL1 cargo estas variables;

[gml]if !(JUEGO_COMENZADO)
{
    for(i=1;i<=10;i++)
    {
       
        globalvar POSICION_X_ROOM1_CAJA;
        globalvar POSICION_Y_ROOM1_CAJA;
       
        if (i == 1)
        {
            POSICION_X_ROOM1_CAJA = 400;  //400
            POSICION_Y_ROOM1_CAJA = 200;
            POSICION_X_ROOM2_CAJA = 208;
            POSICION_Y_ROOM2_CAJA = 398;
        }
       
        if (i == 2)
        {
            POSICION_X_ROOM1_CAJA = 538;
            POSICION_Y_ROOM1_CAJA = 106;
            POSICION_X_ROOM2_CAJA = 518;
            POSICION_Y_ROOM2_CAJA = 640;
        }
    }

}[/gml]

Y despues en el CREATE DE LA BOX;

[gml]for(numero=1;numero<=10;numero++)
    {
        if (CAJA[numero]==0)
        {
            CAJA[numero]=id;
           
        }
    }

if (room == roomNIVEL1)   
{
    CAJA[numero].x = POSICION_X_ROOM1_CAJA[numero];
    CAJA[numero].y = POSICION_Y_ROOM1_CAJA[numero];
}

if (room == roomNIVEL2)   
{
    CAJA[numero].x = POSICION_X_ROOM2_CAJA[numero];
    CAJA[numero].y = POSICION_Y_ROOM2_CAJA[numero];
}[/gml]

Pero me sale este error

FATAL ERROR in
action number 1
of Create Event
for object objectBOX:

Push :: Execution Error - Variable Index [0,11] out of range [1,3] - -5.POSICION_X_ROOM1_CAJA(100093,11)
at gml_Object_objectBOX_CreateEvent_1 (line 23) -     CAJA[numero].x = POSICION_X_ROOM1_CAJA[numero];


Me pone que esta fuera de rango y no entiendo porque, ahora mismo se me escapa.
A ver si entre todos vemos donde esta el error, porque con este metodo, solo necesitaria un objecto caja para colocar varias cajas en todas las habitaciones, y memorizar independientemente una de las otras su posicion.


Solo me falta saber porque da error de fuera de rango al leer esa variable global.

Please!!!  A VER SI ALGUIEN DESCUBRE EL ERROR!!!!  :'(
176
Preguntas y respuestas / Re:PROBLEMA DE PLANTEAMIENTO
Noviembre 07, 2017, 05:01:03 PM
Que significa hacer las rooms persistentes?   :o


Cita de: 3dgeminis en Noviembre 07, 2017, 05:35:40 AM
No podrias hacer los rooms persistentes?
177
Preguntas y respuestas / Re:PROBLEMA DE PLANTEAMIENTO
Noviembre 06, 2017, 09:49:28 PM
Muchas gracias NiuWeb, pero nunca he usado mapas y listas.

Antes de intentar probar el planteamiento que me has comentado, deberia de entender como funcionan los mapas y listas de una manera mas basica.

Un ejemplo mas sencillo me vendria bien.

??? ???

Cita de: NiuWeb en Noviembre 06, 2017, 08:12:25 PM
Primero, imaginemos que el juego está organizado así:
La caja es sólo un objeto, y en cada sala habrán varias instancias de dicho objeto. Además, la cantidad de cajas es fija (no cambia durante el juego).

Tomando en cuenta lo anterior, usa mapas y listas, así:
[gml]
/*
En algún evento o bloque de código que se ejecute
antes de todas las salas donde habrán cajas.

Es decir, este código debería ejecutarse una sola vez
en todo el juego, al menos mientras se desee mantener
las posiciones de las cajas
*/

global.pos_cajas = ds_map_create(); //Un solo mapa de ámbito global
[/gml]
[gml]
/*
El evento create de algún objeto que se ejecute
UNA SOLA vez por cada sala donde estarán las cajas.

Este objeto debe estár después de todas las cajas en el
instance order de la habitación actual.

================
Otra opción es usar directamente el Creation Code de la
habitación, que se ejecuta después de todas las instancias
*/

//Si aún no ha sido almacenada la posición de las cajas en la habitación actual
if(!ds_exists(global.pos_cajas[? room], ds_type_list))
{
    global.pos_cajas[? room] = ds_list_create(); //En la habitación actual, crear una lista

    var pos; //Una variable temporal para almacenar la posición de cada instancia
    with(obj_caja) //Recorrer todas las instancias de obj_caja
    {
        pos[0] = x; //Almacenar la posición horizontal de la caja
        pos[1] = y; //Almacenar la posición vertical de la caja
        ds_list_add(global.pos_cajas[? room], pos); //Guardar la posición en la lista
    }
}
//Si ya hay posiciones almacenadas,
else
{
    var ind = 0; //índice de la lista por iteración de instancia
    var pos; //Una variable temporal para almacenar la posición de cada instancia

    with(obj_caja)
    {
        pos = ds_list_find_value(global.pos_cajas[? room], ind++); //Obtener posición guardada
        x = pos[0]; //Establecer posición horizontal
        y = pos[1]; //Establecer posición vertical
    }
}
[/gml]
Haría falta pulir varias cosas, y puede tener errores (no he probado el código), pero te hace una idea.
178
Preguntas y respuestas / PROBLEMA DE PLANTEAMIENTO
Noviembre 06, 2017, 07:13:52 PM
Buenas familia, otra vez ando por aqui. El problema que tengo ahora no es de codigo, sino de planteamiento.
Tengo un caso que no se muy bien como plantearlo de la forma mas eficaz y breve posible. Porque tengo una solucion, pero deberia de usar decenas de variables, y a ver si es posible que entre todos encontremos un planteamiento mas simple, breve y eficaz.

Es planteo el problema, voy a intentar explicarlo lo mejor posible;

El caso es que tengo 5 rooms, y en cada room voy a usar 4 carretas y 4 cajas, las tipicas que el player puede empujar y mover.
El caso, es que el player movera las cajas y carretas de un lugar a otro, tanto en el eje de la x como el de la y, y el player puede ir de una room a otra, y volver a las anteriores.

El problema esta, en que las cajas deben de aparecer en el mismo sitio donde las dejo, cuando se marcho de dicha room, y lo mismo con las demas room. Pero el tema principal esta, que aunque en cada room haya 4 cajas y 4 carretas, estas son siempre las mismas, es decir, que son las mismas cajas que estaban en la room anterior (aunque jugando al game no lo parezca claro).

Si utilizo variables globales para memorizar las posiciones de las cajas y carretas, estan apareceran en dicha posicion cuando cambie de room y esto no deberia de ocurrir, porque al cambiar de room, se supone que son otras cajas y carretas, y estas deberian de estar en la posicion donde el player las dejo cuando estuvo en esta room.

Jajajaja, es un poco lioso, pero he intentado explicarme lo mejor que he podido. Espero que me hayais entendido.

Creo que conozco una posicible solucion, pero deberia de usar muchar variables, seria algo asi como;

CAJA1_X_ROOM1;
CAJA1_Y_ROOM1;
CAJA1_X_ROOM2;
......................
......................
CAJA4_X_ROOM5;

tendria que usar muchisimas variables.

Entonces la cuestion es, como se podria hacer esto?? sin usar tantas variables y usando solo 4 cajas y 4 carretas para cada room??

Bueno, espero haberme explicado lo mejor posible, y a ver si entre todos podemos encontrar una buena solucion.

Saludos a todos!!!!!  ;)
179
Con Game Maker Studio 2 si que se puede, pero con la 1.4 no estoy seguro.  ;) Saludos.
180
La verdad es que habia probado con collision_circle

Y funcionaba, pero no iba muy fina, el movimiento era muy artificial.

Pero he probado la condicion que me ha indicado Clamud y el tio lo ha clavado.

Ahora si que funciona tal y como buscaba.

Muchas gracias a todos y sobre todo a clamud que lo ha clavado.

Seguimos trabajando  ;D Muchas Gracias!!!