[Duvida]zoom android

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Duvida]zoom android

Mensagem por Gonzo em Sex 26 Set 2014, 20:12

Baixei um script de zoom pra android, e pra minha surpresa ele funciona affraid
mais nem td são flores tonto  parece incompleto, {gostaria que o zoom sempre foce realizado no meio da tela, que o limite máximo foce de 3x e limite minimo foce do tamanho real da imagem, é um belo problema matemático} alguem??  albino

Create()
Código:
initial_w_view = view_wview[0];
view_scale = 1;
global.minzoom = 0.1;
initial_x = 0;
initial_y = 0;
initial_zoom = 0;

Glob left button()
Código:
var view_ratio;
view_ratio = view_hview[0]/view_wview[0];

if( device_mouse_check_button_pressed( 1, mb_left ) )
{
    initial_x = mean( device_mouse_x( 0 ), device_mouse_x( 1 ) );
    initial_y = mean( device_mouse_y( 0 ), device_mouse_y( 1 ) );
    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*clamp(view_scale, global.minzoom, 10);
    view_hview[0] = view_wview[0]*view_ratio;
    view_xview[0] += initial_x-mean( device_mouse_x( 0 ), device_mouse_x( 1 ) );
    view_yview[0] += initial_y-mean( device_mouse_y( 0 ), device_mouse_y( 1 ) );
    
};

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Duvida]zoom android

Mensagem por Gonzo em Sab 27 Set 2014, 16:04

Sério, gente me ajudem só falta isso pra terminar meu jogo não consigo fazer um zoom perfeito alguém pode me ajudar, prometo que fico 3 meses sem pedir nd aqui no forum  uahuahuha beijo do Gonzo Smile


Última edição por Gonzo em Dom 28 Set 2014, 00:46, editado 1 vez(es)

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Duvida]zoom android

Mensagem por Kabeção em Sab 27 Set 2014, 20:22

Pegue o valor do aumento de view_w/hview divida pela metade e subtraia em view_x/yview.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Duvida]zoom android

Mensagem por Gonzo em Dom 28 Set 2014, 00:56

Baseado no que eu preciso alguem poderia criar esse sistema de uma forma mais limpa? agradeço desde já Smile

Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Duvida]zoom android

Mensagem por Gonzo em Qua 01 Out 2014, 18:19

Achei finalmente um script bacana uhauah

em create event() cole o code

{
initial_x = 0;
initial_y = 0;
initial_w = view_wview[0];
initial_h = view_hview[0];
initial_zoom = 0;
view_scale = 1;
}

em step event cole o code()

var mx0, my0, mx1, my1, mx0raw, my0raw, mx1raw, my1raw;


mx0 = device_mouse_x(0); my0 = device_mouse_y(0);
mx1 = device_mouse_x(1); my1 = device_mouse_y(1)
mx0raw = device_mouse_raw_x(0); my0raw = device_mouse_raw_y(0)
mx1raw = device_mouse_raw_x(1); my1raw = device_mouse_raw_y(1)


if ( device_mouse_check_button_pressed(1, mb_left) )
{initial_x = mean(mx0, mx1);initial_y = mean(my0, my1);
initial_zoom = point_distance(mx0raw, my0raw, mx1raw ,my1raw) * view_scale
}


if ( device_mouse_check_button(1, mb_left) )
{
view_scale = initial_zoom / point_distance(mx0raw, my0raw, mx1raw, my1raw);
if (view_scale > 1) view_scale = 1;
view_wview[0] = initial_w * view_scale;
view_hview[0] = initial_h * view_scale


view_xview[0] += initial_x - mean(mx0, mx1)
view_yview[0] += initial_y - mean(my0, my1)

if (view_xview[0] < 0) view_xview[0] = 0
if (view_xview[0] + view_wview[0] > room_width)
view_xview[0] = room_width - view_wview[0]


if (view_yview[0] < 0) view_yview[0] = 0
if (view_yview[0] + view_hview[0] > room_height)
view_yview[0] = room_height - view_hview[0]
}

A duvida agora é..
como ampliar com menos velocidade sem tremer tanto e colocar um limite para o zoom, fico no aguardo obrigado.


Gonzo

Número de Mensagens : 927
Data de inscrição : 29/05/2012
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Duvida]zoom android

Mensagem por Conteúdo patrocinado Hoje à(s) 03:51


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum