Duvida muito simples,mas não entra na minha cabeça

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

Duvida muito simples,mas não entra na minha cabeça

Mensagem por DiegoBr em Sab 11 Fev 2012, 15:45

Bom dia gente Very Happy
Bom,sou um membro muito antigo desse fórum,ja faz dois anos,estou muito avançado em programação no game maker jah.
Olhei muitos tópicos de perguntas e respotas e inclusive tutoriais,ví que quase todos eu sei resolver,não respondi por que seriam muitos e eu to com preguiça kkk Rolling Eyes
Mas bem ,tem algumas coisas que não ficam direito,já fiz muitos jogos,e estou cansando com uma coisa que está me incomodando.
Prestem atenção ,por que se não vocês não irão entender:
1 - Eu criei um objeto que controla todas as variaveis globais por exemplo :
Código:
global.sexo
2 - Uma das variaves que coloquei no Game Start do Obj_Controler
Foi Esta :
Código:
Global.HP =100
Ela significa Vida do Obj_Player,até aí problema nenhum .

3 - O Grande Problema é que,no Step do Obj_Player, foi posto :
Código:
if place_meeting(x,y,Obj_Inimigo)
{
global.HP -=10
}
Quem não sabe,place_meeting é um código que você utiliza para substituir a Colisão !
Ok agora designei que o ao colidir com o Obj_Inimigo o Hp irá descer 10% ok.

4 - O Problema é que criei outro objeto (Obj_Def1),que ele faz a animação do player levando um golpe,até aí tudo bem kkk.

5 - O problema realmente é que ja tentei no step do Obj_Player por :
Código:
if global.Hp -=10
{
instance_changed(Obj_Def1,1)
}
E isso não deu certo nunca e nunca vai dar,alguém sabe uma solução para isso ? Sad
Quem não intendeu a pergunta é só tentar intender o código no item 5,e eu não vou explicar interpretem ae Very Happy Happy
A e quem for me dar uma solução com variaveis,não utilize mais de duas por favor,já tenho muitaaas aqui !
Se eu descobrir a solução eu posto/edito para vocês Happy

DiegoBr

Ranking : Nota D
Número de Mensagens : 127
Data de inscrição : 11/03/2011
Notas recebidas : D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.diogost.no.comunidades.net

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por Luan Maia em Sab 11 Fev 2012, 15:56

Se entendi, é só colocar:
Código:

instance_changed(Obj_Def1,1)

No meio da decisão:
Código:

if place_meeting(x,y,Obj_Inimigo)
{
    global.HP -=10
}

Ficando assim:
Código:

if place_meeting(x,y,Obj_Inimigo)
{
   global.HP -= 10;
   instance_changed(Obj_Def1,1);
}

Acho que é isso!
flw

Luan Maia

Ranking : Sem avaliações
Número de Mensagens : 399
Idade : 20
Data de inscrição : 01/07/2010
Notas recebidas : D+C+C+D
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://blogluanmaia.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por Lucas 5293 em Sab 11 Fev 2012, 15:57

DiegoBr escreveu:Bom dia gente Very Happy
Bom,sou um membro muito antigo desse fórum,ja faz dois anos
Dois anos?
A sua data de inscrição foi: 11/03/2011
Que eu saiba nem completou um ano ainda...

DiegoBr escreveu:estou muito avançado em programação no game maker jah.
Então por que fez essa pergunta boba...

Bom a sua pergunta:

Esse código esta totalmente errado:
Código:
if global.Hp -=10
{
instance_changed(Obj_Def1,1)
}
Como o compilador vai checar um valor diminuindo o mesmo.
Delete ele.

E substituem aquele do item 3 para esse:

Código:
if place_meeting(x,y,Obj_Inimigo)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}

O.o Cara era só unir os códigos

Lucas 5293

Ranking : Nota C
Número de Mensagens : 695
Idade : 18
Data de inscrição : 10/12/2010
Notas recebidas : C-D-B-B-B-C-C-C
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://dopxgames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por gustavo ferreira em Sab 11 Fev 2012, 16:07

e ai cara blz na minha opnião você deveria fazer uma variavel que checa quando o player perde vida tipo, quando ele perde vida a variavel fica verdadeira e logo em seguida fica falsa, outra coisa eu acho que se é sá uma mudança do sprite num tem necessidade de mudar o objeto mude apenas a sprite é muito mais simples tem um tutorial acho que do Willy sobre troca de sprites da uma procurada. flow

gustavo ferreira

Ranking : Nota C
Número de Mensagens : 470
Idade : 22
Data de inscrição : 03/12/2010
Notas recebidas : C+C+C+C
Reputação : 28
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por vinians em Sab 11 Fev 2012, 16:51

Este seu código:
Código:

if global.Hp -=10
{
instance_changed(Obj_Def1,1)
}
Não esta correto. Isso não é linguagem C heheeh.
Quando usar IF use operadores de comparação como == ou (=) ou < ou etc etc. Neste comando você "estaria" apenas subtraindo 10 da variavel global.Hp.
Flws

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por DiegoBr em Dom 12 Fev 2012, 00:31

