GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Duvida-Mover a tela usando o mouse

+2
Luan Maia
JoaoVanBlizzard
6 participantes

Ir para baixo

Duvida-Mover a tela usando o mouse Empty Duvida-Mover a tela usando o mouse

Mensagem por JoaoVanBlizzard Sex 29 Nov 2013, 19:03

Gostaria de saber como faz para mover a view ao clicar e arrastar o mouse sobre?ela, desde já agradeço. Happy
JoaoVanBlizzard
JoaoVanBlizzard

Games Ranking : Nota B

Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Luan Maia Sex 29 Nov 2013, 21:26

A maneira mais porca, porem mais simples, que veio a minha cabeça é criar um objeto com uma sprite, mas deixar invisível, fazer com que o objeto siga o mouse quando estiver clicando e colocar para view seguir o objeto.
A outra maneira que pensei, que é mais "bonita", é salvar a posição inicial do mouse e da view (tanto as cordenadas X quanto as Y) em variáveis quando clicar, e enquanto está sendo clicado você pega a posição do X e do Y do mouse e faz a diferença da posição salva com a posição atual e adiciona a diferença à posição que a view estava antes de clicar com o mouse.


Última edição por Luan Maia em Sex 29 Nov 2013, 22:07, editado 1 vez(es)
Luan Maia
Luan Maia

Games Ranking : Sem avaliações

Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por david199 Sex 29 Nov 2013, 22:01

tente assm:
crie uma sprite(qualquer jeito),crie um objeto e nomeio do jeito que quiser, agora no evento mouse e no evento global left button coloque um código esse:
Código:
x=mouse_x
y=mouse_y
agora desmarque a opção visible agora na room, na aba setings aumente a room para um tamanho maior que 640X480 e depois va na aba views e lá marque a opção  enable the use of views e no view 0 marque aopção visible when in rooms starts e agora coloque para seguir o objeto criado anteriormente, feito isso nas caixas hbor e na vbor, na hbor coloque o resultado dessa conta: tamanho horizontal da view,dividido pra 2 e menos o tamanho da sprite. no meu deu 288,na vbor a mesma coisa mais é o tamanho vertical da view. agora coloque o objeto na room, e teste, clique e depois arraste e verá a room se movendo pro lado onde o mouse foi arrastado. se ajudei me ajude clicando no polegar pra cima ao lado esquerdo do meu avatar.se tiver algum erro me avisem.
david199
david199

Data de inscrição : 11/07/2013
Reputação : 4
Número de Mensagens : 72
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://gmrds.blogspot.com

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por PedroX Sex 29 Nov 2013, 22:11

Mouse Pressed:

Código:
vpos = view_xview;
mpos = mouse_x;
Mouse Button

Código:
view_xview = vpos + mpos - mouse_x;
Não esqueça de criá-las no Create para não dar erro.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Gabreel Sex 29 Nov 2013, 22:14

david199 escreveu:tente assm:
crie uma sprite(qualquer jeito),crie um objeto e nomeio do jeito que quiser, agora no evento mouse e no evento global left button coloque um código esse:
Código:
x=mouse_x
y=mouse_y
agora desmarque a opção visible agora na room, na aba setings aumente a room para um tamanho maior que 640X480 e depois va na aba views e lá marque a opção  enable the use of views e no view 0 marque aopção visible when in rooms starts e agora coloque para seguir o objeto criado anteriormente, feito isso nas caixas hbor e na vbor, na hbor coloque o resultado dessa conta: tamanho horizontal da view,dividido pra 2 e menos o tamanho da sprite. no meu deu 288,na vbor a mesma coisa mais é o tamanho vertical da view. agora coloque o objeto na room, e teste, clique e depois arraste e verá a room se movendo pro lado onde o mouse foi arrastado. se ajudei me ajude clicando no polegar pra cima ao lado esquerdo do meu avatar.se tiver algum erro me avisem.
Esse método não vai funcionar como o João quer. Apenas quando o mouse estiver EXATAMENTE em cima do objeto, e aliás, porque mudar o tamanho da room? o.ó

Então João, crie o objeto como falaram e você já deve ter imaginado, e no create coloque:

Código:
previousmx = x
previousmy = y
Aí coloque no end step (pra não houver atrasos no movimento).
Código:

if mouse_check_button(mb_left) {
// Temos que garantir que o mouse vai estar sempre exatamente com o mesmo X e Y do objeto, então:
previousmx = x; //É como se o mouse tivesse posicionado em cima do objeto.
previousmy = y;
x=previousmx-mouse_x; //Quando o mouse se mover 1 pra direita, a variável tomará valor de 1 para direita.
y=previousmy-mouse_y; //Mesma coisa que acima.
}
Estou sem o Game Maker pra testar, mas caso não funcione, entenda a lógica do código, e faça algumas alterações, pois isso deve funcionar! Happy
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por JoaoVanBlizzard Sex 29 Nov 2013, 23:15

Luan Maia:Eu também crio varias coisas no improviso, tem coisas que eu nem sei fazer mas faço ao meu modo, mas dessa vez eu gostaria de algo que tivesse funcionamento como se a tela tivesse sendo puxada pelo mouse mesmo.

david199: testei sua técnica, é a que eu pensaria em criar se fosse um improviso, mas o problema é que a tela vai andar conforme o objeto anda, eu quero que a tela anda se eu tivesse puxando ela

PedroX: sua técnica faz a tela mover-se de forma independente, não acompanha o mouse.

Gabreel: é quase isso, eu queria algo parecido com o desse jogo do moonliware:

https://gmbr.forumeiros.com/t27435-mestre-dos-obstaculos-windows-e-android?highlight=mestre+dos+obstaculos

quando você clica na tela com o mouse e arrasta a tela anda, eu queria saber como se faz isso.
JoaoVanBlizzard
JoaoVanBlizzard

Games Ranking : Nota B

Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Gabreel Sex 29 Nov 2013, 23:34

Pera aí, vou fazer um teste aqui!
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por TRFN Sex 29 Nov 2013, 23:55

Tente isso :

Create:
Código:
velocidade = 5; // Velocidade que a view moverá segundo o mouse.
nx = 0; ny = 0;
Step:
Código:
if(mouse_check_button_pressed(mb_left))then
  begin
    nx = mouse_x;
    ny = mouse_y;
  end
else if(mouse_check_button_released(mb_left))then
  begin
    view_xview += mouse_x - nx;
    view_yview += mouse_y - ny;
    nx = 0;
    ny = 0;
  end
Pelo o que compreendi e algo assim que você precisa.
TRFN
TRFN

Games Ranking : Nota C

Notas recebidas : C + C + C
Data de inscrição : 16/01/2012
Reputação : 70
Número de Mensagens : 1192
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Web Tecnology
  • Javascript
  • Outros


https://site13.com.br/

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por JoaoVanBlizzard Sáb 30 Nov 2013, 00:02

Trfn: vou testar aqui
JoaoVanBlizzard
JoaoVanBlizzard

Games Ranking : Nota B

Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Luan Maia Sáb 30 Nov 2013, 00:07

Acho que você não entendeu o que falei. Do segundo modo que falei eu testei aqui e funcionou bem, só tive que dar uma desacelerada. Eu cheguei a jogar esse jogo do Molinware no Android e pelo que lembro é isso.
Coloque isso no step de um objeto:
Código:

desacelerador = 1.5; //diminui a velocidade com que se mexe, quanto maior for, menor será a velocidade e se colocar valor negativo inverte o "puxamento"
if (mouse_check_button_pressed(mb_left))
{
    //aqui salvo as variáveis no começo como falei
    viewx = view_xview[0];
    viewy = view_yview[0];
    mousex = mouse_x;
    mousey = mouse_y;
}
else if (mouse_check_button(mb_left))
{
    //aqui faço a cordenada da  view ser a soma da posição inicial com a diferença da posição inicial do mouse com a atual, só adicionei o desacelerador de diferente do que tinha falado
    view_xview[0] = viewx+(mousex-mouse_x)/desacelerador;
    view_yview[0] = viewy+(mousey-mouse_y)/desacelerador;
}


Última edição por Luan Maia em Sáb 30 Nov 2013, 00:34, editado 7 vez(es) (Motivo da edição : Explicar melhor)
Luan Maia
Luan Maia

Games Ranking : Sem avaliações

Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Reputação : 2
Número de Mensagens : 404
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Gabreel Sáb 30 Nov 2013, 00:08

Cheguei à um código (bem melhor quando se pode testá-lo hehe)

Código:
if x < round(view_wview/2) x = round(view_wview/2);
if y < round(view_hview/2) y = round(view_hview/2);
if x > room_width x = room_width;
if y > room_height y = room_height; //Todas as verificações pra não travar nos cantos


