Objeto definido [RESOLVIDO]

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Objeto definido [RESOLVIDO]

Mensagem por rafarubim em Seg 03 Out 2011, 21:51

Sempre tive esse problema mas nunca consegui resolver... Alguém pode ajudar?

É o seguinte: Vou criar um jogo com vários inimigos iguais, mas não consigo fazer ele perder vida. Esse é o código que uso, e é muito simples: (gastly_selvagem é o inimigo)

Código:
if attack=true
{
if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
with(gastly_selvagem)
{
vida-=1
}
}
}

if direction=0
{
if place_meeting(x+5,y,gastly_selvagem)
{
with(gastly_selvagem)
{
vida-=1
}
}
}

if direction=90
{
if place_meeting(x,y-5,gastly_selvagem)
{
with(gastly_selvagem)
{
vida-=1
}
}
}

if direction=270
{
if place_meeting(x,y+5,gastly_selvagem)
{
with(gastly_selvagem)
{
vida-=1
}
}
}
}

A solução que arrangei foi essa, mas não deu certo: (vou postar apenas parte do código)

Código:
if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
inimigo=gastly_selvagem
with(inimigo)
{
vida-=1
}
}
}

O que faço para que apenas o inimigo que esteja na posição (x-5,y) perca vida?


Última edição por rafarubim em Ter 04 Out 2011, 13:09, editado 1 vez(es)

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por CRP-Max em Seg 03 Out 2011, 22:00

Não seria mais fácil colocar um evento no inimigo e quando ele for atingido perder energia?
Mas neste caso, você esta definindo "todos" os objetos "gastly_selvagem" como inimigo, por isso que todos perdem energia.
Talvez isso possa ajudar.

......
if place_meeting(x-5,y,gastly_selvagem)
{
other.vida-=1;
}
.......

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por y_Tiago em Seg 03 Out 2011, 22:03

Código:
var i;
i=instance_postion(x-5,y,gastly_selvagem)
i.vida-=1

y_Tiago

Número de Mensagens : 149
Idade : 19
Data de inscrição : 13/10/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por rafarubim em Seg 03 Out 2011, 22:39

CRP-Max escreveu:Não seria mais fácil colocar um evento no inimigo e quando ele for atingido perder energia?
Mas neste caso, você esta definindo "todos" os objetos "gastly_selvagem" como inimigo, por isso que todos perdem energia.
Talvez isso possa ajudar.

......
if place_meeting(x-5,y,gastly_selvagem)
{
other.vida-=1;
}
.......
Na verdade não é um evento de colisão, mas quero que ele perca vida se estiver em determinada posição.
@ Tiago> Não deu certo, por um momento achei que ia dar Sad
@EDIT> Eu usei assim:

Código:
if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
inimigo=instance_position(x-5,y,gastly_selvagem)
with(inimigo)
{
vida-=1
}
}
}

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por CRP-Max em Seg 03 Out 2011, 22:44

rafarubim escreveu:
Na verdade não é um evento de colisão, mas quero que ele perca vida se estiver em determinada posição.
@ Tiago> Não deu certo, por um momento achei que ia dar Sad
@EDIT> Eu usei assim:

Código:
if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
inimigo=instance_position(x-5,y,gastly_selvagem)
with(inimigo)
{
vida-=1
}
}
}
Você já tentou mudar as linhas no seu código da forma que eu mostrei?
Código:
if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
other.vida-=1
}
}

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por rafarubim em Seg 03 Out 2011, 22:48

Não adianta colocar other porque esse codigo ta no step, e não colisão, fora que vida é uma variável que eu crieientão não pode colocar other.vida.
Sad

EDIT:
O que eu quero saber é simplismente qual função eu uso para minha variável.
exemplo, se eu coloco:

ASSIM DARIA CERTO:
var objeto_que_quero;
objeto_que_quero=INSTANCE_CREATE(x+10,y,objeto_tal)
with(objeto_que_quero)
{
vida-=1
}

ASSIM NÃO DARIA CERTO:
var objeto_que_quero;
objeto_que_quero=PLACE_MEETING(x+10,y,objeto_tal)
with(objeto_que_quero)
{
vida-=1
}

Qual função uso já que place_meeting e instance_position não deram certo?

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por Mr.Brum em Ter 04 Out 2011, 02:29

Código:
if objeto_tal.x-objeto_que_quero.x==10 objeto_que_quero.vida-=1
De acordo com o código acima, seria isso ^

Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por Luiz A. Oliveira em Ter 04 Out 2011, 08:03

Simple and Easy!
Código:
i=instance_nearest(x,y,obj_inimigo)
if place_meeting(x,y,i)
{
i.vida-=1
}
Adapte isso ao seu código.
ATÉ+

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por saim em Ter 04 Out 2011, 11:31

O que você quer é simular um evento de colisão no step.
Seu problema é que você está usando um "with" e incluindo o objeto, não a instância do objeto.
Você precisa, dentro do step, dar um jeito de descobrir a intância do objeto e aplicar o código naquela instância.
Existem funções que te retornam a id da instância. instance_place é uma delas. O Alex FC tem um tutorial sobre essas funções, vou dar uma procurada e dou edit. Até lá, o código do luiz_100juizo deve funcionar (você só vai precisar alterar o valor de x, pra ser adaptado ao seu código).

PS: Isso não vai te ajudar por enquanto, mas "other" não é usado só em eventos de colisão.

Edit: Me enganei. O tutorial que eu estava lembrando é do Pedro Henrique (o Alex FC também tem alguns tutoriais de colisão, mas não vi as funções que você procura). Ele está aqui

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por rafarubim em Ter 04 Out 2011, 13:08

Obg pessoal, já descobri: eu usei tanto a instance_nearest quanto a instance_placement Smile
ficou assim:

if direction=180
{
if place_meeting(x-5,y,gastly_selvagem)
{
var inimigo;
inimigo=instance_place(x-5,y,gastly_selvagem)
with(inimigo)
vida-=1
}
}

rafarubim

Número de Mensagens : 65
Data de inscrição : 20/01/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por saim em Ter 04 Out 2011, 13:57

sugiro mudar um pouco, acho que desse jeito fica mais eficiente:
if direction=180
{
var inimigo;
inimigo=instance_place(x-5,y,gastly_selvagem)
if inimigo!=noone{
with(inimigo)
vida-=1
}
}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Objeto definido [RESOLVIDO]

Mensagem por Conteúdo patrocinado Hoje à(s) 11:44


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum