DESVENDANDO O GAME MAKER
Aula 01 - Views
(Atualizado 08/02/2015)
Views são usadas em jogos que têm fases muito grandes para serem desenhadas na tela. São as populares "câmeras" que seguem algum elemento do jogo.
Jogos como Pacman tem somente uma tela, ela fica estática e imóvel. Mas há telas como do Super Mario World que acompanha o personagem (Scrolling), pois a fase é muito grande para ficar em um tela só.
Hoje vamos entender como funciona o sistema de Views do Game Maker. Baixe a engine abaixo para nós conStruirmos juntos um sistema de views:
[GM:S] DOWNLOAD DA ENGINE
[GM8] DOWNLOAD DA ENGINE
Execute a engine. Você verá que a tela é como a do Pacman, estática. Vamos fazer uma View como a do Mario.
Abra a sua room, va na aba views, selecione a opção Enable the use of views, que significa ativar o uso de views nesta room:
Você pode escolher até 7 views, para 7 objetos. Mas raramente você usará mais de uma. Então selecione apenas a view 0.
A opção Enable view when room starts, siginifica Ativar views quando a room iniciar. Marque esta opção:
Logo abaixo temos uma seção chamada view in room, aqui determinaremos a posição inicial da view (x e y) e seu tamanho (W: largura e H: altura). Essa é a resolução da view. Deixe como na imagem abaixo:
Mais abaixo temos uma seção chamada Port on screen. X e Y é a posição da janela na tela e W e H é o tamanho da janela na tela do computador (Muda o tamanho da janela, não a resolução), deixe como na imagem abaixo:
Por ultimo, temos Object following, é o objeto que a view vai seguir. Selecione o objeto player, como na imagem:
Hbor: é a distância entre o objeto e as verticais (esquerda e direita) da view que vão fazer a view se mover.
Vbor: é a distância entre o objeto e as horizontais (cima e baixo) da view que vão fazer a view se mover.
Ou seja, quando a distância entre o player e as bordas for menor ou igual ao valor colocado, a view vai se mover.
Hsp: é a velocidade horizontal em que a view segue o objeto. O valor padrão "-1" faz com que a view acompanhe o objeto em tempo real, sem ficar atrasada.
Vsp: é a velocidade vertical em que a view segue o objeto. O valor padrão "-1" faz com que a view acompanhe o objeto em tempo real, sem ficar para trás.
Teste o jogo. Fizemos nossa view como a do Mario. Mas agora vamos dar um charme para nossa view, fazendo ela seguir o objeto um pouco devagar. Troque os valores de Hsp e Vsp para 3. Tente não usar valores que ultrapassem muito a velocidade do player, senão ficará rapido demais. E nem valores muito baixos, senão o player foge da view e você terá que ficar esperando a view te acompanhar a todo momento, então vá regulando a velocidade até achar alguma que fique bem.
Mas agora você me pergunta: Porque a view começa la no topo da room?
R: porque deixamos a posição dela la. Volte a parte View in room e mude as posições x e y para as posições que mais lhe agradarem. Caso não esteja vizualizando a view va ao topo da janela e clique na opção Show view, que você poderá ver sua view:
Engine completa:
[GM:S] DOWNLOAD DA ENGINE
[GM8] DOWNLOAD DA ENGINE
Para controlar as view por códigos, use as seguintes variaveis para isso:
view_enabled view estão habilitadas ou não.
view_visible [0 .. 7] Se a view é visível na tela.
view_xview [0 .. 7] X posição da exibição na room.
view_yview [0 .. 7] Y posição da exibição na room.
view_wview [0 .. 7] Largura da exibição na room.
view_hview [0 .. 7] Altura da exibição na room.
view_xport [0 .. 7] X-posição da janela de exibição na região de desenho.
view_yport [0 .. 7] Y-posição da janela de exibição na região de desenho.
view_wport [0 .. 7] Largura da janela de exibição na região de desenho.
view_hport [0 .. 7] Altura da janela de exibição na região de desenho.
view_angle [0 .. 7] Ângulo de rotação utilizado para a exibição na room (sentido anti-horário em graus).
view_hborder [0 .. 7] Tamanho da borda horizontal em torno do objeto visível (em pixels).
view_vborder [0 .. 7] Tamanho da borda vertical em torno de objetos visíveis (em pixels).
view_hspeed [0 .. 7] Velocidade horizontal máxima da view.
view_vspeed [0 .. 7] Velocidade vertical máxima da view.
view_object [0 .. 7] O nome do objeto que a view vai seguir. Se houver várias instâncias deste objeto apenas o primeiro é seguido.
[0...7] é a view que esta usando, no nosso caso é a 0, então se quisessemos mudar a posição x da view 0, fariamos isso:
Código: Selecionar todos
view_xview[0]=200
room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hborder,vborder,hspeed,vspeed,obj)
ind: nome da room;
vind: número da view, 0 à 7;
vis: se é visivél, true ou false;
xview: posição x da view;
yview: posição y da view;
wview: resolução horizontal da view;
hview: resolução vertical da view;
xport: posição x da janela na tela;
yport: posição y da janela na tela;
wport: tamanho horizontal da janela;
hport: tamanho vertical da janela;
hborder: tamanho da borda horizontal;
vborder: tamanho da borda vertical;
hspeed: velocidade horizontal da view;
vspeed: velocidade vertical da view;
obj: objeto a ser seguido.
room_set_view_enabled(ind,val)
ind: nome da room;
val: número da view, 0 à 7.
Enfim terminamos esta aula, até a próxima!
Próxima aula: Tiles
FLWS!