if mouse_check_button(mb_left)  {
// Temos que garantir que o mouse vai estar sempre exatamente com o mesmo X e Y do objeto, então:
if(x >= round(view_wview/2) && y >= round(view_hview/2) && x <= room_width && y <= room_height){
    x+=(previousmx-mouse_x)*0.6; //Quando o mouse se mover 1 pra direita, a variável tomará valor de 1 para direita.
    y+=(previousmy-mouse_y)*0.6; //Mesma coisa que acima, NOTA: o 0.6 é para deixar mais suave.
}
}else{
previousmx = mouse_x; //É como se o mouse tivesse posicionado em cima do objeto.
previousmy = mouse_y;
}
O código é parecido com o do TRFN, e tem um pequeno bug, mas acho que tu consegue resolver a partir disso!
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por TRFN Sáb 30 Nov 2013, 00:13

JoaoVanBlizzard escreveu:Trfn: vou testar aqui
João, aprimorei o código. Agora está bem melhor :

Create
Código:
velocidade = .85; // Velocidade que a view moverá segundo o mouse. Numero entre 0 e 1 [ex: .54 ou 0.54]
nx = mouse_x; ny = mouse_y; lmx = nx; lmy = ny; // Variáveis para calculo e etc.
Step
Código:
/* Verifica se o mouse está se movendo */

if(lmx <> mouse_x || lmy <> mouse_y)then mouse_move = true;
else begin mouse_move = false end

lmx = mouse_x;
lmy = mouse_y;

/* Checa o clique inicial */

if( mouse_check_button_pressed( mb_left ) )then
  begin
    nx = mouse_x;
    ny = mouse_y;
    vel = velocidade * .05;
  end

/* Se mover o mouse e segurar */

else if( mouse_move && mouse_check_button( mb_left ) )then
  begin
    view_xview += round( ( nx - mouse_x ) * vel );
    view_yview += round( ( ny - mouse_y ) * vel );
    vel = min( vel + velocidade * .05, velocidade );
  end
 
if( !mouse_move )then vel = velocidade * .05;
A vantagem e que ele não só checa o movimento da tela, mas também a extensão do movimento e ainda há aceleração continua no mesmo.

EDIT

Coloquei um efeito ao movimentar a tela para deixar o "arrastar" mais suave.
TRFN
TRFN

Games Ranking : Nota C

Notas recebidas : C + C + C
Data de inscrição : 16/01/2012
Reputação : 70
Número de Mensagens : 1192
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Web Tecnology
  • Javascript
  • Outros


https://site13.com.br/

Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por JoaoVanBlizzard Sáb 30 Nov 2013, 00:38

Gabreel: seu código está movendo o objeto que execulta o mesmo e não a tela, mas acho que se eu trocar os valores x & y por funções view_xview e view_yview ja consigo resolver

Luan Maia: eu testei seu código, funcionou, mas os objetos dão uma pequena tremidinha, mas eu entendi, é só mudar o valor da desaceleração

TRFN: seu código funcionou bem como eu queria, entretanto, para todos os códigos a view parece ignorar o campo limite do jogo , mas acredito que basta eu criar um código de inicio de valor e limitar de acordo com o tamanho da minha room, valeu pela ajuda galera,e pelo esforço de todos, agora já posso dar continuidade a meu jogo. Very Happy
JoaoVanBlizzard
JoaoVanBlizzard

Games Ranking : Nota B

Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Gabreel Sáb 30 Nov 2013, 00:55

JoaoVanBlizzard escreveu:Gabreel: seu código está movendo o objeto que execulta o mesmo e não a tela, mas acho que se eu trocar os valores x & y por funções view_xview e view_yview ja consigo resolver

Luan Maia: eu testei seu código, funcionou, mas os objetos dão  uma pequena tremidinha, mas eu entendi, é só mudar o valor da desaceleração

TRFN: seu código funcionou bem como eu queria, entretanto, para todos os códigos a view parece ignorar o campo limite do jogo , mas acredito que basta eu criar um código de inicio de valor e limitar de acordo com o tamanho da minha room, valeu pela ajuda galera,e pelo esforço de todos, agora já posso dar continuidade a meu jogo. Very Happy
No meu caso, deveria ter colocado a view seguindo o objeto, mas como disse, daria na mesma! (:

Tópico fechado!
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : Duvida-Mover a tela usando o mouse Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

Duvida-Mover a tela usando o mouse Empty Re: Duvida-Mover a tela usando o mouse

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos