Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Personagens aleatórios

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
romano.martino
Novato
Novato
Reações: 0
Mensagens: 18

Personagens aleatórios

Mensagem por romano.martino » Ter Dez 20, 2016 5:03 pm

Boa tarde gente, estou fazendo um jogo simples estilo aquele do google quando não tem internet, ou seja, o personagem está estático, o background que se movimenta e aparecem obstáculos aleatoriamente do "final" da room.

Bom, já fiz tudo, a única coisa que não estou conseguindo fazer é o obstáculo aparecer em tempos aleatórios, da ultima vez que tentei fazer no GM8, usei alarm e irandom com um espaço de 90 a 210 steps se não me engano, só que ele no terceiro ou quarto obstáculo eles começavam a aparecer dois de uma vez, um grudado no outro, aí não dava pra pular e sempre perdia...
Enfim, a minha dúvida é como fazer esse obstáculo, no caso, um inimigo, aparecer em um intervalo de tempo aleatório E com uma sprite de inimigo aleatória. Será que vcs poderiam me dar uma luz?
Agradeço desde já. 

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Personagens aleatórios

Mensagem por Rodrigo Santiago » Ter Dez 20, 2016 5:28 pm

Isso certamente foi um erro no seu código. Mas vamos ao que interessa :

[create]

Código: Selecionar todos

randomize(); //so  pra ajudar no aleatorio

inimigos[0] = Obj_Inimigo1;
inimigos[1] = Obj_Inimigo2; 
//[..etc]
timer = 0;
[step]

Código: Selecionar todos

if (timer <= 0) {
  timer = irandom_range(90,210);
  instance_create(x ,y ,inimigos[irandom_range(0,array_length_1d(inimigos))];
} else {
  timer -= 1;
}
Coloca esse objeto no lugar onde você quer que os inimigos apareçam

Avatar do usuário
romano.martino
Novato
Novato
Reações: 0
Mensagens: 18

Re: Personagens aleatórios

Mensagem por romano.martino » Ter Dez 20, 2016 6:29 pm

Opa, aparentemente funcionou, agora outra treta que deu aqui é quanto ao HighScore...no GM8 era simples, vc perdia e usava o D&D e aparecia o Highscore pra vc adicionar seu nome, porem no Studio não tem mais essa função, eu só consegui fazer aparecer o highscore, mas não editar na hora, como seria o código para fazer isso?

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Personagens aleatórios

Mensagem por Dust » Ter Dez 20, 2016 6:43 pm

Bem, experimente fazer o seu highscore de acordo com este tutorial.
Se você seguir o tutorial corretamente não havera problemas. Flw!

Avatar do usuário
romano.martino
Novato
Novato
Reações: 0
Mensagens: 18

Re: Personagens aleatórios

Mensagem por romano.martino » Ter Dez 20, 2016 7:02 pm

Rapaz, eu devo ser meio burro, pq comigo não deu certo não, ele dá erro na hora que colide com o inimigo..não consegui entender muito bem o código do cara..nunca fui bom com for :/

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Personagens aleatórios

Mensagem por Rodrigo Santiago » Ter Dez 20, 2016 11:04 pm

Romano sua duvida agora é fazer highscore  ?

Avatar do usuário
romano.martino
Novato
Novato
Reações: 0
Mensagens: 18

Re: Personagens aleatórios

Mensagem por romano.martino » Qua Dez 21, 2016 11:33 pm

Isso, entrei no tutorial que o Dust mandou, mas não deu muito certo...a minha ideia era fazer igual no GM8, a hora que perde, aparece a lista de highscore e vc pode colocar seu nome, mas pelo oq eu vi em um tutorial da YoYo Games, o que dá pra fazer no Studio é criar o arquivo .ini, ai a hora que vc perde, o jogo grava seu score automaticamente no arquivo, aí depois vc cria uma room de highscores, com um botão no menu inicial levando à essa room, e lá vc só vê os scores. No GM8 era mais fácil, pelo menos pra mim :/

EDIT
Ahh, esqueci de falar, o código que vc sugeriu pra aparecer os personagens aleatórios funcionou só enquanto era um personagem só, quando adicionei mais um inimigo ele deu erro nessa linha:

Código: Selecionar todos

instance_create(x ,y ,inimigos[irandom_range(0,array_length_1d(inimigos))]);

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: Personagens aleatórios

Mensagem por Superbomber » Qui Dez 22, 2016 12:33 am

Romano, tente desta forma:

Código: Selecionar todos

instance_create(x ,y , inimigos[ irandom_range( 0, array_length_1d(inimigos) - 1 ) ]);
Lembre-se de antes de pedir ajuda tentar usar a lógica para resolver o problema, mesmo que leve 2 horas.

Como o primeiro índice de uma array é zero, o ultimo índice é o tamanho da array menos um.
Ex.: arr[0] = 9001;

O comprimento da array é um, se você tentar acessar o índice um da array irá dar erro.

Enquanto ao highscore, veja no docs sobre as funções prefixadas por highscore_.
> https://docs.yoyogames.com/source/dadiospice/002_reference/social%20gaming/achievements%20and%20leaderboards/local%20high%20scores/index.html

Bye. :flw:
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
romano.martino
Novato
Novato
Reações: 0
Mensagens: 18

Re: Personagens aleatórios

Mensagem por romano.martino » Qui Dez 22, 2016 10:47 pm

Opa, agora funcionou SuperBomber, foi mal é que a minha lógica (principalmente quando o assunto é array ou laço (for)) é péssima desde os tempos de faculdade nas aulas de lógica de programação...e como "estudei" lógica a anos atrás, não sou muito bom...
Enfim, quanto aos highscores, além de não estar conseguindo fazer, a minha dúvida é a seguinte: como funciona no mobile o arquivo .ini? depois de instalado no celular, aonde ele vai criar esse arquivo? Em uma pasta do cel? Ah..e eu dei uma boa lida na documentação da YoYo sobre highscore que não me ajudou muito não...amanhã assim que voltar do serviço irei pesquisar alguns vídeos, não quero um score mt elaborado, só aquela lista de 10 mesmo e ir adicionando quando bate algum record..nada de mais, mas eu acho q dou conta de desvendar isso aí :)