Aff gente,vocês acham que este código bobo eu já não tentei?
Código:
if place_meeting(x,y,Obj_Inimigo)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
Isso dá certo sim,não vou negar,eu usava isso em outro jogo que fiz,só que o problema é que são uns 20 objetos para cada personagem,eu quero poupar trabalho e ir direito ao assunto,nestes outros jogos que usei exatamente um código assim no final resulta em 300,400,600 linhas,e quando algo dá errado ,tenho que lá procurar no meio dessas linhas.
Iria ficar mais ou menos assim ó :
Código:
if place_meeting(x,y,Obj_Inimigo)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk1)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk2)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk3)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk4)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk5)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
E por aí vai ! Pois existem uns 50 inimigos kkkk
Eu até Poderia reduzir este código deste geito(em seguida) ,mas mesmo assim ficaria muita coisa para minha cabeçinha que já tem que prestar atenção em muitas coisas para não dar Bug

Código:
if place_meeting(x,y,Obj_Inimigo){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk1){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk2){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk3){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk4){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk5){global.HP -=10instance_changed(Obj_Def1,1)}
E por aí vai ! Pois existem uns 50 inimigos kkkk
E gente você me interpretaram mal,eu não usei aquele código besta do
Código:
if global.HP -=10
eu só testei umas 2x e não deu certo Sad
Alguém tem algum geito de agilizar?
E meu amigo Gustavo Ferreira isso tenho certeza absoluta que o que você falou dá certo mas eu tenho muita variavel já no meu projeto aqui,e eu teria mais uma agora.
Vou te dar um exemplinho Happy
Código:
///////////////////////Configurações
global.hp=100
global.mp=100
global.exp1=0
global.textlv=0
global.expok=false
global.finaleval=false
global.status=false
global.money=0
global.superitem=0
global.cpersonagem1=false
global.cpersonagem2=false
global.cpersonagem3=false
global.cpersonagem4=false
Entre outras em outros objetos Sad


Última edição por DiegoBr em Dom 12 Fev 2012, 00:34, editado 1 vez(es) (Razão : Sou gay)

DiegoBr

Ranking : Nota D
Número de Mensagens : 127
Data de inscrição : 11/03/2011
Notas recebidas : D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.diogost.no.comunidades.net

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por saim em Dom 12 Fev 2012, 00:49

DiegoBr escreveu:Aff
Não use "aff" a menos que você esteja cansado e irritado. É essa a impressão que eu tenho quando leio "aff" - o cara está cansado e a ponto de perder a paciência.

DiegoBr escreveu: o problema é que são uns 20 objetos para cada personagem,eu quero poupar trabalho e ir direito ao assunto,nestes outros jogos que usei exatamente um código assim no final resulta em 300,400,600 linhas,e quando algo dá errado ,tenho que lá procurar no meio dessas linhas.
Iria ficar mais ou menos assim ó :
Código:
if place_meeting(x,y,Obj_Inimigo)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk1)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk2)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk3)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk4)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
if place_meeting(x,y,Obj_Inimigo_atk5)
{
global.HP -=10
instance_changed(Obj_Def1,1)
}
E por aí vai ! Pois existem uns 50 inimigos kkkk
Já tentou usar parents?

Aliás, deixa eu dar uma destacada nisso aqui, porque é a resposta que você está procurando.

JÁ TENTOU USAR PARENTS?

DiegoBr escreveu:Eu até Poderia reduzir este código deste geito(em seguida) ,mas mesmo assim ficaria muita coisa para minha cabeçinha que já tem que prestar atenção em muitas coisas para não dar Bug

Código:
if place_meeting(x,y,Obj_Inimigo){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk1){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk2){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk3){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk4){global.HP -=10instance_changed(Obj_Def1,1)}
if place_meeting(x,y,Obj_Inimigo_atk5){global.HP -=10instance_changed(Obj_Def1,1)}
E por aí vai ! Pois existem uns 50 inimigos kkkk
isso não é reduzir, é eliminar uma quebra de linha. Pro processador - que deveria ser a sua preocupação - não faz diferença. Ou melhor, se você fizer direito, não faz diferença, mas você esqueceu de usar ";".

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

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por DiegoBr em Dom 12 Fev 2012, 02:20

Caro amigo Sam,acho que não é necessario eu usar ; , pois estou usando este código aí,e está dando certo O.o.
Mas se alguém tiver outra maneira aí,eu agradeço por que ta muito trabalhoso Sad Happy

DiegoBr

Ranking : Nota D
Número de Mensagens : 127
Data de inscrição : 11/03/2011
Notas recebidas : D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.diogost.no.comunidades.net

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por vinians em Dom 12 Fev 2012, 02:59

Pode fazer assim:
Primeiro crie um objeto genérico. Por exemplo, pode chama-lo de obj_inimigo.
Depois vá em cada objeto Obj_Inimigo_atk1, Obj_Inimigo_atk2 etc e defina a propriedade Parent para obj_inimigo (que vc acabou de criar). Pronto. Agora substitua o seu código por:
Código:

in = instance_place(x, y, obj_inimigo);
if (in != noone)
{
      global.HP -=10;
      instance_changed(Obj_Def1,1);
}
Com isso você pode ter quantos inimigos quizer e o código é o mesmo. Esse é um outro jeito de usar Parents que pouca gente usa.
Flws


vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por DiegoBr em Dom 12 Fev 2012, 15:53

Vinians você pode me dizer a função do parents? Por que eu quase nunca usei na vida ? ;D

DiegoBr

Ranking : Nota D
Número de Mensagens : 127
Data de inscrição : 11/03/2011
Notas recebidas : D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.diogost.no.comunidades.net

Voltar ao Topo Ir em baixo

Re: Duvida muito simples,mas não entra na minha cabeça

Mensagem por Conteúdo patrocinado Hoje à(s) 05:41


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