Laika al laberint espacial

From Edutec Wiki
Revision as of 10:49, 3 December 2018 by Ncoll (Talk | contribs)

Jump to: navigation, search

 

 

El Laberint

La pràctica que es desenvolupa a continuació permet dissenyar el joc “El Laberint”. Aquest consisteix en aconseguir alliberar la gossa Laika del laberint on es troba. El personatge comença el joc amb 3 vides i cada vegada que toca una de les parets del laberint en perd una. 

RTENOTITLE

*El present tutorial està dissenyat amb l'Scratch 3.0 en motiu de la seva propera estrena. No obstant és totalment replicable amb els mateixos blocs de programació amb l'Scratch 2.0. Fes clic aquí per començar amb la plantilla del laberint ja creada. 

 

Preparació del joc

El primer pas és crear el laberint. Aquest serà un objecte per tal de facilitar la programació del joc aconseguint que un altre objecte el toqui. Així que, obrim l’editor d’imatges de la categoria “objectes”RTENOTITLE  i de les opcions que se’ns despleguen escollim la de “dibuix” RTENOTITLE 

  RTENOTITLE

Fixem-nos en els elements remarcats a la imatge que es mostra a contianuació. Aquests seran els paràmetres que utilitzarem per dibuixar el laberint.

RTENOTITLE

1) Dibuixem primer el contron del laberint amb un quadrat buit.

RTENOTITLE

2) Seguidament tracem les línies que separen els carrils del laberint (si mentre dibuixem mentenim premuda la tecla “Shift” del teclat aconseguirem que la línia que dibuixem sigui recte.

RTENOTITLE

3) Per últim, modifiquem el nom de l’objecte posant-li un nom que ens pugui ser facilment identificable posteriorment.

RTENOTITLE

4) El resultat és el següent:

RTENOTITLE

5) Pugem un segon objecte, que serà el protagonista del joc. Per fer-ho tornem a la categoria   RTENOTITLE i fem clic sobre aquesta mateixa icona.

RTENOTITLE

5)Per acabar amb la preparació del joc, si volem també podem afegir un fons. Fem clic a la icona que trobem a l’escenari  i seleccionem un dels fons de la biblioteca del programa.

RTENOTITLE

RTENOTITLE

 

Programació del joc

Fins aquí hem preparat l’estructura del joc, en aquest segon apartat passem a contruir el programa.

1) Comencem aconseguint que el personatge es mogui i que a més, es mogui seguint el punter del ratolí. Per fer-ho hem d’assegurar-nos que tenim seleccionat el personatge i acte seguit construir el següent programa de codi:

RTENOTITLERTENOTITLE

2) Ara que ja tenim el moviment del personatge hem d’aconseguir que detecti les parets del laberint, ja que fins ara pot moure’s per tot l’espai de l’escenari sense cap impediment.

Seleccionem doncs els blocs que es mostren a continuació i en muntem un petit programa:


RTENOTITLERTENOTITLERTENOTITLE

                                                                     ='

                                         RTENOTITLE

3) Agrupem el nou bloc de programació amb el que haviem fet

RTENOTITLE 

4) Millorem el programa afegint que al iniciar el joc el nostre personatge comenci sempre al punt d’inici, i es mostri en la direcció correcte.

RTENOTITLE

5) Donem dinamisme al joc aconseguint moure el personatge. Per aconseguir-ho caldrà utilitzar els blocs que permeten canviar el vestit d’un personatge. Si consulten la pestanya “vestits” del personatge que hem escollit veiem que en té 4:

RTENOTITLE

Eliminem l’últim vestit, és a dir, el número 4 ja que el personatge es mostra d’esquenes i no ens interessa en aquest joc que es visualitzi aquest vestit. Per eliminiar-lo només cal que ens posem sobre el vestit 4 i fem clic a la creu de dalt a la dreta de la casella.


6) Seguidament tornem a la pestanya de programació i afegim els blocs que tenim a continuació (els quals ens permeten canviar el vestit del personatge fent així més real el moviment d’aquest):

RTENOTITLERTENOTITLE

                         =

            RTENOTITLE

7) Afegim complexitat al programa fent que el joc comenci amb 3 vides i les perdi cada vegada que el personatge topa amb una paret del laberint.

Seleccionem la categoria RTENOTITLE i fem clic sobre ?, observem que se’ns obra una nova pantalla on podem posar el nom de la variable que volem crear. En aquest cas volem que sigui el comptador de vides, per tant l’anomenem amb aquest nom:

RTENOTITLE

Observem que un cop creada ja ens apareix a l’apartat de variables amb el nom que li hem posat.

RTENOTITLE

La casella que ens apareix a l’esquerre del bloc serveix perquè la variable se’ns mostri a la pantalla del joc (o per contra, no es mostri si el deixem sense seleccionar).

Afegim al programa ja construït que al tocar una de les parets del laberint, a banda de retornar a l’inici resti també una vida del personatge.

RTENOTITLE

Adonem-nos que al iniciar el comptador  aquest es troba a 0. Per aconseguir que al iniciar el joc ja disposem d’alguna vida cal que fixem a l’inici que el marcador es trobi ja predeterminat amb per exemple 3 vides.

RTENOTITLE

8) Per acabar de tancar el joc farem que quan el comptador es trobi a 0 s’aturi tot.

Necessitem quatre blocs nous:

RTENOTITLERTENOTITLERTENOTITLERTENOTITLE

                                            =

               RTENOTITLE

Modifiquem el programa canviant el “per sempre” per el “repeteix fins” que el comptador de vides estigui a 0.

RTENOTITLE

Enviament de missatges

L’ús de missatges en la construcció dels programes és un bon mètode per fer que uns objectes es comuniquin amb els altres. En aquest cas ens servirà per reiniciar el joc cada vegada que el personatge toca una paret del laberint i a més ens permetrà sintetitzar el codi.

Necessitem dels dos blocs següents per utilitzar els missatges:

RTENOTITLE

El missatge que volem enviar cal que el personalitzem. Podem fer tants missatges com ordres necessitem realitzar. En aquest cas anomenem “Inici del joc” al missatge. RTENOTITLE

Modifiquem el programa que haviem construir afegint aquest blocs de programació. Per una banda organitzem les ordres d’inici del joc en un primer programa i col·loquem l’enviament de missatge en aquest primer bloc. Seguidament fem un segon bloc amb les accions que realitza el personatge un cop rep l’ordre d’iniciar-se.

També podem utilitzar l’enviament del missatge per quan es toquin les parets del laberint el joc es reinici automàticament. El codi quedaria així:

RTENOTITLE

 

 

 

Tancament del joc


Per finalitzar el joc afegirem un petit programa que permeti detectar quan el personatge ha arribat a la sortida del laberint.

1) Per fer-ho primer caldrà modificar el laberin i borrar-ne una paret al final:

RTENOTITLE

2) Un cop fet això, afegim el següent programa: 

RTENOTITLE

                                              =

   RTENOTITLE

3) Aquest cop però qui rep el missatge és un nou objecte. Generem un nou objecte i aquest cop fem ús del text de l’editor d’imatges:

RTENOTITLE

4) Per últim agefim el següent codi en aquest nou objecte:

RTENOTITLE

 

 

Fins aquí el joc del laberint. Com en qualsevol joc  és possible realitzar-ne variants, exensions i millores. A continuació us proposem dos reptes per aquells més curiosos: 

  • realitzar més nivells al joc. 
  • aconseguir començar a moure el personatge quan fem "clic" amb el ratolí darrere d'aquest (simulant que l'empenyem).