Exercici: Pong

From Edutec Wiki
Revision as of 09:23, 1 June 2016 by Jogaye (Talk | contribs)

Jump to: navigation, search
Other languages:
català • ‎español


Introducció

El primer que farem és partir de zero, és a dir, triarem l'opció 'Nou' del menú 'Arxiu'. Ara tenim el gatet a l'escenari i el traurem. Ja sabeu com fer-ho: escollim les tisores i eliminem el gat. La idea és quedar-nos sense res! Construirem els objectes necessaris per al programa. Primer dibuixarem un pilota. Al menú nou objecte fem clic sobre el pinzell i s'obrirà l'eina de dibuix

Ejercicio Pong 01.png


Seleccionem l'eina cercle Archivo:Seleccionherramientacirculo.png i triem el cercle farcit Archivo: Pong03.png. Fem un cercle ni massa petit ni massa gran (amb la tecla majúscules pressionada acaonseguirem dibuixar un cercle i no una el·lipse) Ara tenim un objecte nou amb el qual podem fer coses, li posem de nom "Pilota".


Movent la pilota

Primer de tot, caldrà que tornem al llenç de programació, podem fer-ho prement el botó de Programes:

Pong04.png

Què podem fer? Per començar podem iniciar el programa prement la bandereta verda.

Pong01-1.png

Col·loquem aquest codi a l'escenari, Escrivim el codi de la "Pilota". Ja sabem com fer-ho, oi? Ja coneixem les instruccions 'mou-te', 'rebota en tocar una vora', l'estructura iterativa 'per sempre' i la instrucció que detecta si hem enviat un missatge. Combinant tot això podem fer el programet senzill

Pong06.png

Ara pressionem la bandera verda i posem el programa en funcionament. Comprovem com funciona el rebot.

Anem a afegir un nou objecte per detectar quan la pilota toca la part inferior de l'escenari.

Cada vegada que premem la bandera verda la pilota ira a la part superior central de l'escenari (0,160) i es mourà en direcció cap avall (180). Si deixem el codi d'aquesta manera la pilota sempre tindria el mateix moviment, farem que la direcció sigui diferent cada vegada, amb la instrucció.

Pong01-2.png


La paleta

Ja tenim la pilota en moviment, construïm un nou objecte per interactuar amb la pilota, A aquest objecte li anem a cridar "Paleta"

Pong01-4.png

A l'editor de dibuixos dibuixem un rectangle, procurant que el centre quedi ben col·locat

Pong02-1.png


A aquest objecte li afegim el següent codi.

Pong02-2.png

Amb aquest codi aconseguim que l'objecte "Paleta" segueixi el moviment en "x" del ratolí. Ara hem d'aconseguir que la paleta i la pilota interactuïn. Per a això modificarem el codi de la paleta de la següent forma.

Pong10-1.png


Més rebots

Anem a escriure el codi de rebotar.

Pong10-2.png


La línia de fons

Comprovem com funciona el rebot. Anem a afegir un nou objecte, que ens servirà per detectar quan la pilota toca la línia de fons i per tant perdem el punt. Crearem nou objecte, obrim l'editor de dibuix i dibuixem un objecte com es mostra en la següent imatge i li diem fons.

PongLineadefondo.png

Modifiquem el codi de la "Pilota" perquè aquesta interactuï amb el "Fons"

PongTocandofondo.png


Seria convenient que poguéssim comptar les vegades que la pilota toca el fons. Per això vam crear una variable a la que anomenem "marcador".

PongVariablemarcador.png

Cada vegada que la "Pilota" toca la línia de fons incrementem aquesta variable en un.

centro

Cuando iniciemos la partida tendremos que poner esta variable a cero. Para ello escribimos el siguiente código en el escenario. Hemos construido un nuevo mensaje "inicia" que utilizaremos mas adelante para fijar la posición inicial de todos los objetos

centro


Perder la partida

Hagamos que la partida dure un numero determinado de puntos. Cambiemos el bucle "por siempre" del código de la pelota por un "repetir hasta que ..." con la condición deseada.

centro

Añadamos un mensaje (enviar "fin") al código para activar las condiciones de final de partida

centro

Dibujemos un nuevo escenario para el fin de partida.

400px|centro

Modifiquemos el código del escenario para que responda a los mensajes "inicia" y "fin".

centro

Para terminar añadamos los comportamientos "inicia" y "fin" a los otros objetos.

Para la pelota:

centro

Para la paleta:

centro