Skārienmijiedarbība spēļu izstrādē operētājsistēmai Windows Phone 7 1. daļa Skārienmijiedarbības pamati

Lapa atjaunota :
Lapas izveides datums :

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 :HTC から販売されている Windows Phone 7 を搭載した「HTC 7 Trophy」
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/).

図 2 :Microsoft Visual Studio 2010 Express for Windows Phone(Windows Phone Developer Tools に含まれます)
2. attēls: Microsoft Visual Studio 2010 Express for Windows Phone (iekļauts Windows Phone izstrādātāju rīkos)

図 3 :Windows Phone エミュレーター
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 :タッチした位置にスプライトが表示される 図 3,4 :タッチした位置にスプライトが表示される
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 :コンテンツプロジェクトに「Texture.png」を追加しておく
6. attēls: Tekstūras pievienošana savam satura projektam.png

図 7 :今回サンプルで使用する画像
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.