Programování her v XNA pro Windows Phone 7

Post on 27-Dec-2014

2,511 views 3 download

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íček

transcript

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: @tomasslavicekmail@tomasslavicek.cz

http://netstudent.cz

http://create.msdn.com

Zdroj obrázků: MSDN blogs, http://jdem.cz/ma4j3, http://jdem.cz/ma4k9