Exercici: Pong
Contents
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
Seleccionem l'eina cercle i triem el cercle farcit
. 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:
Què podem fer? Per començar podem iniciar el programa prement la bandereta verda.
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
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ó.
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"
En el editor de dibujos dibujamos un rectángulo, procurando que el centro quede bien colocado
A este objeto le añadimos el siguiente código.
Con este código conseguimos que el objeto "Paleta" siga el movimiento en "x" del ratón. Ahora tenemos que conseguir que la paleta y la pelota interactuen. Para ello modificaremos el código de la paleta de la siguiente forma.
Más rebotes
Escribamos el código de rebotar.
La línea de fondo
Comprobemos como funciona el rebote. Vamos a añadir un nuevo objeto, que nos servirá para detectar cuando la pelota toca la linea de fondo y por tanto perdemos el punto. Vamos a crear nuevo objeto, abrimos el editor de dibujo y dibujamos un objeto como se muestra en la siguiente imagen y le llamamos fondo.
Modifiquemos el código de la "Pelota" para que esta interactue con el "Fondo"
Seria conveniente que pudiésemos contar las veces que la pelota toca el fondo. Para ello creamos una variable a la que llamamos "marcador".
Cada vez que la "Pelota" toca la linea de fondo incrementamos esta variable en uno.
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
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.
Añadamos un mensaje (enviar "fin") al código para activar las condiciones de final de partida
Dibujemos un nuevo escenario para el fin de partida.
Modifiquemos el código del escenario para que responda a los mensajes "inicia" y "fin".
Para terminar añadamos los comportamientos "inicia" y "fin" a los otros objetos.
Para la pelota:
Para la paleta: