Pong projektet
Vi vil i det følgende arbejde med eksempel projektet Pong.
Åben projektet
- Fra Scratch hjemmesiden, søg efter "IFTEK pong" (uden " "). Tryk på billedet af projektet for at åbne det.
- Start spillet ved at trykke på flaget. Flyt musen til venstre og højre for at styre pladen og ramme bolden.
- Flyt musen op og ned på scenen. Pladen flytter sig ikke.
- Stop spillet, når du har fået nok.
- Tryk på "See inside" (øverst til højre) for at se, hvordan programmet er lavet.
- Lad os få noget mere information om, hvordan bolden bevæger sig. Vælg checkboksen ved siden af retning fra Bevægelse palletten. En ny blok vises på scenen, der fortæller om boldens retning.
- Spil spillet igen og bemærk hvordan boldens retning ændres som bolden bevæger sig hen over scenen. Lad bolden ramme den røde stribe, når du er færdig.
- Lad os tage et kig på pladens script ved at trykke på paddle i sprite listen.
- Vi kan også få vist paddlens x-koordinater, når du bevæger den henover scenen. Klik på checkboksen ved siden af x-position i Bevægelse palletten. En ny blok vises nu på scenen, der viser paddlens x-position.
- Lad os tage et kig på de scripts, der er forbundet med bolden ved at vælge ball i sprites listen. Se følgende skærmbillede:
- Spil et spil mere. Kig på blokkene, der rapporterer om boldens retning og pladens placering i realtid.
Lad os opsummere, hvad vi lige gjorde.
Missionen var enkel: Hold bolden væk fra at lande på den røde stribe for at holde spillet i live. Vi har en plade og en bold. Pladens bevægelser er baseret på musens handlinger. Når vi trækker musen til venstre, så flytter pladen sig samme vej. Men pladen reagerer ikke når vi bevæger musen op og ned.
Vi sporede boldens retning og pladens x-koordinat ved at aktivere retning og X-position blokkene, ved at klikke på afkrydsningsfeltet ud for hver blok. Derefter blev der placeret en realtids aflæsning af blokkens værdi på scenen.
I pong spillet har vi lært, hvordan man bruger musens x-værdi til at kontrollere bevægelsen af pladen. Scriptet læser x-koordinaten for musen og sætter den til x-koordinaten for pladen.
Ændringen i retningen for bolden opnås med det script, der udføres når bolden rører pladen. Scriptet beregner den nye retning ved at trække boldens retning fra en konstant værdi på 180. Som bolden springer væk fra pladen sætter scriptet en twist på retningen ved at dreje bolden et tilfældigt antal grader mellem -20 og 20.
Vi vil i det følgende se nærmere på projektets scripts, mens vi tilpasser dem.
Ændre retning
- Vælg ball spriten fra sprite listen og find det script, der indeholder peg i retning blokken. Se følgende skærmbillede:
- Lav om på beregningen, der bruges til at ændre retningen på bolden ved at ændre 180 til 90.
- Tryk på flaget for at teste. Observér resultaterne.
- Lad os forsimple retningsændringen. Træk den grønne talblok, der nu indeholder beregningen 90 - retning ud af peg i retning blokken. Du kan trække det ned på et tomt sted i scripts området.
- Lav værdien i peg i retning blokken om til 180. Klik på flaget for at spille. Observér resultaterne. Bolden skulle nu altid falde gennem pladen og til bunden af skærmen.
- Lav værdien i peg i retning blokken om til 0. Klik på flaget for at spille. Bolden skulle nu altid sendes direkte op, når den rammer pladen.
Vi har nu prøvet at lege med nogle variationer af vores spil. Brug af 90 - retning gav ikke et brugbart spil. Når vi forenklede retning til 180 blev det ligeledes til et spil, der ikke gav megen mening, men en indstilling på 0 syntes at virke.
Fjern den tilfældige rotation
Vi har tænkt os at fjerne den blok, der fortæller bolden at den skal dreje et tilfældigt antal grader og se, hvad der sker:
- Træk drej et antal grader med uret blokken til et tomt sted i scripts området, så det ikke bliver kørt, når vi spiller spillet.
- Tryk på flaget. Hver gang bolden rammer pladen sendes den nu direkte opad. Dit script bør ligne følgende skærmbillede:
Tilbage til start
Bring scriptet tilbage til dets oprindelige tilstand. Træk 180 - retning blokken tilbage i peg i retning blokken. Træk drej et antal grader med uret blokken tilbage i scriptet.
Badebold pong
Lad os erstatte den farvede cirkel med en badebold.
- Tryk på Kostumer tabben for ball spriten.
- Tilføj et nyt udtryk ved at trykke på Vælg kostume fra biblioteket under Nyt kostume.
- I Kostume Biblioteket dialogen skal du åbne Tingester mappen under Kategorier. Vælg beachball ved at dobbelt-klikke - dette tilføjer billedet som et udtryk for bolden.
- Slet udtryk1, den blålige bold, ved at trykke på x knappen for udtryk1.
- Tryk på flaget for at starte spillet. Nu spiller vi med en farverig badebold, men den er en smule stor.
- Brug formindsk sprite værktøjet til at gøre bold spriten mindre. Lav den så lille som du vil ved at trykke på bolden på scenen flere gange.
- Tilføj ændr effekten farve med 25 blokken til for evigt hvis berører paddle blokken.
Skift pladens udséende
Lav pladens udséende om til en person, en trold eller en anden figur. Du er måske nødt til at lave størrelsen om på figuren og manuelt placere den i bunden af scenen. Prøv spillet med den ændrede plade.
Tilføj nye kontrolmuligheder til pladen
Vi kan flytte pladen rundt med musen og det virker fint nok, men brugerne af en bærbar computer synes måske det er for besværligt at bruge deres trackpad. Vi vil gøre det muligt at bruge venstre og højre piletasterne til bevægelse:
- Vælg paddle spriten fra sprites listen.
- Tilføj når du trykker på mellemrum blokken fra Hændelser palletten.
- Lav værdien om til venstrepil.
- Tilføj gå 10 trin blokken til når du trykker på venstrepil blokken.
- Lav værdien om til -10 skridt.
- Tilføj endnu en Hændelser blok, der bruger højrepil knappen til at flytte 10 skridt.
- Start spillet og brug piletasterne til at flytte figuren i bunden af skærmen.
- Lad os prøve at tage større skridt. Lav antallet af trin om til et større tal, som fx. 50.
- Rens scriptet ved at fjerne den oprindelige når du klikker på flag blok, der brugte musens x-position til at styre spriten. Vi har ikke længere brug for denne.
- Fjern krydset fra x-position blokken i Bevægelse palletten.