EDIT
Ai galera, tudo certo? Bom, consegui fazer a gravação do score deu certo, ok, porém agora temos um novo problema, antes de inserir os códigos do score, aparentemente estava tudo rodando perfeito, mas agora, se eu pulo, não perde mais no primeiro contato com o inimigo, ou seja:
Começou a room do jogo, eu dei um pulo só por diversão, fiquei esperando o inimigo bater em mim, ele simplesmente para em mim e eu não perco o jogo, só perco quando o próximo encostar, isso se eu não pular novamente. Outro problema na colisão é se eu encosto na cabeça do inimigo, fica o sprite da queda no personagem principal, eu não perco, e o inimigo trava aonde ocorreu o contato. Esses são os problemas de colisão, mas temos outro em relação ao som do jogo.
Bom, na primeira vez que roda o jogo é tudo perfeito em relação a sons, porém, depois de eu gravar o score ao perder, aparece a room que mostra os scores e tem o botão de voltar, que volta para a seleção de personagens, enfim, a partir daí os sons já não funcionam mais, a tela de seleção fica muda, se voltar para o menu inicial o mesmo também fica mudo, se eu escolher um novo personagem a room do jogo tbm não tem trilha sonora, os sons de seleção e de voltar também não funcionam...
Bom, na verdade agora estou no serviço, mas o código é que coloquei é mais ou menos assim:
Criei um evento "Room Start" e usei o D&D pra iniciar o som, e outro evento de ao sair da room com o D&D de parar o som..não sei se é assim mesmo ou se tem outra maneira para evitar esses tipos de bug, se quiserem mais detalhes é só pedir que depois mando.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes