Sessió 3. Objectes amunt i avall

Pla de treball

  • Desplaçar objectes endavant i endarrera.
  • Pujar i baixar d’objectes

Arrosseguem i estirem

A la sessió anterior heu aconseguit crear dos escenaris, un de principal i un altre per guardar els objectes que aneu recollint. Alguns d’aquests objectes estan amagats i cal fer-los visibles de diferents formes com, per exemple, movent un altre objecte que l’amaga al darrera. En aquesta sessió veurem com fer-ho.


Pas a pas Fem-ho pas a pas

  • Entrem al nostre compte de l’Scratch i fem una còpia del nostre projecte m3repte21 i li canviem el nom a m3repte31.
  • Recordeu que tenim amagada una clau darrera les roques. Per tant, hem d’arrossegar aquestes roques per aconseguir que la clau sigui visible.
  • Per començar, haurem de fixar quines són les accions que cal dur a terme i també quins són els objectes que hi estan implicats. En aquest cas són les roques i el personatge qui duran a terme les accions. Establirem pas a pas com hem de programar un i altre.
  • Abans de centrar-nos en cadascun, crearem les variables necessàries per guardar les dades que aniran canviant. Recordeu que per crear variables hem d’anar al menú de Dades i triar Crea una variable (si necessiteu repassar, podeu consultar la sessió 4 del mòdul 2).

 

  • Les variables que heu de crear són: Resposta, que ens servirà per recollir què vol fer el personatge amb les roques; PosicioRoquesx i PosicioRoquesy que guardaran la posició de les roques quan siguin mogudes.

  • Un cop creades les variables, programarem primer el personatge i després l’objecte.
  • Personatge:
    • Per assegurar-nos que al començar el programa totes les variables estiguin “netes”, cal inicialitzar-les a zero.


    • Ara és el moment de preguntar al personatge què vol fer. Un cop estigui davant de les roques, és a dir, “tocant” les roques, el personatge ens ha de preguntar què volem fer. Hem de plantejar 5 possibilitats: moure a la dreta, moure a l’esquerra, pujar a sobre, baixar de les roques o no fer res.
    • Per fer aparèixer la pregunta, demanarem al jugador que premi la tecla “q”. Pot ser qualsevol tecla, la que us sembli més convenint.
    • Assignem a la Resposta el valor de 0 per assegurar-nos que tenim la variable sense cap resposta arrossegada d’una resposta anterior.
    • Finalment amb el bloc de sensors tocant, ens assegurem que la pregunta només aparegui en el moment en què el personatge està davant de les roques.

    • Plantegem la pregunta indicant les possibles respostes. Fixeu-vos que quan es demana la resposta s’espera que el jugador doni una resposta correcta. Podria ser que s’equivoqués i en aquest cas hauríem de tornar a fer la pregunta. Per controlar que la resposta és vàlida, afegirem el bloc Repeteix fins indicant les possibles respostes. Aquest bloc ens està dient que si no contestem amb una de les lletres esperades, seguirà fent la pregunta contínuament.

    • Només ens falta indicar quina acció ha de fer el personatge segons quina hagi estat la seva resposta. Aquests serien els blocs per aconseguir que quan la resposta sigui D (dreta) les roques es desplacin en aquella direcció.
    • Fem servir l’esdeveniment RoquesDreta per enviar a tots el programes que hagin de fer aquesta acció el senyal que s’han d’executar. A la sessió anterior ja havíem fet servir un esdeveniment.

    • I per a què el personatge es mogui igual que les roques, afegim

  • Objecte (roques)
    • Falta només programar el moviment de les roques. Fixeu-vos que és la mateixa estructura que el moviment del personatge, afegint les variables que recolliran les posicions “x” i “y” de les roques.


Icona repte Repte 1 Seguint el que heu fet fins ara, afegiu els blocs necessaris per moure les roques cap a l’esquerra quan el personatge contesti “E”.

Icona pista Pista: Fixeu-vos que tant el personatge com les roques es mouen a la vegada. No oblideu assignar a tots dos el mateix nombre de passos.


Pugem i baixem

Ja heu mobiltzat l’objecte endavant i endarrera amb l’ajut dels moviments del personatge. Ens falten els dos altres moviments: pujar sobre l’objecte i baixar.


Pas a pas Fem-ho pas a pas

  • Continuem amb el nostre projecte m3repte31 que tenim obert.
  • Per pujar sobre les roques hem de conèixer quines són les seves posicions “x” i “y”. Recordeu que anteriorment hem creat dues variables que ens guardaven aquests valors

  • Quan el personatge decideixi pujar sobre les roques, haurem d’indicar-li que vagi a una posició “x” i “y” situada sobre elles. Això ho podem aconseguir variant amb sumes o restes el valor de les variables PosicioRoquesx i PosicióRoquesy i obtenim el que s’anomena posicions relatives entre els dos objectes. Aquí teniu un exemple d’un altre programa.


Icona repte Repte 2 Afegeix els blocs necessaris per tal que el personatge pugi sobre les roques quan la resposta donada és “P”

Icona pista Pista: Per saber exactament quina operació de suma o resta heu de fer a les posicions “x” i “y” de les roques que us permetin situar al personatge, desplaceu-lo amb el ratolí al punt exacte on voleu que estigui i observeu la relació entre les posicions de les roques i les posicions del personatge.


Icona repte Repte 3 Afegeix els blocs necessaris per fer baixar al personatge quan es troba sobre les roques, és a dir, quan la resposta sigui “B”.

Icona pista Pista: Heu d’afegir algun tipus de control per tal que el personatge avisi que no pot baixar si està al terra.


Icona projecte El nostre projecte creix…

Continuem revisant i definint les accions que volem dur a terme a la nostra escape room. És el moment de decidir com interactúa el personatge amb els objectes:

  • Quins són els objectes que el personatge ha de moure?
  • Quines preguntes farem al personatge?
  • Cal que el personatge pugi o baixi d’algun dels objectes?
  • Què passarà quan el personatge faci algun d’aquests moviments?

Icona glosari Com que som programadors i programadores parlem de…

  • Posicions relatives: relació que existeix entre les posicions de dos o més objectes.