Entrar
Tópicos semelhantes
Procurar
Últimos assuntos
» Ideia: MMFMakers, do zeropor mediamaker Qua 26 maio 2021, 12:28
» [Flash] Haunt the house
por mediamaker Sáb 19 Set 2020, 16:47
» Como a criar passo a passo engine de Movimento Grid com colisão (tipo Bomberman) completo usadno extensão Array?
por mediamaker Sex 15 Set 2017, 14:19
» CF2.5 -> 26 reais na steam
por Matheus290 Ter 22 Dez 2015, 17:52
» Aplicação com Editbox não tá rodando online
por Matheus290 Sáb 19 Set 2015, 01:38
» A Guilda continua!!!! "Âncora Team" (novo nome)
por weliowl7 Qua 16 Set 2015, 01:52
» Sub-application e Inventario
por majorcorps Dom 23 Ago 2015, 13:11
» Efeito de string
por majorcorps Sáb 22 Ago 2015, 19:55
» [PC] Pitiri 1997
por Matheus290 Sáb 20 Jun 2015, 17:10
» Teclado virtual com Edit Box
por mediamaker Sáb 20 Jun 2015, 14:10
Quem está conectado?
Há 34 usuários online :: 0 registrados, 0 invisíveis e 34 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 251 em Ter 26 Out 2021, 22:21
Estatísticas
Temos 256 usuários registradosO último membro registrado é Sitydistta
Os nossos membros postaram um total de 5268 mensagens em 575 assuntos
Como corrijo esse bug?
+2
Afonker
Sonic_BR
6 participantes
Fusion Makers :: Geral :: Dúvidas
Página 1 de 1
Como corrijo esse bug?
Eae gente o/
Bem,eu comecei um novo projeto secreto (só num vou contar a história C= ) e eu conseguir fazer uma I.A simples usando o PMO (Platform Moviment Object).O inimigo fica te seguindo e quando ele chega perto de você,ele para.Coloquei 1 detector de 32 de altura e 10 de largura (o detector fica da "cintura" para baixo do inimigo.O inimigo tem 64 de altura).Esse detector serve para fazer o inimigo pular algum bloco que esteja na frente dele.Quando esse detector sobrepõe algum bloco,o personagem pula.Bem,eu dupliquei e clonei o inimigo (coloquei os dois no mesmo grupo),e dupliquei esse detector (no caso ficou dois inimigos e dois detectores),mas ainda continua o erro: 1 Dos inimigos fica parado e o outro fica normal te seguindo (eu programei para que se o X do player for maior que o do inimigo,ele vai pra frente,se for menor,ele vai pra trás);mas quando você fica entre os dois (1 fica na sua frente e outro atras de você) os 2 detectores vai para o inimigo que ficou parado o tempo todo e o outro que estava se mexendo fica sem detector e parado aonde estava...
Eu quero corrigir: O inimigo que fica parado o tempo todo,e o bug de ficar entre os dois.
Ah,e quando o player fica na frente dos dois,o inimigo "ativo" se mexe,quando você fica atras dos dois,acontece a mesma coisa...
Espero que vocês tenham entendido esse texto.Se vocês não estiverem entendido,talvez eu poste uma print pra vocês verem...
Até! (ah,cansei de escrever)
Bem,eu comecei um novo projeto secreto (só num vou contar a história C= ) e eu conseguir fazer uma I.A simples usando o PMO (Platform Moviment Object).O inimigo fica te seguindo e quando ele chega perto de você,ele para.Coloquei 1 detector de 32 de altura e 10 de largura (o detector fica da "cintura" para baixo do inimigo.O inimigo tem 64 de altura).Esse detector serve para fazer o inimigo pular algum bloco que esteja na frente dele.Quando esse detector sobrepõe algum bloco,o personagem pula.Bem,eu dupliquei e clonei o inimigo (coloquei os dois no mesmo grupo),e dupliquei esse detector (no caso ficou dois inimigos e dois detectores),mas ainda continua o erro: 1 Dos inimigos fica parado e o outro fica normal te seguindo (eu programei para que se o X do player for maior que o do inimigo,ele vai pra frente,se for menor,ele vai pra trás);mas quando você fica entre os dois (1 fica na sua frente e outro atras de você) os 2 detectores vai para o inimigo que ficou parado o tempo todo e o outro que estava se mexendo fica sem detector e parado aonde estava...
Eu quero corrigir: O inimigo que fica parado o tempo todo,e o bug de ficar entre os dois.
Ah,e quando o player fica na frente dos dois,o inimigo "ativo" se mexe,quando você fica atras dos dois,acontece a mesma coisa...
Espero que vocês tenham entendido esse texto.Se vocês não estiverem entendido,talvez eu poste uma print pra vocês verem...
Até! (ah,cansei de escrever)
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
Pelo que eu entendi, eu não duplicaria o inimigo e o detector, eu clonaria o inimigo e o detector e faria outra programação igual ao do primeiro para ele.
Espero ter ajudado.
Espero ter ajudado.
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
A fase irá ser longa,então terá muitos inimigos (em torno de uns 15~50)...E eles só vão começar a te atacar quando você chegasse perto deles.Então iria ficar ruim duplicar muuitos eventos.
Eu acho que tem correção..
Eu acho que tem correção..
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
Correção
Faça um valor para cada um: detector 1 Alterable value A=1 inimigo 1 Alterable value A=1 e o mesmo so que com valor 2 pro inimigo e pro detector 2. aí coloque Alterable Value A grupo1(inimigo) =Alterable Value A grupo2(detector) -> set X detector to X inimigo e Y detector to Y inimigo.
Isso servirá para filtrar os eventos. só essa linha de programação e provavelmente todos os seus problemas estarão resolvidos.
Faça um valor para cada um: detector 1 Alterable value A=1 inimigo 1 Alterable value A=1 e o mesmo so que com valor 2 pro inimigo e pro detector 2. aí coloque Alterable Value A grupo1(inimigo) =Alterable Value A grupo2(detector) -> set X detector to X inimigo e Y detector to Y inimigo.
Isso servirá para filtrar os eventos. só essa linha de programação e provavelmente todos os seus problemas estarão resolvidos.
Re: Como corrijo esse bug?
Err,não entendi direito!
detector 1 Alterble value A=1 inimigo?
Não entendi nada pra falar a verdade xD
detector 1 Alterble value A=1 inimigo?
Não entendi nada pra falar a verdade xD
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
o detector terá o mesmo Alterable Value que o inimigo correspondente a ele.
Re: Como corrijo esse bug?
Experimente usar "spread values" para identificar os monstros como sendo diferentes. Eu vou voltar pra casa em 1 hora +- (tô na praia agora o/), aí se você estiver on, eu te explico direitinho como faz. ^^
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
Ah,eu tô sem MSN xD
E eu nunca ouvi falar de Spread Values o.o
Você tá sempre me surpreendendo Augusto xD
E eu nunca ouvi falar de Spread Values o.o
Você tá sempre me surpreendendo Augusto xD
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
Spread Values fica na mesma coluna dos alterable values
onde fica: Set, Add To, Subtract From e o Spread Value
___________________
Eu sei onde fica, mas tbm não sei pra que serve kkkkkkkkkkk
onde fica: Set, Add To, Subtract From e o Spread Value
___________________
Eu sei onde fica, mas tbm não sei pra que serve kkkkkkkkkkk
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Afonker escreveu:Spread Values fica na mesma coluna dos alterable values
onde fica: Set, Add To, Subtract From e o Spread Value
___________________
Eu sei onde fica, mas tbm não sei pra que serve kkkkkkkkkkk
suahsuah, exatamente. Não adianta muito saber onde fica se você não sabe usar. XD
Amanhã eu faço um tutorial básico de AI e posto aqui. ^^
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
Eu imagino que seja pra diferenciar os actives duplicados
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Afonker escreveu:Eu imagino que seja pra diferenciar os actives duplicados
é mais ou menos isso. Amanhã vocês veem o tutorial. ^^
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
Esperando o tutorial =D
Eu precisei fazer uma coisa parecida com isso, tive que fazer uma gambiarra, deu certo mas ta uma gambiarra
Eu precisei fazer uma coisa parecida com isso, tive que fazer uma gambiarra, deu certo mas ta uma gambiarra
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Bah,pelo menos deu certo xD
Enifm,vou tentar fuçar isso! Alás,fuçando eu consegui fazer um gerador de efeitos 8-bits (com uma extensão,é claro!).
Enifm,vou tentar fuçar isso! Alás,fuçando eu consegui fazer um gerador de efeitos 8-bits (com uma extensão,é claro!).
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
Fiquei interessado nesse tutorial aí! '-'
Eu usava Pick an Object com Alterables Values para encontrar o objeto que eu queria kkkkkk
Eu usava Pick an Object com Alterables Values para encontrar o objeto que eu queria kkkkkk
Matheus290- Administrador
- Mensagens : 710
Data de inscrição : 18/02/2010
Idade : 30
Localização : Bauru SP
Re: Como corrijo esse bug?
Cara, seguinte, isso é meio complexo de explicar mas vamos lá, vc tem que criar um contador de inimigos, ou criar um active ou qualquer objeto que que guarde a quantidade de inimigos...
ao criar um inimigo, temos dois actives, um é o inimigo e o outro é o active que guarda o numero de inimigos, e é claro, o active que é o personagem que vamos chama-lo de Alvo:
Press "Enter" --->
Create Objects: Create ("inimigo") 0,0 //cria mais um inimigo
("inimigo"): set alterable value A("inimigo") --> alterable value A ("Contador") //vai receber o numero que está na value A de contador ou seja, será a ID de identificação do inimigo
("contador"): add 1 alterable value A //vai ser adicionado mais 1 ao value A do contador
("inimigo"): set alterable string A("inimigo") --> "parado" //vai salvar a palavra "parado" na string A do inimigo
Every 01:00 -->
start loop "estado" Nobjetcs("inimigo") times //toda vez em 1 em 1 segundo vai começar o loop estado e o numero de loopings vai ser igual ao numero de inimigos... para verificar o estado de cada inimigo
Aqui vai o pulo do gato, a comparação de distancia ou se todos vão ter que seguir o personagem, vamos pela proximação...
On loop "estado"
alterable value A("inimigo") = LoopIndex("estado")
alterable string A("inimigo") = "parado"
(comparação de distancia ao alvo positivo ou verdadeiro) --->
("inimigo"): alterable string A --> "movendo"
("inimigo"): look at ("alvo")
Claro que será necessario criar outro evento para quando o inimigo não estiver vendo ou longe do alvo, no qual setará a Alterable string A do inimigo para "parado" novamente...
------------------------------------------------------------------------------------------
bem, essas linhas só descrevem como fazer cada inimigo se mover no momento certo, n diz respeito à I.A, creio q essa parte vc ja fez so faltava fazer cada um se mover no momento certo, espero ter ajudado, n está mto claro eu acho, mas tentei x_x
ae uma formula pra calcular distancia sem precisar utilizar extensão pra isso:
Bem no active ou no inimigo iremos certar as seguintes alterables values e mudar seus nomes pra ficar mais facil visualizar.
alterable value A --> ID
alterable value B --> AlvoAngulo
alterable value C --> AlvoDistancia
Every 00:50 -->
("inimigo"): Set AlvoAngulo to ATan2((Y( "inimigo" ))-(Y( "alvo" )), (X( "alvo" ))-(X( "inimigo" ))) //encontra direção
("inimigo"): Set AlvoDistancia to Sqr((((X( "inimigo" ))-(X( "alvo" ))) pow 2)+(((Y( "inimigo" ))-(Y( "alvo" ))) pow 2)) //encontra a distancia
Aqui a formula de comparação bem simples:
("inimigo") AlvoDistancia > 0 --> Ponha a I.A pra funcionar ^^
pronto... eh isso ae... tentei.
ao criar um inimigo, temos dois actives, um é o inimigo e o outro é o active que guarda o numero de inimigos, e é claro, o active que é o personagem que vamos chama-lo de Alvo:
Press "Enter" --->
Create Objects: Create ("inimigo") 0,0 //cria mais um inimigo
("inimigo"): set alterable value A("inimigo") --> alterable value A ("Contador") //vai receber o numero que está na value A de contador ou seja, será a ID de identificação do inimigo
("contador"): add 1 alterable value A //vai ser adicionado mais 1 ao value A do contador
("inimigo"): set alterable string A("inimigo") --> "parado" //vai salvar a palavra "parado" na string A do inimigo
Every 01:00 -->
start loop "estado" Nobjetcs("inimigo") times //toda vez em 1 em 1 segundo vai começar o loop estado e o numero de loopings vai ser igual ao numero de inimigos... para verificar o estado de cada inimigo
Aqui vai o pulo do gato, a comparação de distancia ou se todos vão ter que seguir o personagem, vamos pela proximação...
On loop "estado"
alterable value A("inimigo") = LoopIndex("estado")
alterable string A("inimigo") = "parado"
(comparação de distancia ao alvo positivo ou verdadeiro) --->
("inimigo"): alterable string A --> "movendo"
("inimigo"): look at ("alvo")
Claro que será necessario criar outro evento para quando o inimigo não estiver vendo ou longe do alvo, no qual setará a Alterable string A do inimigo para "parado" novamente...
------------------------------------------------------------------------------------------
bem, essas linhas só descrevem como fazer cada inimigo se mover no momento certo, n diz respeito à I.A, creio q essa parte vc ja fez so faltava fazer cada um se mover no momento certo, espero ter ajudado, n está mto claro eu acho, mas tentei x_x
ae uma formula pra calcular distancia sem precisar utilizar extensão pra isso:
Bem no active ou no inimigo iremos certar as seguintes alterables values e mudar seus nomes pra ficar mais facil visualizar.
alterable value A --> ID
alterable value B --> AlvoAngulo
alterable value C --> AlvoDistancia
Every 00:50 -->
("inimigo"): Set AlvoAngulo to ATan2((Y( "inimigo" ))-(Y( "alvo" )), (X( "alvo" ))-(X( "inimigo" ))) //encontra direção
("inimigo"): Set AlvoDistancia to Sqr((((X( "inimigo" ))-(X( "alvo" ))) pow 2)+(((Y( "inimigo" ))-(Y( "alvo" ))) pow 2)) //encontra a distancia
Aqui a formula de comparação bem simples:
("inimigo") AlvoDistancia > 0 --> Ponha a I.A pra funcionar ^^
pronto... eh isso ae... tentei.
leodigaum- Usuário
- Mensagens : 116
Data de inscrição : 12/06/2011
Re: Como corrijo esse bug?
Valeu Leo,vou tentar fazer isso dai o/
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
E aí.
Sei que tô "um pouco" atrasado, mas tá aqui o tutorial. Para mais informações cheque o event editor.
http://dl.dropbox.com/u/12028015/TUTOmfa.mfa
desculpem o atraso, tive alguns problemas com a escola e só tive tempo de postar aqui agora. @_@
Sei que tô "um pouco" atrasado, mas tá aqui o tutorial. Para mais informações cheque o event editor.
http://dl.dropbox.com/u/12028015/TUTOmfa.mfa
desculpem o atraso, tive alguns problemas com a escola e só tive tempo de postar aqui agora. @_@
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
O firefox ta abrindo a pagina no formato mfa mas não ta fazendo o download do tutorial
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Deixa, eu usei um outro navegador que eu criei pelo mmf2 e pegou kkkkkkkkkkkkk
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Hm...Ficou legal cara!
Agora entendi mais ou menos como funciona!
Agora tem outro bug:
Eu substitui o comandos de mover para frente e para trás com os comandos do Platform Moviment Object ("use right imput key" e "use left imput key"),depois disso fiz que toda vez que iniciar o frame,o PMO (Platform Moviment Object) vai setar o active como objeto.Quando executo a engine,os comandos de mover funcionam (se o X do mouse for maior ou menor que o X do active,o active move para frente ou para trás...) mas o de colisão não!
O de colisão eu fiz normal,como se eu fosse fazer uma engine com o Platform Moviment Object:
Test for object overlap
Active is overlapping a backdrop
|
V
(no Platform Moviment Object) Object does overlap with an obstacle.
E o objeto não colide com o backdrop,passa reto!
O backdrop tá em obstacle e o movimento funciona normal,como eu já disse. Já tentei de tudo e não funcionou ("spreadar" um Value do Active e usar para o PMO,um loop só para o PMO,etc).
Agora entendi mais ou menos como funciona!
Agora tem outro bug:
Eu substitui o comandos de mover para frente e para trás com os comandos do Platform Moviment Object ("use right imput key" e "use left imput key"),depois disso fiz que toda vez que iniciar o frame,o PMO (Platform Moviment Object) vai setar o active como objeto.Quando executo a engine,os comandos de mover funcionam (se o X do mouse for maior ou menor que o X do active,o active move para frente ou para trás...) mas o de colisão não!
O de colisão eu fiz normal,como se eu fosse fazer uma engine com o Platform Moviment Object:
Test for object overlap
Active is overlapping a backdrop
|
V
(no Platform Moviment Object) Object does overlap with an obstacle.
E o objeto não colide com o backdrop,passa reto!
O backdrop tá em obstacle e o movimento funciona normal,como eu já disse. Já tentei de tudo e não funcionou ("spreadar" um Value do Active e usar para o PMO,um loop só para o PMO,etc).
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Re: Como corrijo esse bug?
Sonic_BR escreveu:Hm...Ficou legal cara!
Agora entendi mais ou menos como funciona!
Agora tem outro bug:
Eu substitui o comandos de mover para frente e para trás com os comandos do Platform Moviment Object ("use right imput key" e "use left imput key"),depois disso fiz que toda vez que iniciar o frame,o PMO (Platform Moviment Object) vai setar o active como objeto.Quando executo a engine,os comandos de mover funcionam (se o X do mouse for maior ou menor que o X do active,o active move para frente ou para trás...) mas o de colisão não!
O de colisão eu fiz normal,como se eu fosse fazer uma engine com o Platform Moviment Object:
Test for object overlap
Active is overlapping a backdrop
|
V
(no Platform Moviment Object) Object does overlap with an obstacle.
E o objeto não colide com o backdrop,passa reto!
O backdrop tá em obstacle e o movimento funciona normal,como eu já disse. Já tentei de tudo e não funcionou ("spreadar" um Value do Active e usar para o PMO,um loop só para o PMO,etc).
você fez os eventos pra checar se o valor alterável "A" (ou qualquer outro q vc tenha colocado com o spread) é igual ao loopindex do [loop de movimento]? se vc n fez isso n vai funcionar mesmo. Agora, se você fez, n sei porque n pegou. :S
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
Olha tbm se o backdrop e o active estão no mesmo layer
Afonker- Usuário
- Mensagens : 149
Data de inscrição : 16/03/2012
Idade : 28
Localização : Aracaju
Re: Como corrijo esse bug?
Afonker escreveu:Olha tbm se o backdrop e o active estão no mesmo layer
...e se o backdrop está como "obstacle". xD
augustoad- Usuário
- Mensagens : 105
Data de inscrição : 19/09/2010
Re: Como corrijo esse bug?
Vou tentar outra vez depois...
Sonic_BR- Usuário
- Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 25
Localização : Vitória da Conquista-BA
Fusion Makers :: Geral :: Dúvidas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|