Conectar-se
Quem está conectado
19 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 19 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 17/06/2014
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 34

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Problema com distance_to_object

em Sab 13 Set 2014, 12:39
Reputação da mensagem: 100% (1 votos)
Eae galera! Very Happy estava procurando um tutorial sobre IA de plataforma no forum mas não tenho acesso pra visualizar :O por isso que decidi criar o meu code Very Happy com a minha inteligencia so que to tendo problemas huehue
Bom é o seguinte criei um inimigo, que agora é um quadrado vermelho porque ainda n tenho sprite (é pra ser um zumbi), e quis começar com a animação dele tipo se ele estiver virado pra esquerda o sprite do inimigo vai ser inimigo_pra_esquerda algo do tipo mushahshasha ai depois eu quis colocar que quando o inimigo estiver perto do player ele vai mudar de sprite e vai estar atacando e tirando vida do player mas aconteceu um erro... Vou postar uma imagem
imagem do erro:
[img][/img]
quando eu começo o jogo mesmo que o inimigo estiver longe de mim eu perco 20 de vida e quando chego a 0 restart o jogo :/ eu queria que quando o player, ou o inimigo, estivesse bem perto tipo uns 3 pixel ou sla, o inimigo atacasse o player e perdia vida só uma vez por animação ou se tem como por um tempo seria melhor. vou colocar aqui os codes que eu fiz
No inimigo1_obj > Create > code
Código:
global.vida_inimigo=100
atacando=0
Step:
Código:
if place_free(x,y+1){
gravity = 1;
no_chao = false;}
else{
gravity = 0;
no_chao = true;
}

if inimigo1_obj && no_chao=1 && atacando=0
direction=180
speed=0 {
sprite_index=inimigo1_par_esq
}
if inimigo1_obj && no_chao=1 && atacando=0
direction=0
speed=0 {
sprite_index=inimigo1_par_dir
}
if inimigo1_obj && no_chao=1 && atacando=0
direction=0
speed=4 {
sprite_index=inimigo1_and_dir
}
if inimigo1_obj && no_chao=1 && atacando=0
direction=180
speed=4 {
sprite_index=inimigo1_and_esq
}
No Step novamente
Código:
if distance_to_object(obj_player) = 1
direction=0
{
atacando=1
sprite_index=inimigo1_atk_dir
global.health-=20
if global.health==0
{
game_restart ()
}
}
if distance_to_object(obj_player) = 1
direction=180
{
atacando=1
global.health-=20
if global.health==0
{
game_restart ()
}
}
Colisão com a bala
Código:
global.vida_inimigo-=15
if global.vida_inimigo==0
instance_destroy ()
VLW Very Happy
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/04/2013
Número de Mensagens : 354
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 40

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema com distance_to_object

em Sab 13 Set 2014, 12:51
Código:

if distance_to_object(obj_player) <= 4
direction=0
{
atacando=1
sprite_index=inimigo1_atk_dir
if global.health==0
{
game_restart ()
}
}
if distance_to_object(obj_player) <= 4
direction=180
{
atacando=1
if global.health==0
{
game_restart ()
}
}
if atacando=1
{
global.health-=20
}
if distance_to_object(obj_player) >=3
{
atacando=0
}
avatar
Data de inscrição : 16/05/2014
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://indiemakersbr.forumeiros.com

Re: Problema com distance_to_object

em Sab 13 Set 2014, 13:04
você pode usar o que o velox falou, e usar o seguinte codigo tambem, só colocar isto no inimigo em step
code1:


if obj_player.x< x
{
sprite_index=inimigo1_andando_esq
}
//x>x
if obj_player.x>x
{
sprite_index=inimigo1_andando_dir
}
isto fara com que ele fique com a imagem em direção ao player, mais pode colocar isto com distance tambem, para não ficar sempre na posição do player:
code2:
if distance_to_object(obj_player)<=100
{
//xif obj_player.x< x
{
sprite_index=inimigo1_andando_esq
}
//x>x
if obj_player.x>x
{
sprite_index=inimigo1_andando_dir
}
}


Última edição por Susano em Sab 13 Set 2014, 13:10, editado 1 vez(es)
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 51

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

Re: Problema com distance_to_object

em Sab 13 Set 2014, 13:08
Sinceramente, mesmo com seu código já era pra estar funcionando, não achei nenhum erro que causasse o que você falou. Só achei duas coisas estranhas:

Isso:

if distance_to_object(obj_player) = 1
direction=0
{...

Não deveria estar assim?:

if distance_to_object(obj_player) = 1
{
direction=0
...

Talvez esteja causando o erro, não sei. Outra coisa é que você não colocou uma condição pra variável "atacando" voltar a ser 0. Não sei se essas coisas estão prejudicando algo, mas não notei nada demais além disso.
avatar
Ranking : Nota D
Notas recebidas : D + D
Data de inscrição : 06/04/2012
Número de Mensagens : 682
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 42

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema com distance_to_object

em Sab 13 Set 2014, 13:18
O distance_to_object tem que usar o sinal < ou > exemplo:
Código:

if distance_to_object(obj_player)<300//Se  a distancia do obj_player for menor que 300
{
}

Espero ter ajudado flw
avatar
Data de inscrição : 17/06/2014
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 34

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema com distance_to_object

em Sab 13 Set 2014, 14:09
HUEHUE Os 4 n foi, matheus o que vc disse ta certo mas n resolveu o problema kkkk Susano vc falou outra coisa tmb kkk Velox n mudou nada :/ ta mesmo erro, e Willcraft2 eu ja tentei com >, <, =, >=,<= n foram nenhum deles :S
avatar
Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 51

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.tutoriaisgamemaker.com.br

Re: Problema com distance_to_object

em Sab 13 Set 2014, 14:50
Por acaso você definiu pra global.vida começar maior que 0? Confere também se você não ta usando "parent" obj_player no monstro. Também da uma olhada na origem dos seus sprites, pra ver se a origem deles não estão próximas (fora do desenho).

Esses códigos que você colocou só tiram sua vida se o monstro estiver perto, então não faz sentido você estar morrendo de longe. Se nada der certo, reescreva o código todo... tem muita coisa errada, igual disse na última postagem, que acredito que possa estar atrapalhando o funcionamento do "if".

Tipo esse:

if inimigo1_obj && no_chao=1 && atacando=0
direction=180
speed=0 {
sprite_index=inimigo1_par_esq
}

E dá uma revisada no código, não vejo porquê ter mais que um código desse:

if global.health==0
{
game_restart ()
}

E nem vejo motivo pra ele estar dentro de outro if.
avatar
Data de inscrição : 17/06/2014
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 34

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema com distance_to_object

em Sab 13 Set 2014, 15:31
Ja fiz isso não mudou nada ... alguem mais pode ajudar?
Conteúdo patrocinado

Re: Problema com distance_to_object

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum