Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
GameMaker Studio 2: Objeto segue a camera
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
GameMaker Studio 2: Objeto segue a camera
Boa noite
Creater,
No meu projeto, queria implementar um mapa aonde deslizo com o dedo(touch) ou mouse e o objeto segue fixando na tela que coloquei.
Olhe abaixo pelo link:
https://www.youtube.com/watch?v=HWqpe7OUOoc
Nao to conseguido pelo video, como e que se faz isso?
Desde ja muito obrigado pela ajuda.
Creater,
No meu projeto, queria implementar um mapa aonde deslizo com o dedo(touch) ou mouse e o objeto segue fixando na tela que coloquei.
Olhe abaixo pelo link:
https://www.youtube.com/watch?v=HWqpe7OUOoc
Nao to conseguido pelo video, como e que se faz isso?
Desde ja muito obrigado pela ajuda.
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: GameMaker Studio 2: Objeto segue a camera
Bom, no vídeo ele utiliza um objeto para seguir a camera, para servir como HUD ou algo do tipo. Porém você consegue o mesmo efeito e talvez melhor ainda, se usar o Draw Gui, que serve exatamente para isso, ele não segue a camera/view ele é fixo e absoluto, para usar é simples, adicione o Event Draw Gui no objeto, e todo o Draw do objeto coloque lá.
Agora se realmente precisa que o objeto siga a camera, o vídeo que mandou é funcional, talvez não esteja funcionando porque você não habilitou a viewport que você vai usar na room, vá na Room e marque essas opções:
Agora se realmente precisa que o objeto siga a camera, o vídeo que mandou é funcional, talvez não esteja funcionando porque você não habilitou a viewport que você vai usar na room, vá na Room e marque essas opções:
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Blz grononmc,
Entao cara, to fazendo aquele mapa igual a este game:
Mapa
Começando no segundos 0:35.E usando o Draw Gui ou a camera?
Muito obrigado pela ajuda.
Entao cara, to fazendo aquele mapa igual a este game:
Mapa
Começando no segundos 0:35.E usando o Draw Gui ou a camera?
Muito obrigado pela ajuda.
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: GameMaker Studio 2: Objeto segue a camera
A entendi, é que no video anterior o cara ensinava a fazer um objeto seguir a camera, porém você quer arrastar a Camera pela area da room, tipo um Scrolling ou Drag so que na vertical. Então nem precisa de Draw ou Draw Gui você simplesmente deve arrastar a camera.
Create
Step
Esse é um código simples e funcional para você poder arrastar a camera, deixei habilitado somente o eixo Y ou seja somente na vertical, porém se precisar na horizontal é só adicionar igual o prevMY.
Lembre-se de ativar aquelas opções no Room Properties para funcionar.
Create
Código: Selecionar todos
// Salva a posição anterior do mouse
prevMY = 0;
// Se esta arrastando a camera
dragCam = false;
Código: Selecionar todos
// Posições atuais da camera
var _camx = camera_get_view_x(view_camera[0]);
var _camy = camera_get_view_y(view_camera[0]);
// Começa a arrastar
if(mouse_check_button_pressed(mb_left)) {
prevMY = mouse_y;
dragCam = true;
}
if(mouse_check_button(mb_left) && dragCam) {
// Diferença entre a ultima posição e a atual do mouse_y
var _diff_my = prevMY - mouse_y;
// Atualiza a posição da camera
camera_set_view_pos(view_camera[0], _camx, _camy + _diff_my);
}else {
// Para de arrastar
dragCam = false;
}
Lembre-se de ativar aquelas opções no Room Properties para funcionar.
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Blz grononmc,
Vlw cara pela resposta.
Vou tentar faze isso, deste ja agradeço.
Vlw cara pela resposta.
Vou tentar faze isso, deste ja agradeço.
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Funcionou,
Mas os objetos nao seguem a camera.
Sabe aqueles objetos de navegaçoes(dinheiro,invertario,skill) quero deixar fixado em uma parte da tela seguindo a camera conforme o movimento.
No video que mandei tem o dinheiro e joia fixados no campo superior da tela seguindo a camera.
Voce tem uma ideia de com faço isso?
Obrigado pela ajuda grononmc.
Mas os objetos nao seguem a camera.
Sabe aqueles objetos de navegaçoes(dinheiro,invertario,skill) quero deixar fixado em uma parte da tela seguindo a camera conforme o movimento.
No video que mandei tem o dinheiro e joia fixados no campo superior da tela seguindo a camera.
Voce tem uma ideia de com faço isso?
Obrigado pela ajuda grononmc.
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: GameMaker Studio 2: Objeto segue a camera
Então basta fazer igual o video, ou assim:
Step do objeto que deve seguir a camera
Logicamente se não quiser que o objeto siga, e só usar o Draw Gui sem necessitar desse código acima.
Step do objeto que deve seguir a camera
Código: Selecionar todos
// Posição atual da camera
var _cx = camera_get_view_x(view_camera[0]),
_cy = camera_get_view_y(view_camera[0]);
// Posição que você quer que fique na camera
var _px = 32,
_py = 32;
// Atualização do objeto para seguir a camera
x = _cx + sprite_xoffset + _px;
y = _cy + sprite_yoffset + _py;
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Vlw grononmc,
Cara porque o objeto que segue fica com "toquinho" na tela?,tem uma maneira de suavizar este movimento?
a proposito era isso mesmo que queria
Obrigado pela ajuda.
Cara porque o objeto que segue fica com "toquinho" na tela?,tem uma maneira de suavizar este movimento?
a proposito era isso mesmo que queria
Obrigado pela ajuda.
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: GameMaker Studio 2: Objeto segue a camera
Toquinho, ele fica com tipo um delay?, pra fixar de vez é só colocar todo esse código no End Step, mas se precisar suavizar o movimento, usa a função lerp:
Código: Selecionar todos
// 0.1 é a velocidade que ele suaviza, quando menor mais lerdo ele atualiza a posição
x = lerp(x, _cx + sprite_xoffset + _px, 0.1);
y = lerp(y, _cy + sprite_yoffset + _py, 0.1);
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Vlw muito grononmc,
Cara a ultima coisinha, to tentando travar a camera porque senao a camera vai para o infinito e alem
Entao adicionei um codigo de limitador na camera
Olhe abaixo:
Ate trava a camera na parte inferior do map(Room), mas parace que fica mais dificil "puxa" para cima e o limitador da parte superior nao consegui.
o que esta errado na minha logica? o que tenho q fazer?
Muito obrigado pela ajuda.
Cara a ultima coisinha, to tentando travar a camera porque senao a camera vai para o infinito e alem
Entao adicionei um codigo de limitador na camera
Olhe abaixo:
Código: Selecionar todos
if _camy < room_width
{
if(mouse_check_button_pressed(mb_left)) {
prevMY = mouse_y;
dragCam = true;
}
...
o que esta errado na minha logica? o que tenho q fazer?
Muito obrigado pela ajuda.
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: GameMaker Studio 2: Objeto segue a camera
Sua lógica faz com que execute o código se a posição da camera for menor que o tamanho da room na horizontal, o que não faz sentido, porque a camera anda na vertical.
Você pode usar a função clamp, que limita a area de um numero.
Substitua a onde atualiza a posição da camera por isso:
Perceba que usei clamp somente no eixo Y, com o mínimo de 0 e o máximo de room_height-_camh, ele ficará dentro dos limites da room somente no eixo Y.
Você pode usar a função clamp, que limita a area de um numero.
Ou seja se um a variável extrapolar o limite tanto mínimo ou máximo ele pega o valor referente a este limites.Exemplo:
variavel = -10;
variavel = clamp(variavel, 5, 10)
resultado: variavel = 5;
Substitua a onde atualiza a posição da camera por isso:
Código: Selecionar todos
// Atualiza a posição da camera
camera_set_view_pos(view_camera[0],
_camx,
clamp(_camy + _diff_my, 0, room_height-_camh)
);
- GhostPower
- Membro
- Reações: 0
- Mensagens: 97
Re: GameMaker Studio 2: Objeto segue a camera
Boa noite grononmc,
Muito obrigado pela sua ajuda, agradeço muito suas respostas e explicaçoes
Consegui implementar o sistema de mapa com touch.
Vlw.
Muito obrigado pela sua ajuda, agradeço muito suas respostas e explicaçoes
Consegui implementar o sistema de mapa com touch.
Vlw.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes