Ajuda em colisoes multiplas

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

Resolvido Ajuda em colisoes multiplas

Mensagem por Rodrigo Santiago em Sex 14 Dez 2012, 08:44

Eu tenho um dilema.
A coisa é assim:
eu possuo um objeto detector, e varios ao redor, todos instancias de um outro objeto . O que eu quero: conseguir o id de um objeto desses, mas eu quero que este objeto escolhido seja um que se destaque por uma variavel.
Como e que faz isso?
Se usar as funcoes de colisao ele retorna o q tem o menor id, e eu nao posso mudar a mask(se fosse,eu poderia criar um ds list no evento de colisao, mas nao posso nesse jogo!Tenho q fazer de outra forma)


Última edição por Rodrigo Santiago em Sex 14 Dez 2012, 16:29, editado 1 vez(es)

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por saim em Sex 14 Dez 2012, 09:32

Rodrigo Santiago escreveu:eu quero que este objeto escolhido seja um que se destaque por uma variavel.
Não tenho certeza se entendi. Você quer a instância que tenha a variável com o valor mais extremo (maior ou menor)? Tem jeito, sim. Vou te mostrar como pegar a que tem maior valor. Se quiser a de menor valor, troque o > por <.
Código:
var valorExtremo, selecionado; //pra não ter que ficar usando "other"
valorExtremo = -99999999; // bem oposto do que a gente quer
selecionado = noone;
with (objetos) {
  SE (está_entre_os_selecionáveis){
    SE (variável > valorExtremo){
      selecionado = id;
      valorExtremo = variável; //pra que a próxima comparação leve em conta o maior valor
      }
  }
return(selecionado); //se quiser usar um script
Se não quiser usar um script, não declare a variável "selecionado" como var e use "other . selecionado".

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

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por Rodrigo Santiago em Sex 14 Dez 2012, 12:14

A entao o with, faz com todos os objetos! Eu pensava que ele fazia com aprnas um, mas na verdade ele faz com todos (se usar o nome do objeto) estou certo? Eu sempre usava with com Id, eu nunca fiz testes significativos com o nome do objeto.

Esperai!!!! Nao da pra usar este script! Eu nao posso verificar em todos os objetos, temque ser apenas nos que estao dentro da area, se nao o jogo fica lento, mesmo usando distance to object (pra filtrar), ainda ia verificar em todos!

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por saim em Sex 14 Dez 2012, 15:32

Rodrigo Santiago escreveu:se nao o jogo fica lento, mesmo usando distance to object (pra filtrar)
Pode sim. Teste e conte. Aliás, foi por isso que eu coloquei o "SE (está entre os selecionáveis)". Dependendo do evento que você usar, é mais rápido que usar um "if" no step das instâncias (se o código for no step do objeto, é tão rápido - ou lento - quanto).
Se isso está causando lentidão, é porque tem instâncias demais ativas ao mesmo tempo. Dê seu jeito de diminuir o número de instâncias ativas.

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

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por Rodrigo Santiago em Sex 14 Dez 2012, 16:24

Mas o legal do jogo sao as centenas de objetos! E um mapa muito grande!

Eu ja entendi o que voce quis dizer com o script, mas nao e o suficiente. Tem que ser algo mais especifico, mas mesmo assim acho que vou usar esse metodo e tentar melhorar o jogo em outros aspectos.

Valeu!

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por saim em Sex 14 Dez 2012, 16:54

O código não é pesado se você tiver algumas centenas de instâncias ATIVAS (dá pra ter instancias na room sem elas estarem ativas). Milhares, aí, já começa a complicar, mas é mais provável do jogo ficar lento por causa dos códigos nas instâncias.

Rodrigo Santiago escreveu:mas nao e o suficiente. Tem que ser algo mais especifico
Pra ser mais específico, temos que ir mais fundo no jogo, tipo... saber ALGUMA COISA.
Suponho que todas as instâncias tenham essa variável. Suponho que ela seja declarada no create. Suponho que não existe a menor possibilidade, nem a menor mesmo, nem uma em um milhão de não haver nenhuma instância dentro do limite de detecção - ou que exista uma alternativa pra esse caso. Suponho que exista um evento bem específico pra mudar essa variável, tipo, ela só muda no create ou na colisão com um objeto ou coisa do tipo.

- na hora que a instância entrar na linha de detecção ou, se ela estiver na linha de detecção e acontecer o evento de mudar o valor da variável, ela verifica se a variável ficou maior que o extremo, que agora é uma variável do objeto detector.
- Se ficou, ela passa a ser o objeto destacado e atualiza o valor do extremo do objeto detector.
- Se ela for eliminada, aí não tem jeito, o extremo deve ser atualizado conforme o script.
- Se ela sair do limite de detecção, aí não tem jeito, o extremo deve ser atualizado conforme o script.

Isso reduz o número de vezes que o script é rodado, mas não sei com que frequência essas instâncias são eliminadas ou saem do limite de detecção. Então, não vejo como fugir do script, mas é possível diminuir seu peso com uma boa programação do objeto detectado.

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

Resolvido Re: Ajuda em colisoes multiplas

Mensagem por Rodrigo Santiago em Sex 14 Dez 2012, 21:39

Nao precisa se preocupar! eu do meu geito, ja sei como fazer e pra te informar e pro meu jogo pokemon dota, e o estile e semelhante a age of empires, difwerente apenas nos objetivos (mais ou menos) e o objeto especifico sao crips, e eu queria que o heroe cpu mirasse nos de life menor, mas eu ja dei um geito, foi usando mesmo o script pesado, mas meus jogos sao bem preparados e bem pensados para economizar, da sim pra usar o script sem ficar lento, mas eu SEMPRE quero fazer da melhor maneira, mesmo assim obrigado!

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda em colisoes multiplas

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


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