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
Fazer Homen: Correr, Pular e Colisão com Objetos...
2 participantes
Página 1 de 1
Fazer Homen: Correr, Pular e Colisão com Objetos...
GENTE EU CONSIGI MODELAR O BONECO SE VOCÊS QUISEREM VER EU POSTO A ENGINE ATUALIZADA
- Essa Engine requere muito conhecimento em inglês e matemática do game maker, eu fiquei estudando ela umas 3 semanas mas ainda não decorei nem si quer metade dos códigos;
- Ela precisa-se do Game Maker Pro;
- Essa Engine não foi feita por min então eu falo logo;
- Ela foi feita por um cara Americano; vamos lá...
A primeira coisa que devemos fazer é isso:
Criar:
- spr_Camera - Aqui vai ser a Câmera
- spr_Character - Aqui vai ser o personagem
- spr_Wall - Aqui vai ser a parede
As Texturas do Mundo 3D - Crie Backgrounds como:
- Coloque o nome de bac_Floor
- Coloque o nome de bac_Metal
- Coloque o nome de bac_Sky
Agora vamos para a parte mais chata os Scripts.
Vá na pasta do lado do game maker e bote add script:
Esse vai ter o nome de: ani_Character
Essa vai ter o nome de: con_Character
Essa vai ter o nome de: con_Camera
//front & back
if keyboard_check(ord('W')) then {motion_add(obj_Camera.direction,amount);}
else
if keyboard_check(ord('S')) then {motion_add(obj_Camera.direction+180,amount);}
//strafe
if keyboard_check(ord('A')) then {motion_add(obj_Camera.direction+90,amount);}
else
if keyboard_check(ord('D')) then {motion_add(obj_Camera.direction-90,amount);}
Essa vai ter o nome de: dra_Camera - aqui vai criar a câmera do mundo 3D
Esse vai ter o nome de: dra_Wall - Aqui vai criar a parede do jogo
Esse vai ter o nome de: dra_World - Aqui vai criar o mundo 3D
Esse vai ter o nome de: ini_Camera
Esse vai ter o nome de: ini_Character
Esse vai ter o nome de: ini_Wall
Esse vai ter o nome de: mot_Character
- Pronto aqui acaba os Códigos;
- Agora vamos criar os objetos:
obj_Camera - Coloque a spr_Camera
obj_Character - Coloque a spr_Character
obj_World - Sem spr
obj_Wall - Coloque a spr_Wall
Agora vamos adicionar os Códigos:
Vá no obj_Camera. Add Evento Create e coloque execute script, não é execute pieco of code não é execute script. E coloque ini_Camera.
Add evento Step no obj_Camera dinovo, e coloque execute script con_Camera.
Add evento Draw no obj_Camera também, e coloque execute script dra_Camera.
Pronto Nossa Movimentação em 3D está pronta.
Agora vamos para o obj_Character:
Add um evento create nele e coloque também execute script ini_Character.
Add outro evento Step, nele vamos executar 3 tipos de códigos.
1º. Execute Script con_Character
2º. Execute Script mot_Character
3º. Execute Script ani_Character
Pronto agora vamos adicionar uma colisão com o obj_Wall - obj_Parede.
Coloque Execute Script col_CharacterWall.
Agora vamos criar o Personagem em 3D.
Add o Evento Draw nele e adicione Execute Script dra_Character.
Pronto nosso Personagem em 3D está criado.
Agora no obj_World adicione o evento Draw e Execute Script dra_World.
E o nosso mundo está tbm criado.
Agora a parte mais fácil a colisão.
Vai no obj_Wall add um Evento Create e Execute Script ini_Wall.
Add outro Evento Draw e Execute Script dra_Wall.
Pronto agora crie uma Room do Tam. 1024 Widht e 768 Height e na Opção Snap X: bote 64 e na Snap Y: bote 64 tbm.
Coloque os obj_Wall, quantos quiserem e o obj_Camera no meio da room ou em qualquer lugar.
E Pronto agora rode a room e pegou.
Uma Engine Pronta: http://www.4shared.com/file/G-rw-Pyz/Homen_Correndo_TUTORIAL_BY_CAR.html
RUNNING MAN EXAMPLE
by John J.A.H. Weeren (aka "ThatGamesGuy")
by John J.A.H. Weeren (aka "ThatGamesGuy")
- Essa Engine requere muito conhecimento em inglês e matemática do game maker, eu fiquei estudando ela umas 3 semanas mas ainda não decorei nem si quer metade dos códigos;
- Ela precisa-se do Game Maker Pro;
- Essa Engine não foi feita por min então eu falo logo;
- Ela foi feita por um cara Americano; vamos lá...
A primeira coisa que devemos fazer é isso:
Criar:
- spr_Camera - Aqui vai ser a Câmera
- spr_Character - Aqui vai ser o personagem
- spr_Wall - Aqui vai ser a parede
As Texturas do Mundo 3D - Crie Backgrounds como:
- Coloque o nome de bac_Floor
- Coloque o nome de bac_Metal
- Coloque o nome de bac_Sky
Agora vamos para a parte mais chata os Scripts.
Vá na pasta do lado do game maker e bote add script:
Esse vai ter o nome de: ani_Character
- Código:
if z>0 then
{
ani+=speed/16;
}
else
{
ani+=speed*2;
}
if ani>360 then ani-=360;
if speed<.2 then
{
ani=0;
}
- Código:
//movendo-se ao obj_solido(0);
speed=0;
x=xprevious;
y=yprevious;
- Código:
if keyboard_check(vk_left) then {direction-=1;}
else
if keyboard_check(vk_right) then {direction+=1;}
if keyboard_check(vk_up) then {zdirection-=1;}
else
if keyboard_check(vk_down) then {zdirection+=1;}
Essa vai ter o nome de: con_Character
- Código:
//jump
if keyboard_check(vk_space) && z=0 then {zspeed+=8;}
//no controls when jumping
if z>0 then {friction=0.05;exit;} else {friction=.1;}
amount=.25;
if speed<1 then amount+=.75;
Essa vai ter o nome de: con_Camera
//front & back
if keyboard_check(ord('W')) then {motion_add(obj_Camera.direction,amount);}
else
if keyboard_check(ord('S')) then {motion_add(obj_Camera.direction+180,amount);}
//strafe
if keyboard_check(ord('A')) then {motion_add(obj_Camera.direction+90,amount);}
else
if keyboard_check(ord('D')) then {motion_add(obj_Camera.direction-90,amount);}
Essa vai ter o nome de: dra_Camera - aqui vai criar a câmera do mundo 3D
- Código:
//zoom
zoom=128;
//localização
x=obj_Character.x;
y=obj_Character.y;
z=obj_Character.z;
//de
xf=x+cos(degtorad(direction+180))*zoom;
yf=y-sin(degtorad(direction+180))*zoom;
zf=z-tan(degtorad(zdirection))*zoom;
//para
xt=x;
yt=y;
zt=z+64;
//desenhar
d3d_set_projection_ext(xf,yf,zf, xt,yt,zt, 0,0,1, 60,1.33,1,1024+256);
- Código:
//draw character
d3d_transform_set_identity();
d3d_transform_add_rotation_y(sin(degtorad(ani*2))*speed/8);
d3d_transform_add_rotation_z(direction+sin(degtorad(ani))*speed);
d3d_transform_add_translation(x,y,z+sin(degtorad(ani*2))*speed/4);
//body upper
d3d_draw_ellipsoid(-8,-10,+64-16, +9,+10,64+2, tex,1,1,16);
d3d_draw_cylinder(-7,-8,+32+8, +8,+8,+64-8, tex,1,1, 1,16);
//body lower
d3d_draw_ellipsoid(-10,-10,+32-2, +8,+10,+48, tex,1,1, 16);
d3d_transform_set_identity();
d3d_transform_set_identity();
d3d_transform_add_rotation_y(sin(degtorad(ani*2))*speed/8);
d3d_transform_add_rotation_z(direction+sin(degtorad(ani))*speed*2);
d3d_transform_add_translation(x,y,z+sin(degtorad(ani*2))*speed/4);
//neck
d3d_draw_cylinder(-3,-3,+64-2, +3,+3,+64+8, tex,1,1, 1,16);
//head
d3d_draw_ellipsoid(-4,-4,+64+3, +5,+4,+64+12, tex,1,1,16);
d3d_draw_ellipsoid(-6,-5,+64+4, +5,+5,+64+16, tex,1,1,16);
d3d_transform_set_identity();
//shift arms
shift1=10;
aa=45; //angle a
ab=30; //angle b
//arm upper (side A)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z+sin(degtorad(ani))*aa);
d3d_transform_add_rotation_x(-15);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+64-4+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-2,-2+shift1,-16, +2,+3+shift1,-2, tex,1,1, 1,16);
d3d_draw_ellipsoid(-4,-4+shift1,-8, +4,+4+shift1,2, tex,1,1,16);
d3d_transform_set_identity();
//arm lower (side A)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z*1.3+sin(degtorad(ani))*ab+30);
d3d_transform_add_translation(0,0,-16);
d3d_transform_add_rotation_y(z+sin(degtorad(ani))*aa);
d3d_transform_add_rotation_x(-15);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+64-4+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-2,-2+shift1,-12, +2,+2+shift1,0, tex,1,1, 1,16);
d3d_draw_ellipsoid(-3,-2+shift1,-16, +3,+2+shift1,-11, tex,1,1,16);
d3d_transform_set_identity();
//arm upper (side B)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z+sin(degtorad(-ani))*aa);
d3d_transform_add_rotation_x(15);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+64-4+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-2,-3-shift1,-16, +2,+2-shift1,0, tex,1,1, 1,16);
d3d_draw_ellipsoid(-4,-4-shift1,-8, +4,+4-shift1,2, tex,1,1,16);
d3d_transform_set_identity();
//arm lower (side B)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z*1.3+sin(degtorad(-ani))*ab+30);
d3d_transform_add_translation(0,0,-16);
d3d_transform_add_rotation_y(z+sin(degtorad(-ani))*aa);
d3d_transform_add_rotation_x(15);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+64-4+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-2,-2-shift1,-12, +2,+2-shift1,0, tex,1,1, 1,16);
d3d_draw_ellipsoid(-3,-2-shift1,-16, +3,+2-shift1,-11, tex,1,1,16);
d3d_transform_set_identity();
//shift legs
shift2=6;
aa=45; //angle a
ab=30; //angle b
//leg upper (side A)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z-(sin(degtorad(ani))*aa));
d3d_transform_add_rotation_x(-5);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+32+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-4,-4+shift2,-16, +4,+4+shift2,4, tex,1,1, 1,16);
d3d_transform_set_identity();
//leg lower (side A)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(-z-(sin(degtorad(ani))*ab+30));
d3d_transform_add_translation(0,0,-16);
d3d_transform_add_rotation_y(z-(sin(degtorad(ani))*aa));
d3d_transform_add_rotation_x(-5);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+32+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-5,-5+shift2,-16, +5,+5+shift2,0, tex,1,1, 1,16);
d3d_draw_cylinder(-5,-5+shift2,-16, +10,+5+shift2,-12, tex,1,1, 1,16);
d3d_transform_set_identity();
//leg upper (side B)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(z-(sin(degtorad(-ani))*aa));
d3d_transform_add_rotation_x(5);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+32+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-4,-4-shift2,-16, +4,+4-shift2,4, tex,1,1, 1,16);
d3d_transform_set_identity();
//leg lower (side B)
d3d_transform_set_identity();
d3d_transform_add_rotation_y(-z-(sin(degtorad(-ani))*ab+30));
d3d_transform_add_translation(0,0,-16);
d3d_transform_add_rotation_y(z-(sin(degtorad(-ani))*aa));
d3d_transform_add_rotation_x(5);
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z+32+sin(degtorad(ani*2))*speed/4);
d3d_draw_cylinder(-5,-5-shift2,-16, +5,+5-shift2,0, tex,1,1, 1,16);
d3d_draw_cylinder(-5,-5-shift2,-16, +10,+5-shift2,-12, tex,1,1, 1,16);
d3d_transform_set_identity();
Esse vai ter o nome de: dra_Wall - Aqui vai criar a parede do jogo
- Código:
d3d_draw_block(x-32,y-32,0, x+32,y+32,128, tex,1,1);
Esse vai ter o nome de: dra_World - Aqui vai criar o mundo 3D
- Código:
px=obj_Character.x;
py=obj_Character.y;
d3d_set_lighting(0);
d3d_set_fog(0,c_black,256,1024); //use fog?
d3d_draw_ellipsoid(px-1024,py+1024,-1024, px+1024,py-1024,1024, background_get_texture(bac_Sky),1,1,16);
d3d_set_fog(true,c_black,256,1024); //use fog?
d3d_draw_floor(-2048,2048,0, 2048,-2048,0, background_get_texture(bac_Floor),32,32);
d3d_set_lighting(1);
Esse vai ter o nome de: ini_Camera
- Código:
d3d_start(); //go to 3d
d3d_set_perspective(true); //use perspective?
d3d_set_hidden(true); //remove hidden surfaces?
d3d_set_lighting(false); //use lighting?
draw_set_color(c_white); //drawing color
d3d_set_fog(true,c_black,256,1024); //use fog?
d3d_set_culling(true); //use culling?
d3d_set_shading(true); //smooth textures when lit?
texture_set_interpolation(true); //smooth pixels?
//set values
z=0;
zdirection=-30;
depth=8192;
d3d_set_lighting(1);
d3d_light_define_direction(0, -.5,.5,-1,c_red);
d3d_light_enable(0,1);
d3d_light_define_direction(1, .5,.5,-.5,c_red);
d3d_light_enable(1,1);
d3d_light_define_direction(2, 0,-1,0,c_silver);
d3d_light_enable(2,1);
//create instances
instance_create(x,y,obj_Character);
instance_create(0,0,obj_World);
Esse vai ter o nome de: ini_Character
- Código:
z=0;
friction=.1;
tex=background_get_texture(bac_Metal);
zspeed=0;
ani=0;
Esse vai ter o nome de: ini_Wall
- Código:
tex=background_get_texture(bac_Wall);
Esse vai ter o nome de: mot_Character
- Código:
//limit speed
if abs(speed)>16 then speed*=.98;
z+=zspeed;
zspeed-=.75;
if z<0 then {z=0;zspeed=0;}
- Pronto aqui acaba os Códigos;
- Agora vamos criar os objetos:
obj_Camera - Coloque a spr_Camera
obj_Character - Coloque a spr_Character
obj_World - Sem spr
obj_Wall - Coloque a spr_Wall
Agora vamos adicionar os Códigos:
Vá no obj_Camera. Add Evento Create e coloque execute script, não é execute pieco of code não é execute script. E coloque ini_Camera.
Add evento Step no obj_Camera dinovo, e coloque execute script con_Camera.
Add evento Draw no obj_Camera também, e coloque execute script dra_Camera.
Pronto Nossa Movimentação em 3D está pronta.
Agora vamos para o obj_Character:
Add um evento create nele e coloque também execute script ini_Character.
Add outro evento Step, nele vamos executar 3 tipos de códigos.
1º. Execute Script con_Character
2º. Execute Script mot_Character
3º. Execute Script ani_Character
Pronto agora vamos adicionar uma colisão com o obj_Wall - obj_Parede.
Coloque Execute Script col_CharacterWall.
Agora vamos criar o Personagem em 3D.
Add o Evento Draw nele e adicione Execute Script dra_Character.
Pronto nosso Personagem em 3D está criado.
Agora no obj_World adicione o evento Draw e Execute Script dra_World.
E o nosso mundo está tbm criado.
Agora a parte mais fácil a colisão.
Vai no obj_Wall add um Evento Create e Execute Script ini_Wall.
Add outro Evento Draw e Execute Script dra_Wall.
Pronto agora crie uma Room do Tam. 1024 Widht e 768 Height e na Opção Snap X: bote 64 e na Snap Y: bote 64 tbm.
Coloque os obj_Wall, quantos quiserem e o obj_Camera no meio da room ou em qualquer lugar.
E Pronto agora rode a room e pegou.
Uma Engine Pronta: http://www.4shared.com/file/G-rw-Pyz/Homen_Correndo_TUTORIAL_BY_CAR.html
DICAS:
Barra de Espaço Pula, setas do teclado mudam a posição da câmera e w,a,s,d, controla o personagem.
Barra de Espaço Pula, setas do teclado mudam a posição da câmera e w,a,s,d, controla o personagem.
Última edição por caradealho em Ter 23 Nov 2010, 13:53, editado 4 vez(es)
Re: Fazer Homen: Correr, Pular e Colisão com Objetos...
Omg! isso é 3d né? O.O
3d é meio dificil, alem de consumir muita memória..
--
coloca os créditos do criador ai, de onde ela foi tirada ;)
3d é meio dificil, alem de consumir muita memória..
--
coloca os créditos do criador ai, de onde ela foi tirada ;)
Re: Fazer Homen: Correr, Pular e Colisão com Objetos...
Se vocês conseguirem modelar o personagem vai ajudar muito.
Esse é um 3D Bem Pesado agora o Personagem não é Modelado com Textura só são Eslipses com Cilinder e Um Efeito de Sombra com o bac_Metal.
Esse é um 3D Bem Pesado agora o Personagem não é Modelado com Textura só são Eslipses com Cilinder e Um Efeito de Sombra com o bac_Metal.
Tópicos semelhantes
» como posso fazer colisão entre dois objetos
» Fazer o Personagem Correr
» Como fazer para correr
» Como fazer o personagem Andar,Correr
» Alguem me ajuda a Fazer meu personagem correr???
» Fazer o Personagem Correr
» Como fazer para correr
» Como fazer o personagem Andar,Correr
» Alguem me ajuda a Fazer meu personagem correr???
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|