Conectar-se
Quem está conectado
27 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 27 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 144

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

[RESOLVIDO] escolher um inimigo para atacar

em Sab 31 Jan 2015, 16:44
Olá pessoal, geralmente eu crio minhas próprias gambiarras para criar sistemas dos meus jogos,entretanto alguns métodos são muito mais complexos que na forma original de se fazer no meu caso , eu gostaria de criar um sistema tipo de batalhas em rpg onde os inimigos ficam posicionados em lugares aleatórios, eu gostaria de um sistema que com o teclado move-se um cursor que marquasse o inimigo que eu queria atacar, antes que alguem me pergunte por que não faço isso com o mouse que seria mais facil, é que na verdade eu não vou usar esse sistema para isso, mas explicando assim fica melhor de entendder, se eu tiver essa lógica já vai me servir.

Resumindo a pergunta: como faço para escolher um inimigo usando o teclado em um rpg mesmo que eles estejam em distancias aleatórias um do outro?
Data de inscrição : 27/11/2012
Número de Mensagens : 241
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 42
Ver perfil do usuário

Re: [RESOLVIDO] escolher um inimigo para atacar

em Sab 31 Jan 2015, 17:13
Você pode popular uma ds list com todas as instâncias dos inimigos na batalha e então processar essa lista pra obter os dados (id, coordenadas, variáveis...).

Depois é apenas uma questão de você trabalhar esses valores pra fazer o cursor ciclar entre os inimigos e marcar a instância à ser atacada/etc.
avatar
Data de inscrição : 06/06/2010
Número de Mensagens : 222
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: [RESOLVIDO] escolher um inimigo para atacar

em Sab 31 Jan 2015, 18:16
Ficou difícil te ajudar eficientemente por falta de dados (RPG top-down, isométrico e etc), todavia a alternativa do Dotted Chaos é uma possibilidade, armazenando e comparando dados para mover o cursor. Uma extensão que já me ajudou em um caso similar e que potencialmente poderá fazer o mesmo é a Instance Nearest Extended que estende as funções de comparação de distância entre instâncias entre outras funções.

Link: http://gmc.yoyogames.com/index.php?showtopic=284288
avatar
Ranking : Nota C
Notas recebidas : D + D + C + C + D + B
Data de inscrição : 28/04/2011
Número de Mensagens : 913
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 41

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

Re: [RESOLVIDO] escolher um inimigo para atacar

em Sab 31 Jan 2015, 19:05
Reputação da mensagem: 100% (1 votos)
Procure utilizar as funções de seleção de instância:

instance_id[0..n-1] : pega a instância pela ordem que foi criada. Ex: instance_id[0], pega a primeira instância colocada na room (de qualquer objeto).

instance_find(obj,n) : pega a instância de determinado objeto, na ordem que foi colocada na room.

instance_nearest(x,y,obj) : pega a instância mais próxima do ponto x,y .

avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 144

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

Re: [RESOLVIDO] escolher um inimigo para atacar

em Sab 31 Jan 2015, 22:09
Dotted Chaos e Ufrarion valeu por ajudar Smile mas a função do Mr.brum funcionou que foi o instance_find(obj,n)


eu fiz assim:

criei 3 inimigos e um cursor e no cursor coloquei esse codigo:

Create:

Código:

Enemy=instance_find(obj_inimigo,0)
Selecao=0;
x=Enemy.x
y=Enemy.y

e para selecionar o inimigo que eu queria eu coloquei esse codigo no step:

Código:

//aqui troca de inimigo de acordo com a quantia que tem
if keyboard_check_pressed(vk_right){
if  (Selecao < instance_number(obj_inimigo)-1)
{
Selecao+=1
}
else
Selecao=0;

}


//aqui atualiza as funcoes de selecionar inimigos
Enemy=instance_find(obj_inimigo,Selecao)
x=Enemy.x
y=Enemy.y


deixei o código aqui caso alguém precise de algo assim também, grato a todos que responderam e tentaram ajudar. Smile
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