[DUVIDA]Tower Defense em plataforma

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

[DUVIDA]Tower Defense em plataforma

Mensagem por Andrew3000 em Ter 22 Nov 2011, 17:59

Pessoal,eu quero fazer um jogo tipo Tower defense.Esse é um jogo de plataforma e como se fosse na era medieval.
Explicação:Tem um guerreiro e ele tem que destruir um inimigo poderoso,e ao longo do jogo vai recrutando pessoas(arqueiros, bárbaros,magos,cavalos ... e por fim uma fênix)

Então o jogo tem um mineiro que com o tempo vai conseguindo dinheiro para comprar mais carinhas para conseguir um exército,e destruir o castelo inimigo.Indo direto ao ponto queria saber como ter varias vidas ao mesmo tempo ,como um carinha souber que se o inimigo estiver a uma tal distância ele atira e como fazer para os inimigos se organizarem e surgirem até um certo ponto .

Andrew3000

Número de Mensagens : 20
Data de inscrição : 18/11/2011
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

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por Joker em Ter 22 Nov 2011, 18:46

Bom amigo uma da suas perguntas posso responder eu uso esse codico para fazer um canhao de tower defense...

Faça assim crie um objeto de um canhao de tower defense e coloque no creat :

Código:
tiro=true

No evento alarm coloque
Código:
tiro=true

e no evento steep coloque
esse codico faiz para se estiver em determinada distancia acontecer alguma açao...
Código:
if distance_to_object(obj_inimigo)<=200//se tiver a 200 pixel do objeto inimigo
{
image_angle=point_direction(x,y,obj_inimigo.x,obj_inimigo.y); //o canhao fica no angulo da inimigo
if tiro = true{ //variavel do tiro
instance_create(x,y,obj_tiro) //crie o obj_tiro
tiro=false // o tiro fica false so vai poder atira depois do da execuçao do alarm
alarm[0]=30} // a cada 1  30 steep aconteça a açao do tiro
}


Claro coloque isso no creat do obj_tiro


Código:
move_towards_point(obj_inimigo.x,inimigo.y,15) // faiz paraque o tiro va na direçao do inimigo

Bom eu respondi como faiz para para acontecer uma açao se estiver perto,mais quiz complementar como criar um canhao completo pois muita gente tem duvida disso...
Abraço se tiver duvida em relaçao com o codico so perguntar

Joker

Ranking : Sem avaliações
Número de Mensagens : 206
Idade : 21
Data de inscrição : 08/11/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://the-jokergames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por saim em Qui 24 Nov 2011, 11:47

Andrew3000 escreveu:queria saber como ter varias vidas ao mesmo tempo
Por "várias vidas ao mesmo tempo" você quer dizer "não usar a variável global 'health'"? Fácil, use uma variável local qualquer, tipo "vida". Tenho um tutorial sobre variáveis na minha assinatura, se você estiver com problemas nesse sentido.

Andrew3000 escreveu:como um carinha souber que se o inimigo estiver a uma tal distância ele atira
A joker já respondeu

Andrew3000 escreveu:como fazer para os inimigos se organizarem
Outra pergunta ambígua. Como você QUER que eles se organizem? Em formação? Quer que eles tomem decisões? Ou é simplesmente um pathfind?

Andrew3000 escreveu:e surgirem até um certo ponto .
Use um objeto pra criar os inimigos e ponha, nesse objeto, um contador. A cada inimigo criado, avance esse contador em uma unidade. Só crie os inimigos se esse contador estiver num valor menor que o número máximo de inimigos que você quer criar.

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]Tower Defense em plataforma

Mensagem por Andrew3000 em Sex 25 Nov 2011, 17:23

Sobre as vidas eu quero dizer assim :
Eu faço vida no player e no inimigo e as duas diminui ao mesmo tempo ,o que faz para evitar isso ?

Sobre a formação eu queria uma coisa tipo assim:
Certos inimigos vão defender seu proprio castelo e os outros atacar o do player

Se precisar de alguma coisa a mais pode falar


Última edição por Andrew3000 em Sex 25 Nov 2011, 19:03, editado 1 vez(es) (Razão : Erro ortográfico)

Andrew3000

Número de Mensagens : 20
Data de inscrição : 18/11/2011
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

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por saim em Seg 28 Nov 2011, 12:31

Andrew3000 escreveu:Sobre as vidas eu quero dizer assim :
Eu faço vida no player e no inimigo e as duas diminui ao mesmo tempo ,o que faz para evitar isso ?
Já respondido no post anterior: use uma variável local.

Andrew3000 escreveu:Sobre a formação eu queria uma coisa tipo assim:
Certos inimigos vão defender seu proprio castelo e os outros atacar o do player
Simplesmente um pathfind, então. Tenho um tutorial sobre o A* na minha assinatura, com um script adaptável. Pra escolher qual alvo tentar atingir, basta mudar o argumento do script.

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]Tower Defense em plataforma

Mensagem por Limalokão em Seg 28 Nov 2011, 12:44

Olá amigo! Vi que você está fazendo um jogo igual ao meu =D olha umas screens do meu:
Spoiler:





Até agora está indo de vendo em popa! Não estranhe as linhas brancas pois é só para checar se está tudo correto =D o nome é SealFighter's =D

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
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]Tower Defense em plataforma

Mensagem por Andrew3000 em Qua 30 Nov 2011, 19:32

Saim eu ainda estou perdido Zangado
Eu agradeceria se me explicasse algumas coisas melhor(porque eu ainda estou no nível iniciante).

Soul Limaloko, legal o seu jogo,é quase assim que estou querendo o meu ,a diferença é que o meu é meio era medieval.

Andrew3000

Número de Mensagens : 20
Data de inscrição : 18/11/2011
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

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por saim em Qui 01 Dez 2011, 09:41

Hm... Deixa eu tentar explicar melhor, então.
Existem variáveis locais e globais. Algumas variáveis são built-ins (já vêm com o game maker). Existem built-ins dos dois tipos.
"locais" significa "atuam somente na instância" e "globais" significam "atuam no jogo todo".
Usar uma global pra determinar a vida de todos os inimigos causa o bug de atirar em um e matar todos.
(muito) mais informações podem ser encontradas no meu tutorial sobre variáveis, que eu criei justamente porque iniciantes têm dificuldade nesse assunto.

Quanto ao pathfind, pode esquecer, por enquanto. Não é nada básico. Requer, pra começar, um completo entendimento do funcionamento das variáveis. (pelo menos o A*, que eu uso e recomendo, requer).
Mas se o seu jogo é semelhante ao das imagens do Soul Limaloko, então ele não requer o uso de pathfinding complexos (mas não acho que o dele tenha muito a ver com tower defense, me parece mais um plataform shooter).
O que você precisa é definir qual o objetivo de cada inimigo. Pra isso, você pode usar um "choose" logo no create event de cada um e armazenar o objetivo escolhido numa variável.
Código:
objetivo = choose("ataca", "defende")
Aliás, como o comportamento de cada inimigo vai ser bem diferente, dependendo da variável escolhida, sugiro fazer dois objetos distintos, que podem usar o mesmo sprite, e, na hora de criar o inimigo, usar o choose:
Código:
instance_create(castelo.x, castelo.y, choose(inimigoAtaca, inimigoDefende)

falando de IA
Pra fazer o comportamento dos inimigos, verifique o ambiente no step event, checando a distância até as instâncias que atuarão sobre ele ou, melhor dizendo, que ele atuará sobre elas.
Tipo assim: se tem um boneco do jogador NA FRENTE do inimigo E está PERTO, o inimigo ataca o boneco. Mas, se o inimigo já tiver chegado PERTO do CASTELO do jogador, ele ignora os bonecos e manda brasa no castelo.
Tem um monte de funções pra verificar o ambiente: place_meeting, point_distance, collision_circle, instance_nearest... um MONTE. Você vai usar elas nos momentos adequados e pronto, sua IA está feita.
O complicado, mesmo, é definir como você quer que o inimigo atue. Isso só você pode fazer. Nem que eu tivesse a pretensão de escrever seu código eu poderia fazê-lo sem que você definisse, nos mínimos detalhes, como o inimigo vai agir. E definir isso é metade do código escrito! Smile
Assim:
se estiver perto do castelo, ataca o castelo
senão, se estiver perto de um boneco, ataca o boneco
senão, caminha em direção ao castelo
é igual a
Código:
if (point_distance(x, y, castelo.x, castelo, y)<alcance){
   script_de_atacar_o_castelo();
   }
   else{
      if (point_distance(x, y, boneco.x, boneco.y)<alcance){
         script_de_atacar_o_boneco();
         }
         else{
            x+=velocidade;
            }
      }
Esse código é todo bugado, mas em condições extremamente favoráveis, até funciona. Está aí só pra te dar um norte de como funciona uma IA. Os scripts podem ser colocados dentro do código mesmo, não precisam ser necessariamente "scripts".

Defina minuciosamente o que você espera que aconteça. Daí, se não conseguir pensar em como traduzir isso pro game maker, a gente te dá uma mão.

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]Tower Defense em plataforma

Mensagem por diego333 em Qui 01 Dez 2011, 12:01

só uma dica ... nao use strings pro 'objetivo' elas são bem mais lentas que números ... faça assim crie constantes tipo ob_ataca = 0,ob_defende = 1
e use elas em vez de strings...

diego333

Número de Mensagens : 84
Data de inscrição : 06/10/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por Andrew3000 em Sex 02 Dez 2011, 15:34

saim agora eu consegui entender melhor!(sobre o objetivo ,era só criar dois tipos de inimigos :um para atacar e outro para defender)o inimigo só vai ir pra frente mesmo,e quando estiver algo no caminho ele ataca.
Sobre as vidas,qual variável eu uso? (eu sempre usei health)
Obs.:eu li seu tutorial e bem informativo.

Andrew3000

Número de Mensagens : 20
Data de inscrição : 18/11/2011
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

Re: [DUVIDA]Tower Defense em plataforma

Mensagem por Conteúdo patrocinado Hoje à(s) 06:36


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