programování her v xna pro windows phone 7
DESCRIPTION
Na této přednášce si společně projdeme základní principy XNA frameworku, naprogramujeme si jednoduchou hru a upravíme si ji pro běh na telefonech se systémem Windows Phone 7. Projdeme si zpracování dotyků a gest na displeji, ovládání pohybovým senzorem a další specifické vlastnosti platformy.Přednáška se konala v budově MFF UK na Malostranském náměstí v posluchárně S4 ve 3. poschodíPřednášející: Tomáš SlavíčekTRANSCRIPT
Programování her v XNA pro Windows Phone 7Tomáš Slavíčektomasslavicek.cz
Microsoft Student Partner Twitter: @tomasslavicek
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
Windows Phone 7Nástupce Windows Mobile
Windows Phone 7Pevné hardwarové požadavky
displej 800x480pix, min. 4 dotyky1 GHz procesor, DirectX9 GPU256 MB RAMGPS, 5Mpix foťák, akcelerometr...tlačítka
Windows Phone 7Grafické rozhraní Metro (ukázka)
Windows Phone 7Distribuce aplikací
Centralizovaný marketplaceČR snad již brzy
Windows Phone 7Budoucnost systému
Mango update (WP 7.5)Multitasking, přístup k senzorům, nové APITelefony Nokia
Windows Phone 7Vývoj
Silverlight nebo XNAjazyky .NET (C#, VB.NET...)Garbage Collector
Windows Phone 7Vývoj
Portál App HubVývojové nástroje zdarma
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
XNAFramework pro vývoj her
PC, Xbox360, WP7, (Zune)
nadstavba DirectX, akcelerované grafikouherní smyčkaContent Pipelineoperace s maticemi, přehrávání hudby...
XNAHerní smyčka
XNAPraktická ukázka 1
Vykreslení obrázku na pozadí
XNA na WP7Rozlišení obrazovky
graphics.PreferredBackBufferWidth / Heightzobrazení na výšku / na šířku
hardware scaler – ušetření výkonu600x360 pix = 56% oproti 800x480
XNA na WP7Orientace displeje (ukázka)
graphics.SupportedOrientations = ...this.Window.OrientationChanged += new ...
GraphicsDevice.PresentationParameters.DisplayOrientation
graphics.ApplyChanges();
XNANaše hra – had
XNANaše hra – had
XNAVykreslování více objektů
Napíšeme si třídu Sprite (ukázka)
Další možnost – herní komponentyGameComponent, DrawableGameComponent
XNAPohyb hada – metoda Update() (ukázka)
Náš pohyb: rychlost, úhel
gameTime.ElapsedGameTime.TotalMilliseconds
počet ms od posledního snímkurychlost nezávisí na FPS
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
XNA na WP7Zpracování vstupu
WP7dotykový displej, gestaakcelerometrtlačítko zpětMango: kompas, gyroskop, fotoaparát
NE klávesnice, joystick...
XNA na WP7Dotyky na displeji
TouchCollection tc = TouchPanel.GetState();foreach (TouchLocation t in tc)
IDState (Pressed, Moved, Released, Invalid)Position
ID unikátníaž 4 dotyky najednou
XNA na WP7Gesta na displeji
XNA na WP7Gesta na displeji
TouchPanel.EnabledGestures = ...
while (TouchPanel.IsGestureAvailable)var gesture = TouchPanel.ReadGesture();
if (gesture.GestureType == ... )
XNA na WP7Akcelerometr
osy X / Y, hodnoty -1 až 1osa Z (gravitace), normálně -1
knihovna Microsoft.Devices.Sensorszjišťování řízeno eventy!
accel.ReadingChanged += new ...
hodnoty nezávisí na orientaci zařízení na výšku / šířku
XNA na WP7Odlišení platformy (ukázka)
direktivy#if WINDOWS | XBOX #endif#if WINDOWS_PHONE #endif
Create Copy of Project for...
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
XNA na WP7Profily
ReachDirectX 9, Shader Model 2.0Textury – nutně velikost mocniny 2, max. 2048 pix.max. 65 535 primitiv / Draw() ...
HiDefXbox 360 / PCDirectX 10, Shader Model 3.0+
XNA na WP7Efekty
Pro WP7 nelze psát vlastní shadery v HLSLVestavěné efekty
BasicEffectDualTextureEffectAlphaTestEffectEnvironmentMapEffectSkinnedEffect
XNA na WP7DualTextureEffect
XNA na WP7EnvironmentMapEffect
AgendaWindows Phone 7Vlastnosti XNAVykreslení pozadí, hráčeOvládání dotyky, akcelerometremSpecifika XNA na WP7Ukázka her, dostupných engine
XNA na WP7Dostupné fyzikální engine
Box2D.XNAChipmunk XNAFarseer
všechny zdarma
XNA na WP7Další zdroje
Bohaté ukázkové kódy na App HubHotové engine
3D: Balder, SunBurn...
XNA na WP7Ukázky
Hotové hryMůj engine
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Tomáš Slavíček http://tomasslavicek.czTwitter: @[email protected]
http://netstudent.cz
http://create.msdn.com
Zdroj obrázků: MSDN blogs, http://jdem.cz/ma4j3, http://jdem.cz/ma4k9