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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 12:04
Estou criando um jogo que eu vi na NET, só que estou com um problema. Quando o personagem encosta em seu inimigo não acontece nada, o certo seria, se ele encostar, ele perde ou volta ao início. Como faço para com certar isso?

Uma imagem para ter a noção do jogo que eu estou criando:



Grato!
avatar
Ranking : Nota C
Notas recebidas : C-B
Data de inscrição : 17/04/2010
Número de Mensagens : 136
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 12:10
Você pode usar os comandos room_restart, pois assim, quando o personagem encostar no inimigo, automaticamente a room irá reiniciar, assim como tudo que está nela. Por exemplo:

Evento de Colisão do personagem com o inimigo:
Código:
room_restart() //Tudo na room irá ficar do jeito que você programou

Não sei se você quer que a room reinicie também, mas com este código, o personagem volta pro começo dela também. Razz
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 12:25
Rhino escreveu:Você pode usar os comandos room_restart, pois assim, quando o personagem encostar no inimigo, automaticamente a room irá reiniciar, assim como tudo que está nela. Por exemplo:

Evento de Colisão do personagem com o inimigo:
Código:
room_restart() //Tudo na room irá ficar do jeito que você programou

Não sei se você quer que a room reinicie também, mas com este código, o personagem volta pro começo dela também. Razz
Huumm, deu certo!

Eu quero fazer assim agora:

1 - Colocar uma bandeira no final, e quando o personagem chegar lá ele passa de fase.

Objetivos:

1 - Colocar uma bandeira.

2 - Criar uma 2 fase.

3 - Quando passar pela fase 2 aparecer: "Parabéns! Você venceu".


Como posso fazer tudo isso?

Sou iniciante (:
avatar
Data de inscrição : 23/06/2009
Número de Mensagens : 540
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 12:29
1 - Evento de colisão do player com a bandeira
Código:

room_goto()//Dentro dos parênteses coloca a próxima room

2 - É só criar mais uma room, após a primeira

3 - No evento de colisão do player com a bandeira, coloca:
Código:

show_message('')//Dentro das aspas coloque Parabéns, você venceu!
avatar
Ranking : Nota C
Notas recebidas : C-B
Data de inscrição : 17/04/2010
Número de Mensagens : 136
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 13:01
Você pode fazer como o Edu4 falou, caso o objeto_bandeira seja quem vá controlar a passagem entre uma room ou outra.
Caso você queira que, por exemplo, ao sair da room, você passe de fase, você pode usar o comando Outside Room e colocar dentro dele:

Outside Room
Código:
room_goto(nome_da_próxima_room) //Faz com que você vá a uma room especificada

É claro que se você fizer isso, tenha cuidado caso seu jogo possua buracos, pois dai você teria que criar um objeto para fazer com que o jogador morra e não deixá-lo passar para a próxima room!
avatar
Ranking : Nota E
Notas recebidas : E
Data de inscrição : 14/02/2011
Número de Mensagens : 396
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 13:24
Para colocar vidas, basta colocar no Create:

vidas=3 //Define as vidas para 3

Agora, na colisão com o inimigo:

//Tira uma vida e reinicia room
vidas -=1
room_restart()
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 14:02
Edu4 escreveu:1 - Evento de colisão do player com a bandeira
Código:

room_goto()//Dentro dos parênteses coloca a próxima room

2 - É só criar mais uma room, após a primeira

3 - No evento de colisão do player com a bandeira, coloca:
Código:

show_message('')//Dentro das aspas coloque Parabéns, você venceu!
As 2 eu consegui fazer, só a 3 que não entendi. Tem como explicar em detalhes como fazer?

Eu sou iniciante!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 14:07
Evento de colisão do player com a bandeira:
Código:
show_message('Parabéns, você venceu!')
Quando o player colidir com a bandeira vai dar essa mensagem, mas preste atenção, vc vai ter q fazer 2 bandeiras, uma pra passar de fase e outra pro fim do jogo, senão ele vai dar a mensagem e ainda passar pra proxima room.
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 14:40
andreh escreveu:Evento de colisão do player com a bandeira:
Código:
show_message('Parabéns, você venceu!')
Quando o player colidir com a bandeira vai dar essa mensagem, mas preste atenção, vc vai ter q fazer 2 bandeiras, uma pra passar de fase e outra pro fim do jogo, senão ele vai dar a mensagem e ainda passar pra proxima room.
Consegui, apareceu uma tela " Parabéns, você venceu!, ai tem a opção de clicar em OK, só quando clica não sai do jogo.

Como faço isso?

Quando clicar em OK, aparece outra tela "Deseja continuar?", ai vai ter as opções "Sim" e "Não". Se apertar "Sim", começa de novo. Se apertar "Não" fecha a janela.

Mais duas pergunta!

1 - Se o personagem encostar volta ao começo. Como eu faço para mudar isso? Quero fazer assim:
Quando encostar no personagem perde 1 vida e volta ao começo.

OBS.: Tem que fazer as vidas que ele tem!


2 - Como colocar som?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:07
Sobre a mensagem faça isso:
Código:
mensagem = show_message_ext('Parabéns, você venceu! Deseja continuar?','Sim','','Não')
if mensagem = 1
{game_restart()}
else
if mensagem = 3
{game_end()}

Sobre a vida:
Create do player:
Código:
lives = 3 //Mude o 3 para o numero de vida que vc quiser

Colisão do player com o inimigo:
Código:
if lives>1
lives -= 1
room_restart()
else
show_message('Você perdeu!')
game_restart()

Marque a room como persistent

Sobre o som: Você quer som de fundo ou efeito sonoro?
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:29
andreh escreveu:Sobre a mensagem faça isso:
Código:
mensagem = show_message_ext('Parabéns, você venceu! Deseja continuar?','Sim','','Não')
if mensagem = 1
{game_restart()}
else
if mensagem = 3
{game_end()}

Sobre a vida:
Create do player:
Código:
lives = 3 //Mude o 3 para o numero de vida que vc quiser

Colisão do player com o inimigo:
Código:
if lives>1
lives -= 1
room_restart()
else
show_message('Você perdeu!')
game_restart()

Marque a room como persistent

Sobre o som: Você quer som de fundo ou efeito sonoro?
1 - Apareceu a mensagem, só que quando clica em "Continuar" ou "Sair" não acontece nada.

2 - Como assim Create do Player?

3 - Como faço essa colisão do Player com o Inimigo? Tem várias opções "Move Fixed" etc.

4 - Efeito sonoro!
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:34
Hmmm... Acho que colocar o if na linha do else resolveria.
Código:
mensagem = show_message_ext('Parabéns, você venceu! Deseja continuar?','Sim','','Não')
if mensagem = 1
{game_restart()}
else if mensagem = 3
{game_end()}

O evento Create. Você sabe o que é um evento Create, não sabe? Add Event -> Create

Colisão é com eventos, não com ações. Add Event -> Collision -> (Escolha o objeto que vai colidir) -> Coloque o código lá
avatar
Ranking : Nota C
Notas recebidas : C-B
Data de inscrição : 17/04/2010
Número de Mensagens : 136
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:36
1 - Pra fazer uma janela de perguntas no Game Maker, você precisa fazer o seguinte:

Código:
switch (show_message_ext("Parabéns, você venceu! Gostaria de continuar?","Sim","","Não"))
{
case 1:
room_goto(nome_da_room)
break

case 3:
//alguma ação que você quer que ocorra caso a opção escolhida seja NÃO
break
}

2 - O Create do Player que ele se refere é ao Evento Create, cujo o símbolo é uma lâmpada. Nele, você deve declarar as variáveis que você quer que sejam usadas tanto nele (variáveis comuns) como em todos os objetos (variáveis globais).

3 - Para criar um Evento de Colisão, você tem que clicar em Add e depois naquelas duas setinhas vermelhas. Nisso, você deve especificar com qual objeto que você quer fazer a colisão. No caso, seria com o seu inimigo, portanto, na hora de selecionar o objeto, selecione o objeto_inimigo.

4 - Para adicionar um efeito sonoro, você pode ir na pasta Sounds, criar o som, depois clicar em Load Sound e escolher o som desejado. Se for uma música de fundo, selecione a opção (que fica logo abaixo) "Background Music" ou se for um efeito sonoro comum, como som de pontos, por exemplo, selecione "Normal Sound". Razz

EDIT: Verdade Markituh, comi bola ali. Valeu pela correção. Razz


Última edição por Rhino em Sab 30 Abr 2011, 15:55, editado 1 vez(es)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:38
1 - Mas eu testei e deu certo, vc não tirou nd do código né?

2 - Evento Create do objeto player

3 - Abra o objeto player > Add Event > Collision > objeto inimigo
Então coloque o código q eu falei antes.

4 - Na colisão com alguma coisa (o mesmo esquema de cima), coloque o código:
Código:
sound_play(nome do som)
Acredito q isso dê certo.

Testa ae e fala o resultado
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:45
Em verdade Rhino, a sua declaração switch está equivocada. A função só retorna 0 caso for pressionado ESC, 1 para a primeira opção, 2 para a segunda e 3 para a terceira. E já que temos o Sim na primeira, a segunda vazia, e o Não na terceira, os cases iam ser 1 e 3. Usar switch é um método prático, então se quiseres:
Código:
switch (show_message_ext("Parabéns, você venceu! Gostaria de continuar?","Sim","","Não"))
{
case 1:
room_goto(nome_da_room)
break;

case 3:
//alguma ação que você quer que ocorra caso a opção escolhida seja NÃO
break;
}
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 15:56
Markituh escreveu:Hmmm... Acho que colocar o if na linha do else resolveria.
Código:
mensagem = show_message_ext('Parabéns, você venceu! Deseja continuar?','Sim','','Não')
if mensagem = 1
{game_restart()}
else if mensagem = 3
{game_end()}

O evento Create. Você sabe o que é um evento Create, não sabe? Add Event -> Create

Colisão é com eventos, não com ações. Add Event -> Collision -> (Escolha o objeto que vai colidir) -> Coloque o código lá
Sim, eu sei que é para fazer isso. Add Event > Collision > Escolher o objeto. Só que eu não sei onde colocar esse código. Eu tenho que clicar em "Move Fixed", "Move Free", aonde?





Tem MSN para poder ajudar melhor?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/03/2011
Número de Mensagens : 183
Insígnias de JAM :

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 16:07
Não, não. O q estamos te passando são códigos. Códigos vc coloca em outro lugar. Veja o retangulo maior q vc marcou na sua foto, no canto direito dele tem varias abas, clique na aba Control, nessa aba, vai ter um icone com uma pasta desenhada, se vc deixar o mouse sobre o icone vai aparecer o nome "Execute Code", é aí q vc coloca o q a gente te passou!
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 16:30
andreh escreveu:Não, não. O q estamos te passando são códigos. Códigos vc coloca em outro lugar. Veja o retangulo maior q vc marcou na sua foto, no canto direito dele tem varias abas, clique na aba Control, nessa aba, vai ter um icone com uma pasta desenhada, se vc deixar o mouse sobre o icone vai aparecer o nome "Execute Code", é aí q vc coloca o q a gente te passou!
Agora sim (:

Deu tudo certo. Apenas uma problema!

if lives>1
lives -= 1
room_restart()
else
show_message('Você perdeu!')
game_restart()

Executei o jogo, e deu erro na linha 4 else. O que eu faço?

Como eu coloco um menu em cima mostrando quantas vidas o player tem?
avatar
Ranking : Nota C
Notas recebidas : C-B
Data de inscrição : 17/04/2010
Número de Mensagens : 136
Insígnias de JAM :

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

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

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 16:37
Sempre use "{" depois dos códigos e sempre termine com "}". São as famosas chaves. Assim, você evita de gerar possíveis bugs. No caso, vai ficar assim:

Código:
if lives>1
{
lives -= 1
room_restart()
}
else
{
show_message('Você perdeu!')
game_restart()
}
avatar
Data de inscrição : 30/04/2011
Número de Mensagens : 13
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.hardware.com.br/comunidade/

Re: Personagem encostando em seu inimigo, e não está acontecendo nada!

em Sab 30 Abr 2011, 17:38
Rhino escreveu:Sempre use "{" depois dos códigos e sempre termine com "}". São as famosas chaves. Assim, você evita de gerar possíveis bugs. No caso, vai ficar assim:

Código:
if lives>1
{
lives -= 1
room_restart()
}
else
{
show_message('Você perdeu!')
game_restart()
}
Fiz isso, só que quando ele encosta 3 vezes no inimigo, apenas aparece "Você perdeu". Eu quero colocar o menu em cima, mostrando o tanto de vidas que o player tem.
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