3. ● Vilka tekniker som finns, hur de skiljer sig åt och hur vi kan använda dem
Upplägget för föreläsningen
Tips:
● Koncentrera er på “det stora hela”
● Praktisk
● Idéer och uppslag för era projekt
● Behöver inte använda er av alla tekniker
● Experimentera med exemplena efter föreläsningen (ligger uppe i iLearn)
4. Ett spel som körs i webbläsaren
Webbaserade spel?
● Vilken genre som helst
● Singleplayer / multiplayer
● Olika enheter och operativsystem
Exempel på webbaserade spel:
● Facebook-spel
5. HTML5 vs Flash (Silverlight, Java mm.)
Ingen användning av Flash i denna kurs!
För att...
● HTML5 är hett och “inne”.
● Finns inte stöd för Flash på alla plattformar.
● Behöver inte installera någon utöver webbläsaren.
● JavaScript och ActionScript bygger på ECMAScript
● Inga riktigt bra WYSIWYG-program till HTML5 än för att skapa spel och
interaktivitet
6. ● Använd en bra webbläsare och dess senaste version!
Rekommenderar Google Chrome
HTML5
● Levande standard som hela tiden utvecklas
● All kod tolkas och körs av webbläsaren
7. Fördelar med att bygga spel i HTML5
● Processen är relativt snabb
● Kan köras på alla plattformar
● Lätt att exportera och publicera
● Möjligheterna förbättras hela tiden
● Kan ta tillvara på datorns GPU (Graphics Processing Unit)
8. … och nackdelarna
● Går inte att göra “superavancerade” saker än
● Går inte att gömma koden
● Måste köras i webbläsaren
● Finns inte så många spelmotorer eller hjälpmedel än
10. Tekniker vi skall gå igenom
1. <img>-taggen för att visa bilder
2. CSS3
3. SVG
4. Video och Ljud med HTML5
5. <canvas>-taggen
6. Sammanfattning
!! Alla exempel är anpassade för Google Chrome !!
11. <img>-taggen för att visa bilder
Använd JPG för fotografier och PNG för allt annat.
JPG
PNG
GIF
* Bra för fotografier
* lossy-komprimering
* Bör för illustrationer och text.
* Har alpha-kanal (går att skapa transparens)
* lossless-komprimering
* Relativt dålig kvalitet
* Går att skapa animationer
12. <img>-taggen för att visa bilder
<body>
...
<img src=/slideshow/f-1-169/36718005/"" alt=/slideshow/f-1-169/36718005/"">
...
</body>
<img src="chrome-logo.jpg" alt="Google Chrome-logo">
<img src="img/browsers/chrome-logo.jpg" alt="...">
13. CSS3
Version 3 introducerades med HTML5
Rundade hörn Skuggor
Filter (à la Instagram) Animationer
Olika stilar för olika
skärmstorlekar
Opacitet
Gradient Transformera
14. CSS3
Tidigare utfördes animationer och dynamisk styling med
JavaScript (& Flash)
Sträva efter att:
HTML - struktur av element
CSS - styling och layout
JavaScript - data och logik
15. CSS3
● Under kontinuerlig utveckling
-webkit- Google Chrome
Safari
Opera
-moz- Mozilla Firefox
-ms- Internet Expolorer
● Olika implementationer på olika webbläsare
17. CSS3
Fördelar Nackdelar
Bra om CSS:en gör allt som har
med styling att göra
Behöva inte använda bilder för att
skapa tex. skuggor och rundade hörn
Tar hjälp av datorns GPU
Svårt att göra “avancerade” saker
Svårt att organisera koden på ett bra
sätt
Går inte att styla innehåll i canvas-
elementet
18. SVG (Scalable Vector Graphics)
● Vektorgrafik (skalbar)
● Illustrationerna skapas med hjälp av XML-kod
● Ändra illustrationerna dynamiska (XML eller JavaScript)
● Skriva XML-kod direkt i HTML-dokumentet
20. SVG (Scalable Vector Graphics)
Fördelar Nackdelar
Ser bra ut i alla storlekar
Går att animera
Går att skapa bara genom att skriva
kod
Fungerar inte för fotografier
Svårt att bygga avancerad
interaktivitet / spel
21. Video med HTML5
Video = Flash
De vanligaste videoformaten
.mp4 .ogg/.ogv .webm
<video>-taggen
Olika film-format i olika webbläsare
26. Web Audio
Skapa och manipulera ljud direkt i webbläsaren
http://labs.dinahmoe.com/plink/
http://www.jamwithchrome.com/
Mer info här:
http://www.html5rocks.com/en/tutorials/webaudio/intro/
http://creativejs.com/resources/web-audio-api-getting-started/
27. <canvas>-taggen
● Ge utvecklare ett sätt att skapa avancerad grafik utan att behöva förlita sig
på Flash (eller andra plug-ins).
<canvas id="myCanvas" width="300" height="300"></canvas>
● En rityta vars innehåll inte påverkas av andra HTML-taggar.
● Innehållet styrs av JavaScript.
30. 0 1 2 3 4 5 6 7 8 9 10 11 ... …
Pixel Pixel Pixel
i + 0 i + 1 i + 2 i + 3
i = 0
i + 0 i + 1 i + 2 i + 3
i = 8i = 4
i + 0 i + 1 i + 2 i + 3
0
röd
1
grön
2
blå
3
alfa
4
röd
5
grön
6
blå
7
alfa
8
röd
9
grön
10
blå
11
alfa
0-255 0-255 0-255 osv...
31. Definiera variabel för bollens X-värde och sätter den till noll.
function updateCanvas(){
}
1. Rensa canvasen
2. Rita ut bakgrunden
4. Rita ut bollen med det nya X-värdet
3. Inkrementera bollens X-värde
(nollställ värdet om bollen är utanför canvasen)
Kalla på updateCanvas-funktionen 60 ggr per sekund
34. WebGL med <canvas>
Skapa interaktiv 3D-grafik i webbläsaren utan användning av
någon plug-in
Epic Citadel: http://www.unrealengine.com/html5/
Mer info här:
http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/
http://www.html5rocks.com/en/tutorials/webgl/webgl_orthographic_3d/
35. <canvas>-taggen
Fördelar Nackdelar
Kraftfullt API som låter oss rita upp
figurer, läsa in bilder mm.
Möjlighet att manipulera enskilda
pixlar
Tar hjälp av datorns GPU
Grafiken är inte skalbar per automatik
Man måste uppfinna hjulet varje gång
Inte bra på att rendera text
36. Sammanfattning
<img>
CSS3
SVG
<audio> & <video>
<canvas>
Enklaste sättet att visa statiska bilder.
Styla & layouta HTML-taggar. Nu även möjligt att skapa animationer,
filter och 3D-effekter.
Vektorgrafik i webbläsaren. Skapas genom XML-språk och går att
ändra dynamiskt med hjälp av CSS / JavaScript
Det nya sättet att visa film och spela upp ljud. Ger utvecklaren full
kontroll över uppspelningen hur ljuden/filmerna.
Skapar en “rityta” där det är möjligt, med hjälp av JavaScript, att rita
och animera komplex grafik som tex. spel.
37. Två olika sätt att bygga spel i HTML5
Sammanfattning
DOM-element
(klassisk hemside-uppbyggnad)
<canvas>-taggen
HTML-element (<img>, <div> mm.)
CSS-styling
JavaScript (jQuery)
JavaScript för att rita upp objekt, spela
upp ljud mm.
Går det att utföra med hjälp av DOM-element så gör det,
använd <canvas>-taggen i annat fall.
38. Tips
Experimentera med exemplen från denna föreläsning.
Använd en bra webbläsare (Google Chrome).
Skicka in era förslag på projekt i iLearn2, Presentera & diskutera projektidén.
Deadline är 2013-10-04.
Börja med labb 3 & 5 så fort som möjligt. Deadline är 2013-11-02.
Ställ en massa frågor på handledningen eller i forumet i iLearn2