soma de pontos na coleta de objetos diferentes

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

soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Ter 15 Jul 2014, 11:56

Olá pessoal, estou terminando meu jogo didático graças ao pessoal aqui do fórum e tenho mais algumas dúvidas.
O personagem do meu jogo é uma célula que precisa absorver 4 objetos diferentes, em quantidades diferentes para passar de fase.
Ele possui 4 fases, na primeira ele tem 10 peças de um único objeto (azul), mas ele precisa pegar só 5, se ele pegar mais que 5 ele perde, precisa manter o equilíbrio.
Na segunda fase, ele tem estes 10 objetos azuis e mais um outro objeto (vermelho) que precisa coletar apenas 03 de 06.
Na terceira é incorporado mais um objeto (roxo) com sua quantidade específica e na quarta fase ele tem outro objeto (verde)
Resumindo:
Fase 1- 10 objetos azuis, precisa coletar 05
Fase 2- 10 azuis + 06 vermelhos, precisa coletar 05 azuis + 03 vermelhos
Fase 3- 10 azuis + 06 vermelhos + 08 roxos, precisa coletar 05 azuis + 03 vermelhos + 04 roxos
Fase 4- 10 azuis + 06 vermelhos + 08 roxos + 04 verdes, precisa coletar 05 azuis + 03 vermelhos + 04 roxos + 02 verdes.

Não sei como fazer para:
1- Ao coletar a quantidade certa de objetos de cada fase ele passar para a próxima.
2- Ao coletar coletar um objeto a mais que a quantidade estipulada ele perca no jogo, game over
obrigado a quem puder me ajudar

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por Mannoroth em Ter 15 Jul 2014, 15:00

seu personagem já está coletando os objetos certo? quando ele pega objeto você deve ter uma variável que conte os objetos, essa variável você cria no event create do seu personagem num_azuis=0. Exemplo:
No obj_personagem você cria evento collision com objeto azul e bota no code:
Código:
num_azuis+=1
Aí no event step no obj_personagem você bota:
Código:
if num_azuis=5 room=2
nesse code acima está dizendo que se ele coletar 5 objetos azuis, irá passar automaticamente para a room2.
Mas isso não será suficiente na segunda fase, uma vez que você também quer que ele colete objetos vermelhos, e nas próximas fases a idéia continua. Então  no event step do obj_personagem você altera o que falei acima para colocar assim:
Código:
if room=1 {if num_azuis=5 room=2; if num_azuis>5 room=r_gameover}
if room=2 {
if num_azuis=5 and num_vermelhos=3 room=3;
if num_azuis>5 or num_vermelhos>3 room=r_gameover
}
if room=3 {
if num_azuis=5 and num_vermelhos=3 and num_roxos=4 room=4;
if num_azuis>5 or num_vermelhos>3 or num_roxos>4 room=r_gameover
}
//por fim, faça o mesmo com a room4, não preciso explicar né?
No caso, programe as rooms room1,room2,room3,room4,r_gameover

Mannoroth

Ranking : Nota D
Número de Mensagens : 836
Idade : 26
Data de inscrição : 05/10/2010
Notas recebidas : D+D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por DUDU951 em Ter 15 Jul 2014, 15:05

Você já criou variáveis para contar quantos de cada objeto/cor foram coletados?

Se não:
Variavel:
Logo que começar o jogo, em algum Create(ou pode ser no create do obj_azul msm), defina que:
Código:
objetoazul = 0//"objetoazul" é uma variável qualquer, você pode escolher outro nome

Supondo que o objeto será absorvido quando ele entrar em colisão com o personagem, você pode colocar assim na Colisão do obj_personagem com o obj_azul
Código:
objetoazul += 1 //isso fará com que seja adicionado +1 no valor da variável objetoazul

Dúvida1:  Eu não entendi se é pra passar de fase caso em qualquer momento do jogo que ele conseguir alcançar o número de objetos, ou se é apenas caso no final do jogo ele tiver coletado a quantidade certa.(Se for a qualquer momento do jogo, não teria como ultrapassar a quantidade né..)

