soma de pontos na coleta de objetos diferentes
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
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
- Ranking :
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :x 0
x 0
x 0
Reputação : 12
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
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:
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:
No obj_personagem você cria evento collision com objeto azul e bota no code:
- Código:
num_azuis+=1
- Código:
if num_azuis=5 room=2
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é?
- Data de inscrição : 24/06/2014
Número de Mensagens : 90
Insígnias de JAM :x 0
x 0
x 0
Reputação : 2
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
em Ter 15 Jul 2014, 15:05
Você já criou variáveis para contar quantos de cada objeto/cor foram coletados?
Se não:
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):
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.
Re: soma de pontos na coleta de objetos diferentes
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
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
Re: soma de pontos na coleta de objetos diferentes
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??
- Data de inscrição : 21/04/2014
Número de Mensagens : 124
Insígnias de JAM :x 0
x 0
x 0
Reputação : 24
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
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
no objeto "acabei" a checagem;
----------------------------------------
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
--------------------------------------
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
Re: soma de pontos na coleta de objetos diferentes
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...
caso queira fazer assim e queira uma ajuda e
é so falar...
Re: soma de pontos na coleta de objetos diferentes
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
outra dúvida, em que evento coloco o código 2 ??
Abraço e obrigado pela ajuda
Re: soma de pontos na coleta de objetos diferentes
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
- Data de inscrição : 21/04/2014
Número de Mensagens : 124
Insígnias de JAM :x 0
x 0
x 0
Reputação : 24
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
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.
Re: soma de pontos na coleta de objetos diferentes
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
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
- Data de inscrição : 21/04/2014
Número de Mensagens : 124
Insígnias de JAM :x 0
x 0
x 0
Reputação : 24
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
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
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"
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.
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();
}
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;
- 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.
- Ranking :
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :x 0
x 0
x 0
Reputação : 12
Prêmios: 0
: 0
: 0
Re: soma de pontos na coleta de objetos diferentes
em Qui 31 Jul 2014, 21:59
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.@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
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?
Re: soma de pontos na coleta de objetos diferentes
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
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
Re: soma de pontos na coleta de objetos diferentes
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!!!!
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!!!!
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum