Prezentace z hands-on-labu vývoje her v XNA pro Windows Phone, prezentovaného v Brně 28.2.2012
Zdrojové kódy + záznam z prezentace budou k dispozici brzy.
Tomáš Slavíček
1. Vývoj her v XNA
pro Windows Phone 7.5
Tomáš Slavíček
mail@tomasslavicek.cz Twitter: @tomasslavicek
2. Agenda
aktuální situace WP v ČR
XNA – zopakování
obrázky: rotované, animované…
pohyb, kolize ve 2D
zvuky a hudba
načítání a ukládání dat
Silverlight + XNA
17. Bylo minule…
orientace displeje
gesta na displeji
akcelerometr
text a lokalizace hry
portace na PC
18. Vykreslení obrázku
objekt Sprite
Vector2 Position
Vector2 Size
Texture2D Texture
LoadContent()
Draw()
19. Obrázek i s rotací
objekt Sprite RotatedSprite
Vector2 Position Vector2 Position
Vector2 Size Vector2 AnchorPoint
Texture2D float Rotation
Texture float Scale
Texture2D Texture
LoadContent()
Draw() LoadContent()
Draw()
x
20. Obrázek i s rotací
parametry SpriteBatch.Draw()
x
21. Animovaný obrázek
několik měnících se obrázků
objekt AnimatedSprite
poděděný od Sprite
navíc: pole Textures
upravené LoadContent()
Draw()
35. Kolize
kruh vs. orientovaný obdélník
pootočit souřadnice,
aby byl obdélník
osově srovnaný
angle = Math.Atan2(
point1.Y - point2.Y, point2.X - point1.X )
Vector2.Transform( point,
Matrix.CreateRotationZ( angle ))
36. Ukázka v praxi
kruh vs. orientovaný obdélník
obdélník máme už reprezentovaný
správně = osově srovnaný
posuneme/otočíme
k němu střed kruhu
37. Zvuky a hudba
SoundEffect a SoundEffectInstance
MediaPlayer
hudba na pozadí
nutné kontrolovat, zda už nehraje jiná!
if (MediaPlayer.GameHasControl)
38. Isolated Storage
2 přístupy:
IsolatedStorageSettings – kolekce hodnot
IsolatedStorageFile – soubory
data přežijí i vypnutí aplikace
40. Mogade.com
sdílení skóre, achievementy,
online statistiky
jednoduché API, přímo pro WP
návod pro XNA mají na fóru
pozor na speciální
znaky ve jméně hráče
41. Načítání levelu podle
XML
data v XML tagách
<SpriteInfo X="20" Y="50"
AssetName="obrazek" />
streamové čtení
XmlReader reader = XmlReader.Create(path)
while (reader.Read())
if (reader.NodeType == XmlNodeType.Element
&& reader.Name == "SpriteInfo")
42. Silverlight + XNA
možnost propojení
-> i kombinace na 1 obrazovce
Silverlight = menu, XNA = herní část
43. Silverlight + XNA
vlastnosti:
navigační model ze Silverlightu
nejsou GameComponent, DrawableG.C.
SharedGraphicsDeviceManager
jiné předpisy metod Update(), Draw()…
nepoužívat Mouse API, ale TouchCollection
45. Ukázka v praxi
hybridní projekt
obrazovka menu + hra
implementace „LoadContent“
předání parametru
další obrazovka – výhra
oprava „back stacku“
implementace pauzy ve hře
+ ukončení hry z XNA
46. Webové zdroje
SmartMania.cz články
rozcestník – můj blog
tomasslavicek.cz
Tomáš Slavíček
mail@tomasslavicek.cz Twitter: @tomasslavicek