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

ReisBlender

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/03/2011
Número de Mensagens : 127
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.diogost.no.comunidades.net

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

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
Ranking : Sem avaliações
Notas recebidas : D+C+C+D
Data de inscrição : 01/07/2010
Número de Mensagens : 399
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://blogluanmaia.blogspot.com.br/

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

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
avatar
Ranking : Nota C
Notas recebidas : C-D-B-B-B-C-C-C
Data de inscrição : 10/12/2010
Número de Mensagens : 695
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://dopxgames.blogspot.com

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

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
avatar
Ranking : Nota C
Notas recebidas : C+C+C+C
Data de inscrição : 03/12/2010
Número de Mensagens : 470
Insígnias de JAM :

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

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

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

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
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

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

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
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/03/2011
Número de Mensagens : 127
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.diogost.no.comunidades.net

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

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)
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

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

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 ";".
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/03/2011
Número de Mensagens : 127
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.diogost.no.comunidades.net

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

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
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

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

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

avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/03/2011
Número de Mensagens : 127
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.diogost.no.comunidades.net

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

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