Javascript och spel
Den här kursen använder boken och hemsidan spelprogrammering.nu
Jag kommer att lägga in aktiviteter riktade mot enkla spel i fysiken och i matematiken
Intro till Javascript i Datortekniken
Det gör det egentligen inte men vi ville gärna göra ett intro till spelprogrammering samtidigt som Diceprojektet. Det är däremot befogat med lite Javascrip i Tekniken. Därför byter vi tid så att ni får extra mycket teknikundervisning om:
- Elkompetens
- Datorns energiförsörjning, transformatorn, etc
- Kylning med fläktar, vätska, mm. Värmeledning.
De nedanstående avsnitten ligger som mallsidor och finns även transkluderade på javascriptsidan. Tänk på att du hamnar i en mall när du redigerar men det fungerar ungefär som vanligt
Lite Javascript
Html5, CSS3 och Javascript
Html5, CSS3 och Javascript är den nya standarden för hemsidor.
De stora företagen enats. W3C konsortium.
Html står för innehåll och struktur, CSS ger formen och Javascript ger interaktion och animation.
Jobba själv
Det vi ska göra nu tar omkring två lektioner men du får räkna med att jobba lite hemma också.
Vi kommer att använda TextWrangler som är gratisversionen av BBEdeit vilket är ett mycket populärt program att koda i. Fördelen med en speciell editor för kodning är bland annat att den färgmarkerar din kod så att du lättare upptäcker fel. Dessutom håller editorn koll på olika filtyper och extensions som .css, .js, .html mm.
Uppgift |
---|
|
Praktiska tips
- Surfa med Safari
- OM du använder Chrome - Spara som ren html
Javascript med animering
Nu ska vi göra saker som rör på sig.
Uppgift |
---|
|
Javascript: Interaktion med användaren
Nu ska vi göra program där användaren kan styra händelser. På www.spelprogrammering.nu finns det exempel på program som man kan skriva. Det går att skriva alla möjliga olika program.
Vi vill även visa ett halvfärdigt pacman-spel.
Uppgift |
---|
Gör så att pac man rör sig
Idag ska ni få göra ett program som är interaktiv, det vill säga att användaren kan styra det. Här är länkar ni behöver om ni vill titta på Pacman i er egen dator: |
Julkortet
Den gamla animeringen plus frågeboxar och ett IF-, Else-villkor ger ett enkelt julkort som du kan utveckla vidare till ditt eget
Filer att ladda ner
Lägg dem i samma mapp som tidigare för du behöver library.js
Tips: Menyn Utvecklare syns vanligtvis inte. Du visar den genom att öppna Safari-inställningarna, klicka på Avancerat och markera Visa utvecklarmenyn i menyraden.
Julkalender
Det här är en kalender som du kan titta på själv hemma om du har lust
http://www.jojoxx.net/jscript/archive/show.asp?id=146
Ett komplext exempel
Här är ett exempel på fri kod som man kan ladda ner. Att få snöflingor över sidan är mycket mer komplext än man kan tro. Gå in på sidan och kolla källan. Om du vill använda detta i något eget projekt så är koden fri att använda och den finns att ladda ner i ett paket fån GitHub.
http://www.schillmania.com/projects/snowstorm/
Dela med er av era demosar
Vi kommer alltid att behöva demonstratörer. Saker som ni gjort. Exempel på hur bra vi är. Nu är vi helt färska på javascript men det finns änd originella ideer hos er. Ladda upp vad ni har på DropBoxen (kolla att det inte redan ligger en fil med samma namn) så kanske jag visar det på Gymnasiemässan.
Rått Javascript
vi anropar funktioner i filen library.js. Dessa funktioner bygger ihop en del funktioner som är på basnivå. De finns inbyggda i browsern. Så vi har inte lärt oss att använda de inbyggda funktionerna som styr canvas-elementet.
Titta på den här sidan så ser du hur man använder javascript direkt i html-filen och därtill använder de grundläggande funktionerna utan mellanliggnade funktioner.
http://sixrevisions.com/html/bouncing-a-ball-around-with-html5-and-javascript/
Hä är ett både kul och någorlunda begripligt scripta:
http://wikiskola.se/javascript/bouncing_ball.html
El- och Energiklassen
- http://wikiskola.se/javascript/vt13/biladamyazanalfonso.html
- http://wikiskola.se/javascript/vt13/BilarSebastianJochDamianoK.html
- http://wikiskola.se/javascript/vt13/FannyOchNiclasBallaBilar.html
- http://wikiskola.se/javascript/vt13/snogubbe_nathan.html
Javascript i GeoGebra
HowTo
Bra startsida: http://wiki.geogebra.org/en/Scripting
Skapade en knapp som ger slumpade punkter
- Mozilla: https://developer.mozilla.org/en-US/docs/JavaScript/Guide
- GGB Tutorial: http://wiki.geogebra.org/en/Tutorial:Introduction_to_GeoGebraScript
- Scripting commands: http://wiki.geogebra.org/en/Scripting_Commands
- Reference Javascript: http://wiki.geogebra.org/en/Reference:JavaScript
Javascript i Fysik1
Spelprogrammering och fysik- rörelse
Uppgift |
---|
Rörelseformler i javascript
Målet är att ni ska få ner filer i er dator och göra ändringar på dem så att ni kommer in i programmeringen och har något att jobba vidare med. Spara ner filerna 02.html och 02.js i en mapp på din dator.
|
Fysik och programmering - energi
Vi ska programmera med Javascript och lära oss fysik på samma gång. Först kommer vi att använda en känd rörelseekvation och sedan kommer vi att ta med formlerna för lägesenergi och rörelseenergi i syfte att vi ska bekanta oss mer med de fysikaliska modellerna. Vi kommer därför att bli mer bekanta med energiomvandlingen som vi labbade på.
Facit: (klicka expandera till höger)
- Fysikaliska modell av energiomvandling vid fritt fall: http://www.wikiskola.se/javascript/Energi_demo.html
- Koden finns här: http://www.wikiskola.se/javascript/Energi_demo.js
Höjden är fallhöjden - s därför att canvas har y-axeln nedåt. Annars skulle den potentiella energin öka under fallet.
Vi dividerar med tusen för att få hanterbara siffror. Decimalerna rundas av.
Fysik
Den sidan kan med fördel plockas in här i den mån det kopplar till javascript.
Titta gärna på Programmering_och_simulering#Fysik
Javascript och matematik
Javascript - Cirkeln på parameterform
Det här är en digitalövning där vi ska titta på hur man ritar cirkeln på parameterform och hur det görs i javascript.
Det vi sett tidigare med cirkelns ekvation kallas att använda kartesiska koordinater. Problemet är att man inte kan lösa ut y som en funktion av x utan att ta roten ur. Roten ur ger ju som bekant två rötter, en positiv och en negativ. Det ställer till problem genom att en funktion bara ska ha ett y-värde per x-värde.
Man kan i och för sig tänka sig att rita de båda värdena samtidigt men det finns ett bättre sätt - polära koordinater
Parametrisering
Tänk på den rätvinkliga triangeln med hypotenusan r. Då kan man utgå från cirkelns mittpunkt i origo och beskriva x med cosinus och y med sinus som vi gjort tidigare. X- och y-koordnaterna uttrycks med hjälp av radien r och vinkeln t. Det kallas för parametrisering. r är parametern och t är en ny variabel, vinkeln. En parameter kan ändras från cirkel till cirkel vilket ger ändrad storlek (radie) men den ändras inte medans man ritar cirkeln. Gör man det får man helt andra former och det finns faktiskt exempel på det med på spelprogrammering.nu men det får du kolla på själv senare.
- [math]\displaystyle{ x = r \cdot \cos t\, }[/math]
- [math]\displaystyle{ y = r \cdot \sin t\, }[/math]
För r = 1 erhålls enhetscirkeln, det vill säga cirkeln med radie 1 och med mittpunkt i origo. t är i detta fall en vinkel som ökar från 0-360o.
Javascript
Idag ska vi äntligen jobba med Javascript!
Kartesiska koordinater
Uppgift |
---|
Prova att använda cirkelns ekvation och rita en cirkel.
Tips: du måste lösa ut y. (exemepelvis ur y2 + x2 = 400) Ladda ner följande filer i en mapp och pröva själv genom att ändra i koden:
|
Facit: (klicka expandera till höger)
Polära koordinater
Titta på de här exemplen om hur enkelt man ritar cirklar med polära koordinater:
- Titta först på en punkt och en vinkel ritad i kartesiska koordinater: http://spelprogrammering.nu/bokexempel/08/06.html
- Läs första sidan
- Koden ovan anropar en funktion som heter circle och som finns i ett bibliotek på sajten spelprogrammering.nu. Undersök hur funktionen ser ut.
- Ritas cirkeln på så sätt som i matteboken?
- Tänk på att funktionen circle anropar: context2D.arc som verkar vara gjord i C++ och höra till själva canvas-funktionen (den näms i förbigående på sid 31 i boken). Vet du?
- En cirkelbåge som går 360 grader är praktiskt. Det kallas polära koordinater.
- Kolla http://spelprogrammering.nu/bokexempel/08/enhetscirkeln.html
- En båge med vinkeln en radian: http://spelprogrammering.nu/bokexempel/08/09.html
- Fler matteexempel: http://spelprogrammering.nu/bookexamples08
- Kan vi gå tillväga som i funktionen för triangeln och skapa en cirkel med vår formel från matteboken?
Mer: Testa funktionen att rita med polära koordinater i GGB.
Diverse
Länkar till kurser i Javascript
- http://www.oercommons.org/courses/web-design-at-wikiversity/view
- http://www.webdevelopersnotes.com/tutorials/javascript/index.php3 tyvärr (c)
- http://www.htmlgoodies.com/primers/jsp/ (c)
- WebMonkey (Wired) (c)
- http://www.codecademy.com/courses/getting-started-v2/1#!/exercises/3
Bibliotek
- jQuery används på 55% av de största sajterna. Finns i Mediawiki. Open Source (MIT-licens).
Testa Khan
Intro to Coloring
Made using: Khan Academy Computer Science.