Abril 12, 2016, 08:14:28 PM Ultima modificación: Abril 12, 2016, 08:23:13 PM por djboro88
Hola GAMEMAKEROS !!

Estoy siguiendo los pasos de aquí:
http://www.comunidadgm.org/preguntas-y-respuestas/hacer-zoom-a-una-view-con-los-dedos/msg124722/?topicseen#msg124722

Pero al hacer zoom, sigue dando como pequeños rebotes.
¿Existe la forma de poder hacer y que no rebote la imágen?

Saludos !!

Me parece que el problema es que se revisan las coordenadas del device_mouse en el room, que a su vez dependen del tamaño de la vista, entonces se hace un ciclo que altera el cambio verdadero de coordenadas. Lo mejor sería leer las coordenas en la pantalla, con las funciones
[gml]
device_mouse_x_to_gui
device_mouse_y_to_gui
[/gml]
o
[gml]
device_mouse_raw_x
device_mouse_raw_y
[/gml]

Pero... ¿en que parte del codigo lo cambio?

Partiendo de lo siguiente:
var view_ratio;
view_ratio = view_hview[0]/view_wview[0];

if( device_mouse_check_button_pressed( 1, mb_left ) )
{
    initial_zoom =
    point_distance
    (
        device_mouse_raw_x( 0 ), device_mouse_raw_y( 0 ),
        device_mouse_raw_x( 1 ), device_mouse_raw_y( 1 )
    )*view_scale;
};

if( device_mouse_check_button( 1, mb_left ) )
{
    view_scale = initial_zoom/
    point_distance
    (
        device_mouse_raw_x( 0 ), device_mouse_raw_y( 0 ),
        device_mouse_raw_x( 1 ), device_mouse_raw_y( 1 )
    );
    view_wview[0] = initial_w_view*view_scale;
    view_hview[0] = view_wview[0]*view_ratio;
    if(touched = true){
    view_xview[0] += initial_x-mean( device_mouse_raw_x( 0 ), device_mouse_raw_x( 1 ) );
    view_yview[0] += initial_y-mean( device_mouse_raw_y( 0 ), device_mouse_raw_y( 1 ) );
    }
};

if(device_mouse_check_button(1, mb_left)){
    initial_x = mean(device_mouse_raw_x(0), device_mouse_raw_x(1));
    initial_y = mean(device_mouse_raw_y(0), device_mouse_raw_y(1));
    touched = true;
}else{
    touched = false;
}

Lo voy a revisar con calma, yo también quiero implementar ese funcionamiento, espero no tardar más de dos días :P

Mientras el Sr. Clamud, piensa el funcionamiento.
Haber si alguien puede dar un rayo de luz al tema.  :-[

Hola en el market hay un unos script gratuitos que funcionan a las mil maravillas y son muy configurables

¿Podrías dar algún ejemplo? O bien alguna que ya hayas usado.
De todas formas haber si Clamud, saca el porque del temblor.

hola ya tombien implemente esos codigos y tambien tiembla jajjaa, los de store de game maker no los puedo bajar por que dice que necesito modulo o algo asi, como si no tengo comprado el modulo de android .. -_- tengo varias cuentas


Cita de: Clamud en Abril 12, 2016, 08:44:38 PM
Me parece que el problema es que se revisan las coordenadas del device_mouse en el room, que a su vez dependen del tamaño de la vista, entonces se hace un ciclo que altera el cambio verdadero de coordenadas. Lo mejor sería leer las coordenas en la pantalla, con las funciones
[gml]
device_mouse_x_to_gui
device_mouse_y_to_gui
[/gml]
o
[gml]
device_mouse_raw_x
device_mouse_raw_y
[/gml]

Yo tengo el mismo problema con un swipe en un juego. Cuando muevo con el dedo que previamente le hice zoom desde un botón, se mueve tembloroso. Cómo podría aplicar lo que dices a mi swipe?
El swipe saque creo que de este foro y lo tengo asi:

Evento Create:
drag_x = device_mouse_raw_x(0);
drag_y = device_mouse_raw_y(0);


Evento Step
if (mouse_check_button_pressed(mb_left)) {
    drag_x = device_mouse_raw_x(0);
    drag_y = device_mouse_raw_y(0);
    }
if (mouse_check_button(mb_left)) {
    view_xview[1] += (drag_x - device_mouse_raw_x(0))*1;
    view_yview[1] += (drag_y - device_mouse_raw_y(0))*1;
    view_xview[2] += (drag_x - device_mouse_raw_x(0))*1;
    view_yview[2] += (drag_y - device_mouse_raw_y(0))*1;
    drag_x = device_mouse_raw_x(0);
    drag_y = device_mouse_raw_y(0);
}


Hace mil años tengo este problema y nunca pude solucionarlo.

Perdonar mi ignarancia, pero ¿que es un swipe?  XD

Es un barrido, como cuando arrastras con el dedo en un dispositivo móvil una ventana de juego y pasa a la siguiente.

Cita de: djboro88 en Abril 20, 2016, 05:43:27 PM
Perdonar mi ignarancia, pero ¿que es un swipe?  XD

Es como en el clash of clans que moves el mapa con el dedo.

Aah !!  ;)
Vale de acuerdo, yo a eso lo llamo: mover view con dedo  XD
A partir de hoy le dire swipe.

El problema que se nos plantea en el post, no es el swipe, ya que esa parte la tengo ya implementada, sino el tema de hacer zoom al pellizcar la pantalla. Simplemente, lo hace bien, pero tiembla al aumentar o disminuir.

¿Alguien sabria como solucionar dicha molestia?

Creo que Clamud a desistido en el intento de solcuionar el tiemble.  XD
¿Alguna idea para que no tiemble al hacer zoom?