Introdução

Neste projeto vais aprender a criar um jogo de perguntas sobre a tabuada de multiplicar, no qual terás que conseguir responder um numero máximo de perguntas corretas como possas em 30 segundos.

1ºPasso: Criar as perguntas

Começamos criando perguntas aleatórias as quais o jogador terá de responder.

Lista de tarefas da atividade

  • Cria um novo projeto no Scratch, e apaga o objeto gato de maneira a que o projeto fique totalmente vazio. Podes encontrar o editor online do Scratch em jumpto.cc/scratch-new.

  • Escolhe uma personagem e um fundo para o teu jogo. Podes escolher a que mais gostares! Exemplo:

    screenshot

  • Cria duas novas variáveis chamadas numero 1 e numero 2. Estas variáveis guardaram os dois números que vão ser multiplicados.

    screenshot

  • Insere este código a tua personagem, para fixar estas duas variáveis num numero aleatório entre 2 e 12.

        when flag clicked
    set [number 1 v] to (pick random (2) to (12))
    set [number 2 v] to (pick random (2) to (12))

  • Depois podes pedir ao jogador que de uma resposta, e dizer lhe se esta correta ou não.

        when flag clicked
    set [number 1 v] to (pick random (2) to (12))
    set [number 2 v] to (pick random (2) to (12))
    ask (join (number 1)(join [ x ] (number 2))) and wait
    if <(answer) = ((number 1)*(number 2))> then
        say [yes! :)] for (2) secs
    else
        say [nope :(] for (2) secs
    end

  • Experimenta o teu projeto duas vezes, na primeira escrevendo uma resposta correta e depois uma resposta incorreta.

  • Insere um bloco por sempre a volta deste código, para que sejam feitas muitas perguntas ao jogador.

  • Cria um cronometro de conta decrescente no cenário, utilizando uma variável que se chame tempo.

  • Experimenta novamente o teu projeto. Deveras de poder continuar a fazer perguntas até que o tempo acabe.

Guarda o teu projeto

Desafio: Mudar os trajes

Podes mudar o traje da tua personagem, para que se adaptem a resposta do jogador?

screenshot

Challenge: Desafio: Inserir pontuação

Podes inserir pontuação ao teu jogo? Podes somar um ponto por cada resposta correta.

Guarda o teu projeto

2ºPasso: Jogadas múltiplas

Vamos inserir um botão de ‘Jogar’ ao teu jogo, para que possas jogar muitas vezes.

Lista de tarefas da atividade

  • Cria um novo objeto com um botão de ‘Jogar’, através do qual o jogador clicara nele para começar um novo jogo.

    screenshot

  • Insere este código ao teu novo botão.

        when flag clicked
    show

    when this sprite clicked
    hide
    broadcast [start v]

    Este código mostra o botão de jogar quando o projeto começa. Ao carregar no botão, ele esconde se e envia uma mensagem para que o jogo comece.

  • Precisas de editar o código da tua personagem para que o jogo comece quando receber a mensagem de Iniciar , e não quando a bandeira for pressionada.

    Substitui o código ao pressionar a bandeira verde por ao receber Iniciar.

    screenshot

  • Faz clique na bandeira verde e depois pressiona o teu novo botão de jogo para o experimentares. O jogo só deve de começar ao fazeres clique encima do botão.

  • Já reparas te que o cronometro começa a contagem quando fazes clique na bandeira verde, e não quando começas o jogo?

    screenshot

    Podes solucionar este problema?

  • Faz clique no cenário, e substitui o bloco parar todos por uma mensagem de fim .

    screenshot

  • Agora podes inserir código ao botão para que ele volte a aparecer no fim de cada jogo.

        when I receive [end v]
    show

  • Também terás de fazer que a tua personagem deixe de fazer perguntas no fim de cada jogo.

        when I receive [end v]
    stop [other scripts in sprite v]

  • Prova o botão jogando varias vezes. Deveras de ver aparecer o botão de jogar depois de cada jogo.

        set [time v] to [10]

  • Podes também fazer que a forma do botão mude quando lhe aproximes o rato.

        when flag clicked
    show
    forever
    if <touching [mouse-pointer v]?> then
        set [fisheye v] effect to (30)
    else
        set [fisheye v] effect to (0)
    end
    end

    screenshot

Guarda o teu projeto

Desafio: Ecrã de inicio

Podes inserir outro fundo ao teu cenário, para que se converta no ecrã de inicio do jogo? Podes utilizar os blocos ao receber inicio e ao receber fim para mudar de um cenário para outro.

Também podes mostrar e esconder a tua personagem e o cronometro se utilizares estes blocos:

show variable [time v]

hide variable [time v]

screenshot

Guarda o teu projeto

3ºPasso: Inserir ícones

Em vez de a tua personagem dizer sim! :) ou não :( ao jogador, vamos inserir alguns ícones para que ajudem o jogador a saber como lhe esta a correr.

Guarda o teu projeto

Desafio: Melhorar a animação

Podes melhorar a animação dos teus ícones? Poderias programar o certo e o errado para que aparecessem e desaparecessem progressivamente. Ou te poderias utilizar mais efeitos divertidos:

screenshot

Guarda o teu projeto

Challenge: Desafio: Som e música

Podes inserir efeitos de som e música ao teu jogo? Por exemplo:

  • Reproduzir um som quando o jogador deia uma resposta certa ou errada;
  • Inserir um som de tic-tac ao cronometro de contagem decrescente;
  • Reproduzir um som quando o tempo do jogo acabe;

        play drum (10 v) for (0.1) beats

  • Também poderias reproduzir musica continuamente num bloco.

Guarda o teu projeto

Desafio: Correr por 10 pontos

Podes mudar o teu jogo para que o jogador em vez de responder a tantas perguntas como possa em 30 segundos, veja quanto tempo demora a conseguir 10 respostas corretas?

Para fazer isto o único que precisas é de mudar o código do cronometro.

    when I receive [start v]
    set [time v] to (30)
    repeat until <(time) = [0]>
        wait (1) secs
        change [time v] by (-1)
    end
    broadcast [end v]

Guarda o teu projeto

Desafio: Ecrã de instruções

Podes inserir um ecrã de instruções ao teu jogo no qual expliques ao jogador como se joga? Precisaras de um botão de ‘instruções’ e outro de ‘fundo de cenário’.

screenshot

Podes também precisar de um botão de ‘Voltar’ que te mostre novamente o menu principal.

    broadcast [main menu v]

Guarda o teu projeto