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

61
Cita de: kostra en Abril 04, 2015, 11:37:19 PM
arcangel, creo ke lo ke dices, va al revés, empezando en alpha 0 hasta 1 jaja, lo que vendría siendo transition_kind = 21;

vitail, en las extensiones que vienen por defecto en gm8 pero sin instalar, hay una de transiciones nuevas, míratelas si te aburren las que ya vienen de siempre ;)

Cómo sería al revez? Para ir oscureciendolo?
Probé un par de formas y la más razonable sería esta:
image_alpha +=0.05
if image_alpha =1
instance_destroy();


Pero me queda la pantalla negra de una... no de a poco.
62
Hola. Trate de resolverlo mediante diferentes códigos y pasando horas probando diferentes maneras pero no pude... entonces vengo aqui  como siempre.

Estoy haciendo un juego en el cual tiene varios niveles (es de buscar objetos, controlados por un global.level), y todos estan desbloqueados. En el room del nivel tiene para pasar de nivel al que sigue, o ir un nivel para atrás. Lo que quiero que haga al cambiar de nivel es que vaya a la próxima más cercana y que el nivel no se haya completado (no se hayan encontrado los 5 objetos). Para eso uso lo siguiente:

objeto_flecha_siguiente
evento left released:

alarm[0]= 1


alarm[0]

global.level = global.level+1
if global.level = 21 global.level = 1 // por si se pasa del nivel 20
alarm[1] = 1


alarm[1]

if global.grid[# global.level-1, 5 ] = 5 // <-- Esto son los objetos, si hay 5 encontrados el nivel esta completo.
{
alarm[0] = 1
}
else
{
room_restart(); // <-- Room restart porque todos los niveles son en el mismo room. Los controla el global.level
}


Si tengo el nivel 2 completo y estoy en el 1, al tocar la flecha voy al 3, anda bien. El problema es que pasa un máximo de 6 niveles, y despues como que no andan más las alarmas o no se que pasa... Por ejemplo si tengo del nivel 2 al 10 completados y estoy en el 1, al tocar la flecha me va al 6 (en el cual obviamente entra y te dice ¡Ganaste!)

Alguien sabe por qué pasa esto? O cual sería otra solución?
63
Preguntas y respuestas / Intersticial al cerrar
Mayo 25, 2015, 06:08:27 PM
Hola. Actualmente para mostrar un insterticial al cerrar el juego lo que hago es lo siguiente:

con la tecla "backspace" en el menu.

alarm[0] = 0.3*room_speed
GoogleMobileAds_ShowInterstitial()


y en alarm[0]

endgame();


Pero el problema es que muchas veces cuando se esta abriendo el intersticial, se cierra todo. Es depende de como lo cargue cada celular... si es medio lento cuando abre el intersticial se cierra.
Hay alguna otra forma? Capaz algun chequeo de cuando el usuario cierra el intersticial o algo...
65
Hola. Tengo un código para mover la view con el dedo en android. La pregunta mía es: ¿Se puede hacer con mayor velocidad? Para no tener que arrastrar tanto el dedo en el celular, por ejemplo que vaya a velocidad x2.

Trate modificando cada parte del código pero no me sale.

El código es el siguiente (lo saque de este foro):
/// Single-event handling of effect
// start:
if (mouse_check_button_pressed(mb_left)) {
    drag_x = mouse_x
    drag_y = mouse_y
}
if (mouse_check_button(mb_left)) {
    // actual dragging logic:
    view_xview = drag_x - (mouse_x - view_xview)
    view_yview = drag_y - (mouse_y - view_yview)
    // make sure view doesn't go outside the room:
    view_xview = max(0, min(view_xview, room_width - view_wview))
    view_yview = max(0, min(view_yview, room_height - view_hview))
}
66
Ya lo solucione. El error esta en que no puedo crear 2 objetos diferentes. Opte por cambiar el código, creando 1 solo y que ese cree al otro, y ahora anda bien.
No se a que se debe pero en fin... despues de 6 horas lo solucioné jaja :P

Saludos markeros
67
UP! Descubri otra cosa testeando... El problema está en que al clickear el objeto creo dos objetos más.
Si creo 1 solo objeto no pasa nada, el problema es cuando es más de uno.

Hay algún codigo para resetear la view? Quizá podría implemetar que luego de hacer click en el objeto (el cual crea dos más) se "reinicie" la view.
68
Me equivoque de termino. Es drag & drop, no swipe. Lo que quiero es solo mover la pantalla con el dedo para todos lados (para ver el room con zoom).
69
Cita de: penumbra en Abril 28, 2015, 07:39:04 AM
Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
Alguien sabría cual es el error?
No tengo una idea clara de cómo es tu juego, pero por la información que compartes, a mi me parece que el código que usas(el último) es el más sospechoso.

Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
El problema es cuando clickeo en un objeto, se me tranca la view
¿Qué pasa si le pones comentarios al último código? Casi apostaría a que el problema dejaría de presentarse
[gml]
if mouse_check_button(mb_left)
{
//   view_xview[0] = median( view_xview[0] + Mx - mouse_x, 0 ,room_width -view_wview[0]);
//   view_yview[0] = median( view_yview[0] + My - mouse_y, 0 ,room_height-view_hview[0]);
}
[/gml]
Quizás no, pero en caso de funcionar, serviría como primer paso para aislar el error y detectar qué código está fallando.

El juego es bien sencillo. Tenés que buscar 5 objetos en un room. Lo que pasa es que en algunos celulares son difíciles de encontrar, entonces le agregue un zoom simple que lo que hace es agrandar la pantalla al doble, bien sencillo. El ultimo código lo que hace es un swipe (o como se llame). Lo uso en la pantalla de selección de niveles y anda perfecto (scrolleo con el dedo en el celular ).
Hice lo que me dijiste de desactivar el ultimo comando pero ésto hace que el swipe no ande. Aumento con el zoom y cuando muevo para todos lados directamente no anda.

Lo raro es que si no toque ningún objeto en el room, el zoom con el swipe anda perfecto... ahora cuando toco un objeto (el cual hace un cambio de sprite, y hace aparecer otro objeto en el room) se me buggea el swipe... por más que salga del room y vuelva a entrar ya el swipe queda buggeado... anda, pero no de un extremo a otro del room, queda como si hubiese cambiado el view a una mas chica o no se...

Capaz podría probar con algun otro script de swipe... Busqué en el foro pero no encontré ningún otro.
70
Hola. Tengo el siguiente problema:
El juego es de encontrar objetos.
Tengo una view de 480*640
Con el siguiente codigo controlo el zoom+ y zoom- mediante 2 objetos por separado(bien sencillo, zoom*2 y otro que vuelve al normal)
<zoom+>
left released:
view_hview[0]=640/2
view_wview[0]=480/2


<sacar zoom>
left released
view_hview[0]=640
view_wview[0]=480


Con lo siguiente controlo el movimiento (lo saque de este foro):
if mouse_check_button_pressed(mb_left)
{
  Mx = mouse_x;
  My = mouse_y;
  }

if mouse_check_button(mb_left)
{
   view_xview[0] = median( view_xview[0] + Mx - mouse_x, 0 ,room_width -view_wview[0]);
  view_yview[0] = median( view_yview[0] + My - mouse_y, 0 ,room_height-view_hview[0]);
  }


Hasta ahi todo bien, el zoom anda y cuando dejo apretado en la pantalla y muevo todo funciona bien. El problema es cuando clickeo en un objeto, se me tranca la view (ese objeto a su vez crea otro, no se si influye en algo). Encuentra el objeto y como que el zoom queda buggeado, no se mueve bien para los laterales. La vuelvo a alejar y acercar, salgo del nivel y vuelvo a entrar, pero ya el zoom se queda buggeado.
Si reinicio el juego desde 0 borrando todo lo guardado, vuelve a andar bien, pero ya al clickear otro objeto (con zoom) se buggea de nuevo.
Nota: No tengo ningun objeto que controle la view mas que los codigos que puse arriba. El resto de los objetos que son "clickeables" no modifican para nada la view por ningn comando.


Alguien sabría cual es el error?
71
Cita de: arcangelcaos en Abril 22, 2015, 08:30:09 AM
El problema con el draw es que no varias la x ni la y. Dibujas 50 veces los mismo encima. Tienes que poner una x o y diferente por cada for. Aqui ua depende de la distribucion de tu pantalla.
Yo en un caso parecido tengo esto es un for
draw_tex (x+xx*128, y+yy*128, string)
If xx = 5 {xx=0; yy=1}
Eso dentro del for. Asi me pone 4 textos lor línea,  con una separacion de 128 pixeles. Tu ya ajustalo a tu pantalla.

Genial! Ya lo solucioné.

Gracias a todos!
72
up!.

Alguien sabría como sería el código para un solo level? Hago 50 draws por separado igual... Es lo unico que me falta para terminar ! :)
73
Cita de: Clamud en Abril 21, 2015, 04:13:00 AM
Deberias poner el error que aparece para que sea más fácil ayudarte. Me imagino que el último error se debe a que no has asignado la variable "k", lo dejé así para que el valor lo asignes tú.
Para hacer botones usa un script como éste http://www.comunidadgm.org/desarrollo-de-scripts/botones-automaticos/
Si, el error era ese. El problema ahora es que lo puse asi:

for( i=0; i<50; i++ )
{
    draw_text( 100,300, "Level "+string(i+1)+": "+string(global.grid[#i,5])+"/5" );
}


Y me queda todo superpuesto:


No entiendo bien como es... como tomaría cada draw para cada nivel diferente... Yo lo que quiero es que por cada nivel en la seleccion de niveles te diga los que encontraste/restantes. Algo asi sería la maqueta:


Debería de ser un draw para cada objeto, no?. Tengo 50 objetos en el room ese, con una view para scrollear.
74
Cita de: Clamud en Abril 20, 2015, 05:19:39 PM
¿Has usando archivos ini anteriormente? Si no lo has hecho, es mejor que practiques un poco con algo más sencillo (como escribir y leer un simple número), hay muchos ejemplos en el foro.

Puedes poner esto al inicio del juego para cargar los datos. Si ves otros ejemplo te darás cuenta que son muy parecidos.
[gml]
global.grid = ds_grid_create( 50, 6 ); //crear la grid

ini_open( "save.ini" ); //abrir archivo ini, si no existe se crea

if ini_key_exists( "Datos", "objetos" ) //si la línea que buscamos existe
ds_grid_read( global.grid, ini_read_string( "Datos", "objetos", "0" ) ); //cargar grid
else //si no se ha guardado la grid
ini_write_string( "Datos", "objetos", ds_grid_write( global.grid ) ); //la guardamos de una vez (por ahora está en ceros)

ini_close(); //cerrar ini y guardar los cambios
[/gml]

Si has escrito muchas cosas en el archivo y no estás seguro de que los datos son correctos, borra el archivo para comenzar de nuevo con uno en blanco
[gml] file_delete( "save.ini" )[/gml]
eso lo puedes poner dentro de un evento press del teclado o poner una opción dentro de un menú de tu juego (algo como "Borrar datos").

El código para guardar la grid lo debes poner en donde quieras; puedes ejecutarlo al encontrar un objeto para que el archivo ini siempre esté actualizado, otra opción es ejecutarlo en un evento room end y otra es ponerlo en un evento game end
[gml]
ini_open( "save.ini" );
ini_write_string( "Datos", "objetos", ds_grid_write( global.grid ) );
ini_close();
[/gml]

Excelente! Uso archivos .ini para guardar varias cosas... ahora le sume el global.grid del manual que me hiciste. Me anduvo perfecto, muchisimas gracias!

Ahora solo me resta poder ponerlo en la pantalla de seleccion de niveles.
Probé con el código que me dejaste pero me salta error:
Cita de: Clamud en Abril 19, 2015, 04:46:14 AM
En la room de selección de niveles los números se escribirían con un ciclo for
[gml]
for( i=0; i<50; i++ )
{
    draw_text( x,y+i*k, "Level "+string(i+1)+": "+string(global.tabla[#i,5])+"/5" );
}
[/gml]

Lo traté de poner en un objeto de nivel, y despues en otro independiente y me salta error.

Yo tengo la pantalla de selección de niveles asi:


Obviamente son más niveles, son 50, los tengo con una view y lo bajas con el mouse.

Lo que quiero es en cada boton (porque cada nivel es un boton que va al room con ese nivel) tenga por ejemplo a la derecha abajo los objetos descubiertos/restantes ( 1/5, 2/5, 3/5, 4/5 o 5/5).
Cual sería el código para un nivel? Asi lo hago con todos.
75
Cita de: Clamud en Abril 20, 2015, 03:56:12 PM
¿Qué error te aparece?
Recuerda que antes de cargar la grid desde el ini ya debe haber una grid valida escrita en éste.
Me aparecen varios errores... es según cómo lo haya intentado...
No se como tendría que poner el grid en el ini... ni como tendria que poner el código para guardar/cargar... ese es el problema. En el manual te muestra ejemplos de cargar y de guardar por separado, no un ejemplo "entero". En este caso tendría que cargar/guardar una grid de 50*6.
Sabrías como hacerlo?