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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» 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

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» 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

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Preciso recomeçar a ação do goleiro!

3 participantes

Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Preciso recomeçar a ação do goleiro!

Mensagem por Kleber Sampaio Correia Qua 08 Ago 2012, 13:01

Estou fazendo um jogo de futebol baseado a engine de Thyago que tava fazendo o Mega Soccer!
Mas estou com problema porque já pois uma AI diferenciada pro goleiro, mas ele pega a bola e chuta, e depois ele fica indo para vários lados como se fosse rodando na área do gol, como se ele estivesse seguindo pra onde a bola foi. O jogo começa com os goleiros parados, eles só se movem quando a bola está perto, mas depois não param mais, ficam rodando, girando, dando curvas andando. Eu queria que depois de eles chutarem a bola, ele parece de se mover, até que a bola de novo chegasse perto e virasse um ciclo de ele só se movimentar quando a bola chegar perto,chutar e depois voltar pro lugar parado.
Kleber Sampaio Correia
Kleber Sampaio Correia

Data de inscrição : 11/07/2011
Reputação : 0
Número de Mensagens : 13
Prêmios : Preciso recomeçar a ação do goleiro! 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

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por theguitarmester Qua 08 Ago 2012, 13:41

mostre os códigos usados, para fazer as açoes escritas, mostre tambem os códigos que envolve os ângulos.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2209
Prêmios : Preciso recomeçar a ação do goleiro! Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por Kleber Sampaio Correia Qua 08 Ago 2012, 14:10

Está em Script usado pelo step
Código:

//mais proximo da bola
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(distance_to_object(obj_bola)<global.p1_mais_proximo_distancia){
global.p1_mais_proximo=object_index;
}
if(global.p1_mais_proximo=object_index){
global.p1_mais_proximo_distancia=distance_to_object(obj_bola);}
if(global.com_a_bola=object_index){velocidade=4.5}else{velocidade=5.5};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//movimentacao
//movimenta??o basica sem a bola
if((global.p1_mais_proximo!=object_index ) or global.tiro_de_meta=2){
if(global.tiro_de_meta=2){xx[2]=xx[1]};else{
if (distance_to_point(x,yy[2])<3 and goleiro=false){
yy[2]=min(1300,max(100, yy[1]+irandom_range(-200,200)))
};
if(distance_to_point(xx[2],y)<3 and lateral =false and goleiro=false and atacante=false){
xx[2]=min(2000,((xx[1])+250+
irandom_range(-100,100)))
};
if (atacante=true and distance_to_point(xx[2],y)<3){xx[2]=min(2000,max(xx[1]+800,obj_bola.x)+irandom_range(-100,100))};
if (lateral=true and global.com_a_bola=object_index=false){xx[2]=min(2000,obj_bola.x);yy[2]=yy[1] };
}
}
else
{
if(global.com_a_bola!=object_index
 and ((goleiro=false and global.tiro_de_meta=0)or (goleiro=true and global.tiro_de_meta=1))){
xx[2]=max(100,min(2100,obj_bola.x))
yy[2]= max(0,min(1400,obj_bola.y));
}

}
//dominando a bola
if(place_meeting(x,y,obj_bola)
and obj_bola.altura<2
and obj_bola.dominavel=true
and global.com_a_bola=object_index=false){
 global.recptor=object_index;
with(all){
drible=0;
if variable_local_exists('player'){if(player=2){ um_dois=false}}}
if(obj_bola.um_dois=noone){with(all){if variable_local_exists('player'){ um_dois=false}}}
if(global.com_a_bola=obj_bola){
obj_bola.dominavel=false;
obj_bola.tempo=40;
obj_bola.speed=0;
};
if(obj_bola.um_dois=object_index){
obj_bola.um_dois=false;
}
obj_bola.play=player;
global.com_a_bola=object_index;
};
//corte seco

if(driblado>0){driblado-=1};
if(drible>0){drible-=1;xx[2]=obj_bola.x;yy[2]=obj_bola.y};
if(global.com_a_bola=object_index){

if(!place_free(x+lengthdir_x(100,direction),y+lengthdir_y(100,direction))){
if (!place_free(x+lengthdir_x(100,direction+45),y+lengthdir_y(100,direction+45))){
drible=150;
with(all){if(variable_local_exists('player')){
if(player=2 and distance_to_object(obj_bola)<=100){
driblado=50;}}
}
global.com_a_bola=obj_bola;
direction-=45;
obj_bola.direction=direction;
obj_bola.speed=7.5;}
//
{
if (!place_free(x+lengthdir_x(100,direction-45),y+lengthdir_y(100,direction-45))){
drible=150;
with(all){if(variable_local_exists('player')){
if(player=2 and distance_to_object(obj_bola)<=100){
driblado=30;}}
}
global.com_a_bola=obj_bola;
direction+=45;
obj_bola.direction=direction;
obj_bola.speed=7.5;}
}

}}

//estou com a bola,vou avan?ar
if((global.com_a_bola=object_index and goleiro=false)
or(um_dois=true and goleiro=false))
and (drible=0)
{global.recptor=obj_controle;
xx[2]=min(2100,x+100);
yy[2]=y;
};
//estou marcado
if(distance_to_object(global.p2_mais_proximo)<44 and global.com_a_bola=object_index){
marcado=true;
}else{
marcado=false;
}
/////////////////////////////////////////////////////////////////{
//para quem passar a bola?
a=0;
while(recptor.x<x-200 or recptor=object_index)and a<100{
a+=1;
recptor=choose(obj_p1_2,obj_p1_3,obj_p1_4,obj_p1_5,obj_p1_6,obj_p1_7,obj_p1_8,obj_p1_9,obj_p1_10,obj_p1_11)}
//chute
chute=irandom(distance_to_point(2100,700))

if(global.com_a_bola=object_index and chute<20 and x>1600){
direcao_do_chute=point_direction(x,y,2200,irandom_range(450,950))
obj_bola.dominavel=false;
obj_bola.tempo=5;
global.com_a_bola=obj_bola;
obj_bola.direction=direcao_do_chute;
obj_bola.speed=30;
global.recptor=obj_controle;
}

//passe
if(global.com_a_bola=object_index and (
distance_to_object(recptor)>100 and
recptor.x+300>x and
(
(marcado=true)
or(irandom(room_speed*15)<=(volume_de_passes))
or(lateral=true and x>1900)
or(obj_bola.um_dois>0)
)
or
(
  (goleiro=true)
or(global.lateral=2)
or(global.inicio=false)
or(global.gol=2)
)
))
{
with(all){
xx[2]=x;
yy[2]=y;}
global.gol=0;
global.inicio=true;
//um dois

if(irandom(10)<=volume_de_um_dois)
{
if(obj_bola.um_dois=noone)
{
if(recptor.x>x-150 and recptor.x<x+300
and(max(y,recptor.y)-min(y,recptor.y))<600
and (distance_to_object(recptor)>60)
){
obj_bola.um_dois=object_index;
um_dois=true;}
}
else{
if(obj_bola.um_dois.player=1)
{recptor=obj_bola.um_dois;}
}
}
/////////////////////////////
global.com_a_bola=obj_bola;
global.recptor=recptor;
scr_bola_alta();
with(obj_bola){
dominavel=false;
tempo=5;
global.lateral=false;
global.tiro_de_meta=0;
speed=round(max(16,min(26,distance_to_object(global.recptor)/20)))
if(global.recptor=um_dois){
//alvo em movimento
ii=0;
tempo_chegada=10;
a=0;
while(ii<tempo_chegada*2 )and a<100{
ii+=1;a+=1;

tempo_chegada=distance_to_point(global.recptor.x+ii,global.recptor.y)/speed
}
direction=point_direction(x,y,min(2100,global.recptor.x+(ii*2)),global.recptor.y);
obj_bola.um_dois=noone;
}
else
{
direction=point_direction(obj_bola.x,obj_bola.y,global.recptor.x,global.recptor.y);
}
};

recptor=object_index;
};

//////////////////////////////////////////////////////////////////}
if(
((global.recptor=object_index and um_dois=false)
and global.com_a_bola=object_index=false)and drible=0)
or(global.lateral=true and obj_bola.play=1 and distance_to_object(obj_bola)<100 )
or(global.inicio=false and global.p1_mais_proximo!=object_index)
or(global.gol=1)
or(global.gol=2 and global.p1_mais_proximo!=object_index)
or driblado>0
{exit}
{
{
mp_potential_step(xx[2],yy[2],velocidade,0)
}
};

e outro step sem estar em script

Código:

if distance_to_object(obj_bola)<50{direction=point_direction(x,y,obj_bola.x,obj_bola.y)speed=7.5}
Kleber Sampaio Correia
Kleber Sampaio Correia

Data de inscrição : 11/07/2011
Reputação : 0
Número de Mensagens : 13
Prêmios : Preciso recomeçar a ação do goleiro! 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

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por un00brn Qua 08 Ago 2012, 15:44

Explique o que cada variável dessa significa, pq, Um script desse tamanho sem comentário sobre as variáveis fica difícil! Foi você que criou esse script?
un00brn
un00brn

Data de inscrição : 18/06/2012
Reputação : 7
Número de Mensagens : 117
Prêmios : Preciso recomeçar a ação do goleiro! 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://www.djurielrn.blogspot.com

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por Kleber Sampaio Correia Qua 08 Ago 2012, 23:00

Não precisa estudar o código, eu só preciso saber o que usar para acabar uma ação e começar outra. Exemplo: essa ação toda começa com o goleiro parado, quando ele vê a bola chegando ele fica se mexendo para tentar pega-la, mas depois de pega-la e chuta-la ele continua girando. Eu queria que ele voltasse pro 0, para ficar parado esperando a bola chegar perto outra vez.

Essa é a parte que ele vê a bola chegando ou de longe e fica rodando.
Código:

//alvo em movimento
ii=0;
tempo_chegada=10;
a=0;
while(ii<tempo_chegada*2 )and a<100{
ii+=1;a+=1;

tempo_chegada=distance_to_point(global.recptor.x+ii,global.recptor.y)/speed
}
direction=point_direction(x,y,min(2100,global.recptor.x+(ii*2)),global.recptor.y);
obj_bola.um_dois=noone;
}
else
{
direction=point_direction(obj_bola.x,obj_bola.y,global.recptor.x,global.recptor.y);
}
};

recptor=object_index;
};
Kleber Sampaio Correia
Kleber Sampaio Correia

Data de inscrição : 11/07/2011
Reputação : 0
Número de Mensagens : 13
Prêmios : Preciso recomeçar a ação do goleiro! 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

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por Kleber Sampaio Correia Qua 08 Ago 2012, 23:00

Usa o que, else, while, with?
ou algum jeito no drag and drop?
Kleber Sampaio Correia
Kleber Sampaio Correia

Data de inscrição : 11/07/2011
Reputação : 0
Número de Mensagens : 13
Prêmios : Preciso recomeçar a ação do goleiro! 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

Ir para o topo Ir para baixo

Preciso recomeçar a ação do goleiro! Empty Re: Preciso recomeçar a ação do goleiro!

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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