Skārienmijiedarbība spēļu izstrādē operētājsistēmai Windows Phone 7 1. daļa Skārienmijiedarbības pamati
Darba sākšana operētājsistēmā Windows Phone 7
Windows Phone 7 lietojumprogrammu platforma
Windows Phone 7 izstrādes vide tika oficiāli izlaista 2010. gada septembrī, un viedtālruņi, kuros faktiski darbojas operētājsistēma Windows Phone 7, ir sākuši ienākt tirgū.
1. attēls: HTC 7 trofeja ar operētājsistēmu Windows Phone 7, ko pārdod HTC
Izveidojot lietojumprogrammu, kas darbojas operētājsistēmā Windows Phone 7, kā programmas struktūru varat izvēlēties starp "Silverlight" un "XNA Framework". Kopumā jūs izmantosiet "XNA Framework" spēļu izstrādei un "Silverlight" citām lietojumprogrammām, piemēram, rīkiem.
Šajā sadaļā tiek izmantots XNA Framework spēļu izstrādei un paskaidrots, kā izmantot skārienpaneli, kas būs visbiežāk izmantotais lietotāja interfeiss operētājsistēmai Windows Phone 7. Vienkāršais lietojums ir aprakstīts XNA Game Studio palīdzībā, tāpēc es vēlētos to nedaudz padziļināti izskaidrot šeit.
Sagatavojiet savu attīstības vidi
Šī sadaļa ir no tāda cilvēka viedokļa, kurš ir pat nedaudz pieskāries XNA Game Studio, tāpēc es izlaidīšu detalizētas instrukcijas, piemēram, instalēšanu un iestatīšanu. Palīdzībā, kas tiek sniegta XNA Game Studio un tīmeklī, ir daudz informācijas, tāpēc, lūdzu, pārbaudiet to pats. Man ir arī daži manā vietnē (http://sorceryforce.com/xna/).
- Windows Phone izstrādātāju rīki
- Zune programmatūra
- Īsta ierīce, kurā darbojas Windows Phone 7 vai Windows 7 daudzskārienu vide
- Windows Phone izstrādātāja reģistrācijas lietojumprogramma
2. attēls: Microsoft Visual Studio 2010 Express for Windows Phone (iekļauts Windows Phone izstrādātāju rīkos)
3. attēls: Windows Phone emulators
Programmēšanas! - 1. Iegūt informāciju par saskarsmi
Par šo paraugu
Operētājsistēmā Windows Phone 7 izmantotā XNA Framework versija ir "4.0", bet līdz tam nebija pieskāriena paneļu klases, un tastatūras, peles un spēļu paliktņi bija galvenie. Kopš 4.0 tiek atbalstīta operētājsistēma Windows Phone 7, un ir pievienota jauna klase, kas veltīta skārienpaneļiem.
Šajā rakstā mēs galvenokārt izskaidrosim šo klasi, bet patiesībā, ja vēlaties iegūt vienkāršu informāciju par skārienjutīgu pozīciju, varat aizstāt citu klasi, neizmantojot skārienpaneļu klasi. Tā ir "Peles" klase. Šajā paraugā mēs izmantosim peles klasi, lai iegūtu skārienjutīgu informāciju.
Šīs izlases programmas mērķi
Pieskaroties ekrānam, attēls (sprite) tiek novietots atbilstoši skāriena pozīcijai.
3,4. attēls: Sprites parādās pieskāriena pozīcijās
Programma — lauku deklarēšana
Es gribētu to uzreiz izskaidrot kopā ar izlases programmu. Tiek izlaisti paskaidrojumi par daļām, kas nav tieši saistītas ar skāriena darbību, un programmām, kas izveidotas no sākuma, tāpēc, lūdzu, skatiet atsevišķi izplatīto pirmkodu.
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
<summary>
テクスチャー
</summary>
Texture2D texture;
<summary>
タッチしている位置
</summary>
Vector2 touchPosition;
public Game1()
{
Lauks deklarē tekstūru, ko zīmēt pieskāriena vietā, un Vector2 struktūras mainīgo, lai saglabātu pieskāriena pozīciju.
Programma - tekstūru iekraušana
Tekstūras jau ir pievienotas satura projektam un ielādētas ar LoadContent metodi. Tā kā saturs nav tieši saistīts ar skārienjutīgiem paneļiem, detalizēti paskaidrojumi tiek izlaisti.
6. attēls: Tekstūras pievienošana savam satura projektam.png
7. attēls: Šajā paraugā izmantotais attēls
protected override void LoadContent()
{
// 新規の SpriteBatch を作成します。これはテクスチャーの描画に使用できます。
spriteBatch = new SpriteBatch(GraphicsDevice);
// テクスチャーをコンテンツパイプラインから読み込む
texture = Content.Load<Texture2D>("Texture");
}
Programma - Touch informācijas iegūšana
Skārienjutīgā informācija tiek izgūta, izmantojot Game.Update metodi.
Es saņemu skārienjutīgu informāciju, izmantojot klasi "Pele", nevis no īpašas klases. Izmantojot metodi "Mouse.GetState", pašreizējais peles stāvoklis tiek atgriezts struktūrā "MouseState", lai jūs varētu iegūt skārienjutīgo pozīciju no īpašībām "MouseState.X" un "MouseState.Y".
protected override void Update(GameTime gameTime)
{
// ゲームの終了条件をチェックします。
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// マウスの状態を取得(ここではタッチパネルの簡易的な情報)
MouseState mouseState = Mouse.GetState();
// タッチしている位置を設定
touchPosition = new Vector2(mouseState.X, mouseState.Y);
base.Update(gameTime);
}
Viena lieta, kas jāņem vērā, izmantojot peles klasi, lai iegūtu skārienjutīgu informāciju, ir tā, ka tā atgriež tikai vienkāršu informāciju. Vienīgie ierobežojumi informācijai, ko var iegūt, izmantojot peles klasi, ir "tikai viens pieskāriens", "skārienpozīcija (MouseState.X, MouseState.Y rekvizīts)" un "vai pieskarties (MouseState.LeftButton)". Tas neatbalsta daudzskārienus vai žestus. Turklāt, ja jūs saņemat pozīciju, kad neesat tai pieskāries, tā turpinās atgriezt iepriekšējo skāriena pozīciju. Tā kā ievades informāciju nevar saņemt, ja tai nepieskaras, atrašanās vietas informāciju nevar iegūt, piemēram, peli pārslēdzot ar peli.
Programma - zīmēšanas faktūras
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// スプライトの描画準備
spriteBatch.Begin();
// タッチしている位置にテクスチャーを描画
spriteBatch.Draw(texture, touchPosition, Color.White);
// スプライトの一括描画
spriteBatch.End();
base.Draw(gameTime);
}
Šī parauga kopsavilkums
Tā kā peles klase aizstāj skārienjutīgas informācijas iegūšanu, informāciju var iegūt, tikai iegūstot pieskāriena pozīciju kā šajā paraugā. Un otrādi, ja izmantojat tikai skārienjutīgu klasi, varat iegūt vairāk informācijas.
Tāpēc nav bez nopelniem iegūt skārienjutīgu informāciju, izmantojot Peļu klasi. Peles klases izmantošana sniedz šādas priekšrocības:
- Var koplietot kodu ar spēlēm, kurās iespējota pele un kuras darbojas operētājsistēmā Windows
- Skārienjutīgu atrašanās vietas informāciju var rakstīt ar vismazāko koda daudzumu
- Nevajadzīgu apstrādi var izlaist
Ja izmantojat tikai viena pieskāriena un tikai skārienu pozicionēšanu, varat izmantot iepriekš minētās priekšrocības, izmantojot Peļu klasi.