Página 1 de 1

movimento por tocar e arrastar no Android

Enviado: Ter Fev 28, 2017 2:04 pm
por Sr.Zero
Olá, primeiramente eu quero pedir desculpa caso ja tenha algum topico sobre isso, talvez eu esteja usando as palavras chaves erradas pq não encontrei.

Eu gostaria de saber como criar comandos por toque-arraste no android.
Ex: arrastar o dedo na tela na vertical de cima para baixo faz o personagem andar para baixo ( até que seja parado por colisão, o que não vem ao caso)
só preciso reconhecer 4 direções de movimento para um puzzle que pretendo fazer

Re: movimento por tocar e arrastar no Android

Enviado: Ter Fev 28, 2017 5:55 pm
por TootyDev
Neste Fórum são pouquíssimas pessoas que mechem realmente com Android então eu recomendo a você ver as Vídeo Aulas de Gringos pois eles são bem mais experientes no assunto, vou listar alguns vídeos gringos que falam a respeito do Movimento pelo Android

Shaun Spalding: https://www.youtube.com/watch?v=AfJNtaG8NRA
EscueladeVideoJuegos: https://www.youtube.com/playlist?list=P ... 3MkIwM6zkU
ColloseusX: https://www.youtube.com/watch?v=3RXsvUy ... sgeA7HPbdX

ESPERO TER AJUDADO!

Re: movimento por tocar e arrastar no Android

Enviado: Qua Mar 01, 2017 10:24 pm
por Willy
Olá Sr. Zero!

O que você precisa é de um sistema de Swipe. Basicamente, um swipe consiste em pegar a posição x/y do toque inicial e comparar com a posição x/y do momento em que você deixa de tocar a tela. Com essas duas coordenadas, você consegue pegar o ângulo que ela forma, e então, identificar para qual direção o jogador fez o swipe.

Antes da migração, existia um tutorial meu por aqui que acabei de ficar de repostar. MAS, pra sua sorte, eu tenho ele salvo e vou disponibilizar um lindo PDF pra você baixar.

Re: movimento por tocar e arrastar no Android

Enviado: Qua Mar 01, 2017 10:58 pm
por TootyDev
Willy escreveu:Olá Sr. Zero!

O que você precisa é de um sistema de Swipe. Basicamente, um swipe consiste em pegar a posição x/y do toque inicial e comparar com a posição x/y do momento em que você deixa de tocar a tela. Com essas duas coordenadas, você consegue pegar o ângulo que ela forma, e então, identificar para qual direção o jogador fez o swipe.

Antes da migração, existia um tutorial meu por aqui que acabei de ficar de repostar. MAS, pra sua sorte, eu tenho ele salvo e vou disponibilizar um lindo PDF pra você baixar.
Willy, você também teria um PDF para detectar o toque do jogador na tela do celular ??

Re: movimento por tocar e arrastar no Android

Enviado: Qui Mar 02, 2017 8:51 am
por Rodrigo Santiago
TootyDev, no GameMaker para android, o mouse e todos os eventos relacionados (click, press,releases etc) são convertidos para touch. Pra fazer um swipe vc pode fazer o seguinte :

Create

Código: Selecionar todos

swipe_x = -1;
swipe_y = -1;
Quando o Mouse (touch) pressionar(pressed)

Código: Selecionar todos

swipe_x = mouse_x;
swipe_y = mouse_y;
Quando o Mouse (touch) soltar(released)

Código: Selecionar todos

//Vc tem que ter um pouco de erro, ja que e praticamente impossível vc fazer um movimento perfeito com o dedo
//Então vamos por distancia 64 pixels, e de cima pra baixo a direção deve ser 270º, mas vamos por uma margem de erro de 20º
var dist = point_distance(swipe_x, swipe_y, mouse_x, mouse_y);
var dir = point_direction(swipe_x, swipe_y, mouse_x, mouse_y);
if (dist > 64) {
    if (dir > 270 - 20 && dir < 270 + 20) {
        //De cima para baixo
    } else if (dir > 90 - 20 && dir < 90 + 20) {
        //De baixo para cima
    } else if (dir > 360 - 20 && dir < 0 + 20) { // 0º e 360º olha um transferidor e vc vai entender
        //Da esquerda pra direita
    } else if (dir > 180 - 20 && dir < 180 + 20) {
        //Da direita para esquerda
    }
}