Entrar
Últimos assuntos
» player não consegue andarpor 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
[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