Dúvida2: Para que ele perca o jogo caso ultrapassar a quantidade ideal, é só colocar no step de algum objeto que esteja sempre na room(pode ser o personagem):
Código:
if objetoazul >= 6//Caso a variavel "objetoazul" equivalha a 6 ou mais,
room_goto(GameOver)//vai pra room Game Over, mas você pode alterar para acontecer qualquer coisa que você quiser, como por exemplo, criar algum objeto GameOver etc.

DUDU951

Número de Mensagens : 90
Idade : 16
Data de inscrição : 24/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Ter 15 Jul 2014, 17:49

Olá, tentei a primeira opção e não deu certo
DUDU951, a dúvida 1 que vc se refere, sim , é em qualquer momento jogo, mas somente na fase 1 ele passará imediatamente para a fase 2, mas dai em diante ele terá que se preocupar em não coletar mais que o permitido, entendeu???
Eu segui as dicas de um fórum, criei um objeto personagem, um objeto parente e um objeto controle, vou tentar este código e darei um retorno.
Muito obrigado pessoal, pelas dicas e pela velocidade nas respostas
abraço

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Sab 19 Jul 2014, 11:17

Muda de fase mas não quando coleta cinco peças, tentei mudar uma série de códigos mas não consigo fazer ele ir para a próxima fase com a quantia desejada, ele vai assim que coleta o primeiro, alguém poderia me ajudar??

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por 7hiagomp em Sab 19 Jul 2014, 12:46

Existe um problema nessa lógica, se você teleporta automaticamente o player assim que ele consegue o numero correto de objetos, então você nunca vai ter um resultado de game over, já que não permite que mais objetos sejam coletados uma vez que se chegou ao número correto.  O ideal seria ter um outro objeto, que vai depender do seu jogo, um botão confirma, uma porta, uma saída, um meio do player dizer pro jogo "acabei" e esse objeto checar se a quantidade coletada estava correta ou errada;

--------------------------------------

explicando, você precisa de 3 objetos;
1 o player
2 o objeto a ser coletado
3 o objeto em que o player diz "acabei"

no código do player, é necessaria a variavel que armazene a qtd_objetos

ai fica, supondo. numa colisão
Código:
qtd_objetos +=1
instance_destroy("objeto coletado")

no objeto "acabei" a checagem;
Código:
if qtd_objetos == "numero certo"
 {
  room_goto_next();
 }else "codigo de game over aqui"

----------------------------------------

você não precisa na sala 2 refazer o check da sala 1 ( a menos que a sala 2 tenha objetos da sala 1) porque, uma vez que vc passou de sala você já confirmou que ele tinha a quantidade de objetos corretos da sala anterior.

reeditei o post pq eu me baguncei todo pra escrever. hahah

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por antchita em Seg 21 Jul 2014, 03:46

a melhor forma é fazer como o amigo ai em cima disse. mas podes usar tambem um alarm, quando ele coleta o numero ideal i alarm ativa e começa a contar, podes por mas uns 30 segundos de jogo e quando o tempo acabar ele checa se nesses trinta segundos ele apanhou outro ou outros objectos.
caso queira fazer assim e queira uma ajuda e
é so falar...

antchita

Ranking : Nota A
Número de Mensagens : 81
Idade : 25
Data de inscrição : 07/12/2012
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Seg 21 Jul 2014, 10:29

Olá pessoal, desculpem a falta de conhecimento, esta é a primeira vez que uso o GM e não consegui fazer o q foi citado acima, coloquei o priemiro código mas da erro qdo coloco o nome do "objeto coletado", copiei e colei o codigo.
outra dúvida, em que evento coloco o código 2 ??
Abraço e obrigado pela ajuda

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por antchita em Seg 21 Jul 2014, 18:36

a melhor ajuda no momento e ler ss listas dos iniciantes... faça isso! vc vas aprender a pescar e terAs sempre peixe pronto. me envia por mp o teu projecto ou o nome de todos objectos do teu jogo

antchita

Ranking : Nota A
Número de Mensagens : 81
Idade : 25
Data de inscrição : 07/12/2012
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por 7hiagomp em Seg 21 Jul 2014, 20:23

Fausto muita coisa pode depender de como você montou o seu código, como que vc está adicionando pontos e etc. Com as infos que vc deu o máximo que podemos te passar é a logica, se vc postar o código dos objetos que tem relação com a sua dúvida ai vamos poder ajudar mais.

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Ter 22 Jul 2014, 11:32

Olá pessoal, peço desculpas pela minha ignorância no GM, sou um professor de ensino médio que cansou de dar aula em livros (chato pra k...) e de ouvir que um cara de 40 anos (eu) tinha que parar de brincar com video game, então resolvi provar que os games ensinam. por isso to tentando fazer o jogo.
O que é e como faço esse MP?? kkkk
tenho 4 fases, na primeira o personagem coleta um objeto, na segunda ele coleta este objeto e + outro e assim vai, só que na primeira fase coleto 5 peças do objecto_agu e muda de fase certinho, mas na segunda fase, preciso coletar as 5 peças deste objeto e mais 3 de outro, mas tá mudando de fase assim que coleto os 5 do objecto_agu. o que acontece??:

parent_nucleo:
CREATE: num_objecto_ion=0, num_objecto_agu=0, num_objecto_subs_verm=0 e num_objecto_verd=0

STEP: if num_objecto_agu=5 room=room_fase_2;
if room=room_fase_2
{
if num_objecto_agu=5 and num_objecto_ion=3 room=room_fase_3;
if num_objecto_agu>5 or num_objecto_ion>3 room=r_gameover
}
if room=room_fase_3 {
if num_objecto_agu=5 and num_objecto_ion=3 and num_objecto_subs_verm=4 room=room_fase_4;
if num_objecto_agu>5 or num_objecto_ion>3 or num_objecto_subs_verm>4 room=r_gameover
}
COLISÃO: global.objecto_agu+=1 e num_objecto_agu+=1 ( e assim com todos os objetos)

Ele está trocando de fase certinho, como vcs me passaram, mas não dá game over
Caso alguém queira trabalhar em conjunto, este jogo é bem simples e visa somente o ensino, ele será publicado em congresso de ensino de Biologia e talvez no simpósio em Porto Alegre, no qual fiz menção ao GM Brasil como um colaborador ao projeto.
Obrigado

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por 7hiagomp em Ter 22 Jul 2014, 12:26

Ele não dá game over por conta desse problema na lógica que eu passei acima.  Não é o codigo.

No momento você tem 2 objetos, um o player, outro os objetos a serem coletados.  Você precisa criar 1 terceiro elemento que vai ser a confirmação.  É um objeto pro player dizer ao jogo "acabei".  E só aí é que você vai fazer a checagem.  Além disso não é necessário fazer check duas vezes, a menos que existam objetos da 1 fase na 2 segunda.  (mas parece q não tem).

ficaria

heroi

colisão do herói com o "objeto_agu:

Código:

global.num_objeto_agu += 1
with instance_place(x, y, objecto_agu) {
          instance_destroy();
}
nesse código acima, você vai criar um pra cada colisão no player e substituir o nome dos objetos pelos corretos.
ps.: nao tenho certeza se esse instance_destroy funciona.  acredito que sim, mas vou dar uma lida enquanto vc testa.

Agora a outra checagem vai ficar FORA do objeto herói, não sei o que se encaixa no seu jogo, pode ser um botão "finalizar", uma porta pro núcleo sair, não sei.  Mas qualquer coisa que o seu player possa usar pra dizer pro jogo "acabei";

vou por um código como se fosse pra o player clicar num botão e então o jogo conferir se fez a fase corretamente.  Se não for de clicar, você pode mudar a condição mouse_check para qualquer uma de apertar botão que queira.

//"supondo que é um botão pra clicar confirma"
create do objeto Confirma:

Código:

room = room_fase_1;
global.num_objecto_ion = 0;
global.num_objecto_agu = 0;
global.num_objecto_subs_verm = 0;
global.num_objecto_verd = 0;
Essas variaveis saem do create do heroi e vão para o create do "confirmar", além disso se tornam globais. assim o heroi pode incrementá-las e esse objeto aqui conferi-las

objeto CONFIRMA:

