GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Ú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

Ir para baixo

correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty Fazer Homen: Correr, Pular e Colisão com Objetos...

Mensagem por caradealho Ter 23 Nov 2010, 01:00

GENTE EU CONSIGI MODELAR O BONECO SE VOCÊS QUISEREM VER EU POSTO A ENGINE ATUALIZADA
RUNNING MAN EXAMPLE
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:
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Sprcamera - spr_Camera - Aqui vai ser a Câmera
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Sprcharacter - spr_Character - Aqui vai ser o personagem
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Sprblock - spr_Wall - Aqui vai ser a parede
As Texturas do Mundo 3D - Crie Backgrounds como:
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Bacfloor - Coloque o nome de bac_Floor
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Bacmetal - Coloque o nome de bac_Metal
correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Bacsky - 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;
    }
Esse vai ter o nome de: col_CharacterWall - Colisão com o obj_Wall
Código:
//movendo-se ao obj_solido(0);
speed=0;
x=xprevious;
y=yprevious;
Essa vai ter o nome de: con_Camera
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);
Essa vai ter o nome de: dra_Character - Aqui vai criar o personagem; Código pra caramba:
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.


Última edição por caradealho em Ter 23 Nov 2010, 13:53, editado 4 vez(es)
caradealho
caradealho

Data de inscrição : 28/10/2010
Reputação : 3
Número de Mensagens : 164
Prêmios : correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://caradealho.blogspot.com/

Ir para o topo Ir para baixo

correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty Re: Fazer Homen: Correr, Pular e Colisão com Objetos...

Mensagem por Isaias Ter 23 Nov 2010, 01:08

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 ;)
Isaias
Isaias

Data de inscrição : 16/08/2008
Reputação : 3
Número de Mensagens : 374
Prêmios : correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://isaiasramos.com

Ir para o topo Ir para baixo

correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty Re: Fazer Homen: Correr, Pular e Colisão com Objetos...

Mensagem por caradealho Ter 23 Nov 2010, 01:12

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.
caradealho
caradealho

Data de inscrição : 28/10/2010
Reputação : 3
Número de Mensagens : 164
Prêmios : correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://caradealho.blogspot.com/

Ir para o topo Ir para baixo

correr - Fazer Homen: Correr, Pular e Colisão com Objetos... Empty Re: Fazer Homen: Correr, Pular e Colisão com Objetos...

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos