Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[ajuda]inimigos iguais com ações diferentes
+6
Hatzo enkiri
Mundo Game Maker
saim
GameMakerTutoriais
Black Studio
KevinBandicoot
10 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
[ajuda]inimigos iguais com ações diferentes
Boa Tarde Pessoal,
Estou desenvolvendo um sistema, mas "encascatei" com algo que estou tentando resolver a algum tempo.
Esse sistema irá compor um jogo. Ele consiste em criar inimigos randômicos a partir de um único objeto. Até aí tudo bem. Porém, necessito que quando o mouse está em cima de um inimigo qualquer e determinada tecla é pressionada, ele execute uma ação, e assim consecutivamente com os outros.
Arrumei algumas soluções, todas elas usando o id de cada instância criada. Eu capturo o id quando passo o mouse por cima e o armazeno em uma variável, nessa variável eu configuro as ações e tudo mais...
O objetivo é que cada inimigo execute a sua ação independente dos outros.
Ex: Se eu mando um parar por 10 segundos, os outros continuam andando. Se eu mandar outro parar por 10 segundos, o primeiro continua a andar depois dos seus 10 segundos...
Sempre quando penso que vai dar certo, eu acabo me confundindo em algo...
Espero que tenham me entendido e possam me ajudar^^
Estou desenvolvendo um sistema, mas "encascatei" com algo que estou tentando resolver a algum tempo.
Esse sistema irá compor um jogo. Ele consiste em criar inimigos randômicos a partir de um único objeto. Até aí tudo bem. Porém, necessito que quando o mouse está em cima de um inimigo qualquer e determinada tecla é pressionada, ele execute uma ação, e assim consecutivamente com os outros.
Arrumei algumas soluções, todas elas usando o id de cada instância criada. Eu capturo o id quando passo o mouse por cima e o armazeno em uma variável, nessa variável eu configuro as ações e tudo mais...
O objetivo é que cada inimigo execute a sua ação independente dos outros.
Ex: Se eu mando um parar por 10 segundos, os outros continuam andando. Se eu mandar outro parar por 10 segundos, o primeiro continua a andar depois dos seus 10 segundos...
Sempre quando penso que vai dar certo, eu acabo me confundindo em algo...
Espero que tenham me entendido e possam me ajudar^^
Re: [ajuda]inimigos iguais com ações diferentes
Boa tarde.
Pelo que eu entendi voce pode fazer o seguinte :
Criar e programar uma lista com todas as ações e depois da room, voce Clica com o botão direito+CTRL no inimigo, e coloca um código só para aquele inimigo, indicando a ação e ser usada, por exemplo :
E dai voce pode tambem depois quando quiser para colocar, Objeto com a ID ***** executar acao=****
Entendeu?
Pelo que eu entendi voce pode fazer o seguinte :
Criar e programar uma lista com todas as ações e depois da room, voce Clica com o botão direito+CTRL no inimigo, e coloca um código só para aquele inimigo, indicando a ação e ser usada, por exemplo :
- Código:
acao=4
E dai voce pode tambem depois quando quiser para colocar, Objeto com a ID ***** executar acao=****
Entendeu?
Black Studio- Games Ranking :
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Reputação : 9
Número de Mensagens : 337
Prêmios :
x 0 x 0 x 0
x 0 x 1 x 0
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
Na verdade os inimigos são criados randomicamente. Eu queria que quando passasse o mouse por cima de um deles e apertasse uma determinada tecla, de acordo com o seu id executasse uma ação somente nesse.
As ações também não podem interferir nas dos outros inimigos.
Obrigado por tentar ajudar^^
As ações também não podem interferir nas dos outros inimigos.
Obrigado por tentar ajudar^^
Re: [ajuda]inimigos iguais com ações diferentes
Tenta usar o evento Mouse Enter. Quando o mouse passar por sobre o objeto e a tecla estiver pressionada, você guarda o id dele em uma variável global, ou então executa a ação direto por ali mesmo.
Por exemplo, no evento Mouse Enter:
Quando quiser que esse objeto faça alguma coisa, você pode tentar usar um with:
Por exemplo, no evento Mouse Enter:
- Código:
if keyboard_check(tecla) global.quem = id else global.quem = noone;
Quando quiser que esse objeto faça alguma coisa, você pode tentar usar um with:
- Código:
with (global.quem)
{
// Ações!
}
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
Quando quero fazer esse tipo de coisa, evito usar o mouse_enter, porque ele só funciona se o mouse se mexer. Se o inimigo estiver se movimentando em direção ao mouse e o mouse estiver parado, o evento não acontece.
Pra contornar o problema, eu coloco no inimigo:
Pra contornar o problema, eu coloco no inimigo:
- Código:
if (instance_position(mouse_x, mouse_y, id) == id){
//o mouse está sobre o inimigo
}
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
Não é mais facil fazer 2 inimigos de mesmo sprite, mas com ação diferente?se não consegue é facil, cria 2 objetos, um com o nome obj_inimigo1 e o outro obj_inimigo2, ai você faz que cada um faça uma coisa diferente.
Mundo Game Maker- Data de inscrição : 09/01/2012
Reputação : 1
Número de Mensagens : 149
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
Ninja8086, sim, estava usando o mouse_enter e o with também, mas estava dando esse problema que o saim falou. De qualquer modo, essa de noone no else eu nunca usei, eu estava "zerando" a variável global depois. Ajudará um pouco. Tenho uma dúvida. Se várias ações irão ocorrer ao mesmo tempo, teria que ser mais de uma variável para salvar o id?
Pensei em algo assim:
capturo o id do primeira instância e salvo por exemplo na global.a
capturo o id do segunda instância e salvo por exemplo na global.b
e assim vai até um número suficiente
digamos que sejam 5 variáveis (a,b,c,d,e), a primeira variável de acordo com um alarm zerará em 10 segundos, dae ela poderá ser usada por outra instância...
Será que algo assim permite que as ações ocorram ao mesmo tempo sem interferir em nenhuma instância?
saim, boa idéia, tentarei substituir por algo similar e depois reporto se deu certo.
Mundo Game Maker, na verdade serão várias ações, dae seria inviável criar vários objetos inimigos, sendo que uma hora ou outra esse número iria crescer, teria que ficar substituindo objetos, sem contar que iria colaborar para o peso do jogo. Preciso de algo mais automático possível.
Obrigado a todos
Pensei em algo assim:
capturo o id do primeira instância e salvo por exemplo na global.a
capturo o id do segunda instância e salvo por exemplo na global.b
e assim vai até um número suficiente
digamos que sejam 5 variáveis (a,b,c,d,e), a primeira variável de acordo com um alarm zerará em 10 segundos, dae ela poderá ser usada por outra instância...
Será que algo assim permite que as ações ocorram ao mesmo tempo sem interferir em nenhuma instância?
saim, boa idéia, tentarei substituir por algo similar e depois reporto se deu certo.
Mundo Game Maker, na verdade serão várias ações, dae seria inviável criar vários objetos inimigos, sendo que uma hora ou outra esse número iria crescer, teria que ficar substituindo objetos, sem contar que iria colaborar para o peso do jogo. Preciso de algo mais automático possível.
Obrigado a todos
Re: [ajuda]inimigos iguais com ações diferentes
Tente usar o que o Saim Falou só que desse jeito:
Se for diferente desse objeto especial noone então ele faz o que tu queres;
- Código:
inidx=instance_position(mouse_x,mouse_y,objinimigo);//ao invés de
//objinimigo use o nome do objeto inimigo
if inidx!=noone
{with(inidx)
{//comandos}
}
Se for diferente desse objeto especial noone então ele faz o que tu queres;
Hatzo enkiri- Games Ranking :
Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
.Se form muitos objetos,ao inves de usar varias variaveis use uma array.
obj[1]
obj[2]
e por ai vai;
obj[1]
obj[2]
e por ai vai;
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: [ajuda]inimigos iguais com ações diferentes
Será que alguém não poderia fazer um exemplo básico de como seria? Estou tentando fazer aqui, mas não estou conseguindo (talvez esteja me confundindo com minhas próprias variáveis).
Assim seria mais fácil do que postar todo o meu source pra revisar...
Obrigado
Assim seria mais fácil do que postar todo o meu source pra revisar...
Obrigado
Re: [ajuda]inimigos iguais com ações diferentes
Basta colocar no evento step do objeto:
- Código:
if position_meeting(mouse_x, mouse_y, self)
if keyboard_check_pressed(tecla)
{
acao
}
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [ajuda]inimigos iguais com ações diferentes
Pedro, sim, mas me confundo na parte que devo pegar o id do inimigo e passá-lo numa variável. De forma que a ação continue sendo executada caso o valor dessa variável mude.
Re: [ajuda]inimigos iguais com ações diferentes
Uma screen básica do problema:
- Spoiler:
Última edição por KevinBandicoot em Sáb 14 Jan 2012, 20:19, editado 1 vez(es)
Re: [ajuda]inimigos iguais com ações diferentes
Faz uma variavel local o objeto que permita mudar a ação apenas se ela estiver em tal valor... por exemplo
cria a variavel:
ai voce coloca...
cria a variavel:
- Código:
acao=0
- Código:
if mouse_button_check_pressed(vk_left)//por exemplo
{acao=random(4)}
ai voce coloca...
- Código:
if acao=1{codigo da acao1}
if acao=2{codigo da acao2}
if acao=3{codigo da acao3}
if acao=4{codigo da acao4}
Re: [ajuda]inimigos iguais com ações diferentes
certo, até aí tudo bem, mas e para dizer que a ação é da instância x sem que interfira na instância y? Como está na screen acima.
Re: [ajuda]inimigos iguais com ações diferentes
Como a variavel é local... nao irá interferir... ocorrerá apenas naquele objeto.
Re: [ajuda]inimigos iguais com ações diferentes
Sim, mas por exemplo:
Digamos que eu apertei enter em uns dos inimigos. A variável ação fica com valor 4, e de acordo if valor = 4, o inimigo para de andar por 10 segundos. Até aí tudo bem, mas se nesses 10 segundos que o inimigo estiver parado eu apertar enter em outro inimigo (quando falo inimigo, é o mesmo objeto), a variável local muda para outro número. Agora uma dúvida, mesmo sendo uma variável local, por ser uma instância do mesmo objeto, o valor não vale para todos?
Dependendo da sua resposta, acho que resolvi o meu problema XD
Digamos que eu apertei enter em uns dos inimigos. A variável ação fica com valor 4, e de acordo if valor = 4, o inimigo para de andar por 10 segundos. Até aí tudo bem, mas se nesses 10 segundos que o inimigo estiver parado eu apertar enter em outro inimigo (quando falo inimigo, é o mesmo objeto), a variável local muda para outro número. Agora uma dúvida, mesmo sendo uma variável local, por ser uma instância do mesmo objeto, o valor não vale para todos?
Dependendo da sua resposta, acho que resolvi o meu problema XD
Re: [ajuda]inimigos iguais com ações diferentes
cria uma variavel que define se o mouse ta em cima ou não :
e ai coloca :
EDIT:
Engine---
http://dl.dropbox.com/u/40305167/engine.gmk
EDIT2:
http://dl.dropbox.com/u/40305167/enginenova.gmk
essa ta certa
- Código:
if mouse_x>x-16 && mousex<x+16 && mouse_y>y-16 && mouse_y<y+16//dependendo do tamanho da sprite
{tadentro=true}
else
{tadentro=false}
e ai coloca :
- Código:
if tadentro=true && keyboard_check_pressed(vk_enter){acao=random(4)}
EDIT:
Engine---
http://dl.dropbox.com/u/40305167/engine.gmk
EDIT2:
http://dl.dropbox.com/u/40305167/enginenova.gmk
essa ta certa
Última edição por williammustaffa em Sáb 14 Jan 2012, 21:31, editado 3 vez(es)
Re: [ajuda]inimigos iguais com ações diferentes
aí parceiro, não sei se é isso que vc quer, mas fiz uma engine pra te ajudar:
no help tá tudo bem explicado,basta dar o f1.
http://dl.dropbox.com/u/43446077/JOGOS/engines/engine%20parar%20um%20objeto%20por%20id%20com%20mouse%20sobre%20ele.gmk
no help tá tudo bem explicado,basta dar o f1.
http://dl.dropbox.com/u/43446077/JOGOS/engines/engine%20parar%20um%20objeto%20por%20id%20com%20mouse%20sobre%20ele.gmk
Re: [ajuda]inimigos iguais com ações diferentes
willian, Deu certo, porém caiu naquele problema que o saim citou lá na primeira página. Só funciona quando o enter está pressionado em cima do objeto.
mrbrum, Sim é isso mesmo, mas o problema é, eu paro um, depois paro outro... Ao mesmo tempo. Se eu clicar em 1 e depois clicar em outro, o 1 deve continua parado até acabar o seu tempo.
mrbrum, Sim é isso mesmo, mas o problema é, eu paro um, depois paro outro... Ao mesmo tempo. Se eu clicar em 1 e depois clicar em outro, o 1 deve continua parado até acabar o seu tempo.
Página 1 de 2 • 1, 2
Tópicos semelhantes
» [ajuda]abrir diferentes formatos de video
» [Resolvido][Ajuda]objetos com variáveis diferentes
» [Resolvido] Dúvida: Como reconhecer duas ações diferentes e mudar os sprites
» algumas ações que preciso de ajuda como splash show web video etc
» Ajuda com Health de mais 2 personagens diferentes
» [Resolvido][Ajuda]objetos com variáveis diferentes
» [Resolvido] Dúvida: Como reconhecer duas ações diferentes e mudar os sprites
» algumas ações que preciso de ajuda como splash show web video etc
» Ajuda com Health de mais 2 personagens diferentes
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos