Entrar
Últimos assuntos
» Servidor de Discord do fórum?por Super Games Ontem à(s) 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
[Tutorial] FPS + Sistema de Gravidade + Escada
2 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial] FPS + Sistema de Gravidade + Escada
Nome: Câmera estilo FPS e um sistema simples de gravidade
Nível de dificuldade: mediano
Requerimentos: Versão do GM 8 - Pro
Bem pessoal boa tarde, hoje irei ensinar como fazer uma câmera no estilo de Fisrt Personal Shooter (Tiro em Primeira Pesooal) e também um sistema de gravidade simples e uma escada.
Vamos começar pela parte mais importante do jogo, a câmera, crie um objeto e nomeio de 'obj_cam', no evento CREATE dele adicione:
Agora no STEP adicione:
Posteriormente vamos criar um sistema de grids mas já vamos adiantando para ajustarmos a gravidade...
Bem, vamos agora passar para o END STEP:
No DRAW coloque:
Agora crie um script e chame-o de 'grade', adicione:
Por exemplo se z for igual a 64 e global.grid*16 for igual a 16 o player vai saber que está acima do chão então vai acionar a gravidade.
Crie um obj_up, ele vai fazer o chao subir, no END STEP adicione:
Crie um objeto chamado: obj_block, ele vai ser nosso 'chão'.
No CREATE defina a variavel z:
E a grade:
Na colisão com a câmera coloque:
Na colisão com o obj_up adicione:
No DRAW coloque:
Agora só falta as texturas, utlize essa para o sprite do obj_block:
Use essa para a câmera e para o obj_up:
Pronto!
Agora basta criar uma room e adicionar os objetos.
Obs.: Crie primeiro o obj_cam (Importante); quanto mais obj_up você colocar sobre o obj_block mais alto ele ficara.
Bem gente é isso, espero que tenham gostado, e para quem quiser clique aqui e obtenha a engine pronta.
Flw!
Nível de dificuldade: mediano
Requerimentos: Versão do GM 8 - Pro
Bem pessoal boa tarde, hoje irei ensinar como fazer uma câmera no estilo de Fisrt Personal Shooter (Tiro em Primeira Pesooal) e também um sistema de gravidade simples e uma escada.
Câmera
Vamos começar pela parte mais importante do jogo, a câmera, crie um objeto e nomeio de 'obj_cam', no evento CREATE dele adicione:
- Código:
d3d_start()
- Código:
texture_set_interpolation(true)
- Código:
draw_set_color(c_white)
draw_set_alpha(1)
- Código:
z=0
zspeed=0
zgravity=0
- Código:
friction=.4
Agora no STEP adicione:
- Código:
if keyboard_check(vk_left) {direction+=4}
if keyboard_check(vk_right) {direction-=4}
if keyboard_check(vk_up) {if speed<7 {speed+=.5}}
if keyboard_check(vk_down) {if speed>-7 {speed-=.5}}
Posteriormente vamos criar um sistema de grids mas já vamos adiantando para ajustarmos a gravidade...
- Código:
if z>global.grid*16&&zspeed=0 {zgravity+=.5}
- Código:
if z<=global.grid*16 {zgravity=0 z=global.grid*16}
if zspeed>0 {zspeed-=.5}
if keyboard_check_pressed(vk_space) {zspeed=12}
if distance_to_object(obj_block)>1 {global.grid=16*-16}
if z<=16*-16 {room_restart()}
Bem, vamos agora passar para o END STEP:
- Código:
z+=zspeed
z-=zgravity
No DRAW coloque:
- Código:
xto=x+cos(direction*pi/180)
yto=y-sin(direction*pi/180)
zto=z+40
- Código:
d3d_set_projection(x,y,z+40,xto,yto,zto,0,0,1)
Grid
Agora crie um script e chame-o de 'grade', adicione:
- Código:
if z=0 {global.grid=0}
if z=16 {global.grid=1}
if z=16*2 {global.grid=2}
if z=16*3 {global.grid=3}
if z=16*4 {global.grid=4}
if z=16*5 {global.grid=5}
if z=16*6 {global.grid=6}
if z=16*7 {global.grid=7}
if z=16*8 {global.grid=8}
if z=16*9 {global.grid=9}
if z=16*10 {global.grid=10}
- Código:
if z>global.grid*16&&zspeed=0 {zgravity+=.5}
Por exemplo se z for igual a 64 e global.grid*16 for igual a 16 o player vai saber que está acima do chão então vai acionar a gravidade.
Chão
Crie um obj_up, ele vai fazer o chao subir, no END STEP adicione:
- Código:
if distance_to_object(obj_block)<1 {instance_destroy()}
Crie um objeto chamado: obj_block, ele vai ser nosso 'chão'.
No CREATE defina a variavel z:
- Código:
z=0
E a grade:
- Código:
global.grid=0
Na colisão com a câmera coloque:
- Código:
if z>obj_cam.z+16 {with (obj_cam) {
x = xprevious;
y = yprevious;
if (abs(hspeed) >= abs(vspeed) && not place_meeting(x+hspeed,y,obj_block))
{ x += hspeed; exit;}
if (abs(vspeed) >= abs(hspeed) && not place_meeting(x,y+vspeed,obj_block))
{ y += vspeed; exit;}
speed = 0;}}
- Código:
else{grade()}
Na colisão com o obj_up adicione:
- Código:
z+=16
No DRAW coloque:
- Código:
d3d_draw_block(x,y,z,x+64,y+64,-2,sprite_get_texture(sprite_index,0),1,1)
Texturas
Agora só falta as texturas, utlize essa para o sprite do obj_block:
Use essa para a câmera e para o obj_up:
Pronto!
Agora basta criar uma room e adicionar os objetos.
Obs.: Crie primeiro o obj_cam (Importante); quanto mais obj_up você colocar sobre o obj_block mais alto ele ficara.
Bem gente é isso, espero que tenham gostado, e para quem quiser clique aqui e obtenha a engine pronta.
Flw!
Última edição por Thiago_o_programador em Sáb 25 Ago 2012, 09:03, editado 1 vez(es)
Thiago_o_programador- Games Ranking :
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Reputação : 7
Número de Mensagens : 713
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: [Tutorial] FPS + Sistema de Gravidade + Escada
modifica o topico, ai. isso só pega na versão Pro
GMaker 81- Data de inscrição : 27/07/2012
Reputação : 0
Número de Mensagens : 26
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] FPS + Sistema de Gravidade + Escada
É, realmente, valeu cara, tinha esquecido isso.
Thiago_o_programador- Games Ranking :
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Reputação : 7
Número de Mensagens : 713
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|