Aqui sim, quando o player clicar com o mouse sobre o objeto que diz "acabei", a checagem de quantidade correta ou errada, vai ser feita e ele vai ser direcionado para a room correta.
Código:
if mouse_check_button_pressed(mb_left)
{  
if room == room_fase_4 && global.num_objecto_verd == "numero correto aqui"
{
  room = room_fase_5; //aqui o room da vitória.
} else if room == room_fase_3 && global.num_objecto_subs_verm == "numero correto aqui"
  {
    room = room_fase_4;
  } else if room == room_fase_2 && global.num_objecto_ion == "numero correto aqui"
     {
        room = room_fase_3;
     } else if room == room_fase_1 && global.num_objecto_agu == "numero correto aqui"
        {
           room = room_fase_2;  
        } else room = room_game_over  //nome do seu room de game over

room_goto(room)
}

Lembrando que por exemplo, quando a checagem de objetos agu da primeira sala acontece, ela é valida até o final.  Então não é necessário na 4 sala, checar se a quantidade de objetos da 1 sala ainda permance correta.  EXCETO SE você tiver objetos da primeira sala nas outras salas.

E cara, vou te dar uma dica.  Use nomes menores nas variáveis, isso diminui a chance de você escrever ele errado em algum lugar, além de facilitar na hora de conferir. Seria muito mais fácil trabalhar com uma variavel chamada;  "global.verm"  do que "global.num_objecto_subs_verm",  principalmente as 4 ao mesmo tempo, não é um requisito, mas facilita muito.

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por Mannoroth em Qui 31 Jul 2014, 21:59

fausto.e.deoliveira escreveu:
STEP: if num_objecto_agu=5 room=room_fase_2;
if room=room_fase_2
{
if num_objecto_agu=5 and num_objecto_ion=3 room=room_fase_3;
if num_objecto_agu>5 or num_objecto_ion>3 room=r_gameover
}
if room=room_fase_3 {
if num_objecto_agu=5 and num_objecto_ion=3 and num_objecto_subs_verm=4 room=room_fase_4;
if num_objecto_agu>5 or num_objecto_ion>3 or num_objecto_subs_verm>4 room=r_gameover
}
COLISÃO: global.objecto_agu+=1 e num_objecto_agu+=1 ( e assim com todos os objetos)

Ele está trocando de fase certinho, como vcs me passaram, mas não dá game over
Caso alguém queira trabalhar em conjunto, este jogo é bem simples e visa somente o ensino, ele será publicado em congresso de ensino de Biologia e talvez no simpósio em Porto Alegre, no qual fiz menção ao GM Brasil como um colaborador ao projeto.
Obrigado
Amigo, você programou a r_gameover para ser a tela de gameover? Você renomeou a room do game over para r_gameover? Você tem que criar a room chamada r_gameover e programar de forma que assim que a room inicie apareça a mensagem de game over e talz. Existe mais de uma forma de programar um game over, uma delas é ir pra tela de game over, a outra é aparecer um simples objeto que diz ao player que o jogo acabou e clicando leva de volta ao começo do jogo, enfim.
Note que segundo o código, assim que o player pega mais objetos que o que ele deve coletar, será invocada a room denominada r_gameover, programe esta room corretamente e tudo ficará perfeito. (o nome r_gameover foi o que eu escolhi mas pode ser qualquer nome, você que escolhe.)
Quando é o simpósio em Porto Alegre?

Mannoroth

Ranking : Nota D
Número de Mensagens : 836
Idade : 26
Data de inscrição : 05/10/2010
Notas recebidas : D+D
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Sex 01 Ago 2014, 14:46

O Simpósio é este
http://www.sbgames.org/sbgames2014/

estou inscrevendo o game nele, mas já será publicado um estudo sobre as aplicações do game agora em setembro em um congresso na USP.
vou testar os códigos

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por fausto.e.deoliveira em Sex 01 Ago 2014, 21:32

Valeu a dica, deu certo!!! o game vai para a r_gameover,

agora só preciso testar a sugestão do Thiago para eliminar o problema da coleta para passar a próxima fase,
Mais uma vez parabéns aos mediadores do fórum!!!!

fausto.e.deoliveira

Número de Mensagens : 25
Data de inscrição : 15/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: soma de pontos na coleta de objetos diferentes

Mensagem por Conteúdo patrocinado Hoje à(s) 19:20


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