ونڈوز فون 7 حصہ 1 ٹچ تعامل کی بنیادی باتوں کے لئے کھیل کی ترقی میں ٹچ تعامل

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

ونڈوز فون 7 کے ساتھ شروع کریں

ونڈوز فون 7 ایپلی کیشن پلیٹ فارم

ونڈوز فون 7 ترقیاتی ماحول کو باضابطہ طور پر ستمبر 2010 میں جاری کیا گیا تھا ، اور اسمارٹ فونز جو اصل میں ونڈوز فون 7 چلاتے ہیں انہوں نے مارکیٹ میں آنا شروع کردیا ہے۔

図 1 :HTC から販売されている Windows Phone 7 を搭載した「HTC 7 Trophy」
شکل 1: ایچ ٹی سی کے ذریعہ فروخت کردہ ونڈوز فون 7 کے ساتھ ایچ ٹی سی 7 ٹرافی۔

جب آپ ونڈوز فون 7 پر چلنے والی ایپلی کیشن بناتے ہیں تو ، آپ پروگرام فریم ورک کے طور پر "سلور لائٹ" اور "ایکس این اے فریم ورک" کے درمیان انتخاب کرسکتے ہیں۔ عام طور پر ، آپ گیم ڈویلپمنٹ کے لئے "ایکس این اے فریم ورک" اور دیگر ایپلی کیشنز جیسے ٹولز کے لئے "سلور لائٹ" استعمال کریں گے۔

یہ سیکشن گیم ڈویلپمنٹ کے لئے ایکس این اے فریم ورک کا استعمال کرتا ہے اور ٹچ پینل کو استعمال کرنے کا طریقہ بتاتا ہے ، جو ونڈوز فون 7 کے لئے سب سے زیادہ استعمال ہونے والا صارف انٹرفیس ہوگا۔ آسان استعمال ایکس این اے گیم اسٹوڈیو کی مدد میں بیان کیا گیا ہے ، لہذا میں اسے یہاں قدرے گہرائی سے بیان کرنا چاہوں گا۔

اپنے ترقیاتی ماحول کو تیار کریں

یہ سیکشن کسی ایسے شخص کے نقطہ نظر سے ہے جس نے ایکس این اے گیم اسٹوڈیو کو بھی تھوڑا سا چھوا ہے ، لہذا میں انسٹالیشن اور سیٹ اپ جیسی تفصیلی ہدایات کو چھوڑ دوں گا۔ ایکس این اے گیم اسٹوڈیو اور ویب پر آنے والی مدد میں بہت ساری معلومات موجود ہیں ، لہذا براہ کرم اسے خود چیک کریں۔ میں نے بھی میری ویب سائٹ پر کچھ ہے (http://sorceryforce.com/xna/).

図 2 :Microsoft Visual Studio 2010 Express for Windows Phone(Windows Phone Developer Tools に含まれます)
شکل 2: مائیکروسافٹ بصری اسٹوڈیو 2010 ونڈوز فون کے لئے ایکسپریس (ونڈوز فون ڈویلپر ٹولز میں شامل)

図 3 :Windows Phone エミュレーター
شکل 3: ونڈوز فون ایمولیٹر

پروگرامنگ! - 1. رابطے کی معلومات حاصل کریں

اس نمونے کے بارے میں

ونڈوز فون 7 میں استعمال ہونے والے ایکس این اے فریم ورک کا ورژن "4.0" ہے ، لیکن اس وقت تک ٹچ پینل کے لئے کوئی کلاس نہیں تھی ، اور کی بورڈز ، چوہے اور گیم پیڈ مرکزی دھارے میں شامل تھے۔ 4.0 کے بعد سے ، ونڈوز فون 7 کی حمایت کی گئی ہے ، اور ٹچ پینل کے لئے وقف ایک نئی کلاس شامل کی گئی ہے۔

اس مضمون میں ، ہم بنیادی طور پر اس کلاس کی وضاحت کریں گے ، لیکن حقیقت میں ، اگر آپ سادہ ٹچ پوزیشن کی معلومات حاصل کرنا چاہتے ہیں تو ، آپ ٹچ پینل کے لئے کلاس کا استعمال کیے بغیر کسی اور کلاس کو تبدیل کرسکتے ہیں۔ یہ "ماؤس" کلاس ہے. اس نمونے میں، ہم ٹچ کی معلومات حاصل کرنے کے لئے ماؤس کلاس کا استعمال کریں گے.

اس نمونے کے پروگرام کے اہداف

جب آپ اسکرین کو چھوتے ہیں تو ، تصویر (اسپرائٹ) ٹچ پوزیشن کے مطابق رکھی جاتی ہے۔

図 3,4 :タッチした位置にスプライトが表示される 図 3,4 :タッチした位置にスプライトが表示される
شکل 3،4: اسپرائٹس چھونے والی پوزیشنوں پر ظاہر ہوتے ہیں

پروگرام - قطعات کا اعلان

میں فوری طور پر نمونہ پروگرام کے ساتھ مل کر اس کی وضاحت کرنا چاہوں گا. ان حصوں کی وضاحتیں جو براہ راست ٹچ آپریشن سے متعلق نہیں ہیں اور شروع سے بنائے گئے پروگراموں کو چھوڑ دیا گیا ہے ، لہذا براہ کرم علیحدہ علیحدہ تقسیم کردہ ماخذ کوڈ کا حوالہ دیں۔

public class Game1 : Microsoft.Xna.Framework.Game
{
  GraphicsDeviceManager graphics;
  SpriteBatch spriteBatch;

  /// <summary>
  /// テクスチャー
  /// </summary>
  Texture2D texture;

  /// <summary>
  /// タッチしている位置
  /// </summary>
  Vector2 touchPosition;

  public Game1()
  {

فیلڈ ٹچ مقام پر کھینچنے کے لئے ایک ساخت کا اعلان کرتا ہے اور ٹچ پوزیشن کو اسٹور کرنے کے لئے ویکٹر 2 ڈھانچہ متغیر کا اعلان کرتا ہے۔

پروگرام - بناوٹ لوڈ کر رہا ہے

بناوٹ کو پہلے ہی مواد کے منصوبے میں شامل کیا گیا ہے اور لوڈ کنٹینٹ کے طریقہ کار سے بھرا ہوا ہے۔ چونکہ مواد براہ راست ٹچ پینل سے متعلق نہیں ہے ، لہذا تفصیلی وضاحتوں کو چھوڑ دیا جاتا ہے۔

図 6 :コンテンツプロジェクトに「Texture.png」を追加しておく
شکل 6: اپنے مواد کے منصوبے میں ایک ساخت.png شامل کریں

図 7 :今回サンプルで使用する画像
شکل 7: اس نمونے میں استعمال ہونے والی تصویر

protected override void LoadContent()
{
  // 新規の SpriteBatch を作成します。これはテクスチャーの描画に使用できます。
  spriteBatch = new SpriteBatch(GraphicsDevice);

  // テクスチャーをコンテンツパイプラインから読み込む
  texture = Content.Load<Texture2D>("Texture");
}

پروگرام - ٹچ معلومات کا حصول

ٹچ کی معلومات گیم.اپ ڈیٹ کے طریقہ کار میں بازیافت کی جاتی ہے۔

میں ایک سرشار کلاس کے بجائے "ماؤس" کلاس کا استعمال کرتے ہوئے رابطے کی معلومات حاصل کر رہا ہوں. "ماؤس.گیٹ اسٹیٹ" طریقہ کار کا استعمال کرتے وقت ، موجودہ ماؤس کی حالت "ماؤس اسٹیٹ" ڈھانچے میں واپس آجاتی ہے ، لہذا آپ "ماؤس اسٹیٹ ڈاٹ ایکس" اور "ماؤس اسٹیٹ ڈاٹ وائی" خصوصیات سے ٹچ پوزیشن حاصل کرسکتے ہیں۔

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);
}

ٹچ کی معلومات حاصل کرنے کے لئے ماؤس کلاس کا استعمال کرنے کے بارے میں نوٹ کرنے کی ایک بات یہ ہے کہ یہ صرف سادہ معلومات واپس کرتا ہے۔ ماؤس کلاس کا استعمال کرتے وقت حاصل کی جانے والی معلومات پر صرف پابندیاں "صرف سنگل ٹچ"، "ٹچ پوزیشن (ماؤس اسٹیٹ ڈاٹ ایکس ، ماؤس اسٹیٹ ڈاٹ وائی پراپرٹی)" ، اور "چھونا ہے یا نہیں (ماؤس اسٹیٹ.لیفٹ بٹن)"۔ یہ ملٹی ٹچ یا اشاروں کی حمایت نہیں کرتا ہے۔ نیز ، اگر آپ کو کوئی پوزیشن ملتی ہے جب آپ نے اسے چھوا نہیں ہے تو ، یہ پچھلی ٹچ پوزیشن کو واپس کرنا جاری رکھے گا۔ چونکہ ان پٹ کی معلومات اس وقت تک حاصل نہیں کی جاسکتی جب تک کہ اسے چھوا نہ جائے ، مقام کی معلومات حاصل نہیں کی جاسکتی ہیں جیسے ماؤس کے ذریعہ ماؤس اوور۔

پروگرام - ڈرائنگ بناوٹ

protected override void Draw(GameTime gameTime)
{
  GraphicsDevice.Clear(Color.CornflowerBlue);

  // スプライトの描画準備
  spriteBatch.Begin();

  // タッチしている位置にテクスチャーを描画
  spriteBatch.Draw(texture, touchPosition, Color.White);

  // スプライトの一括描画
  spriteBatch.End();

  base.Draw(gameTime);
}

اس نمونے کا خلاصہ

چونکہ ماؤس کلاس ٹچ کی معلومات کے حصول کا متبادل ہے ، لہذا معلومات صرف اس نمونے کی طرح ٹچ پوزیشن حاصل کرکے ہی حاصل کی جاسکتی ہیں۔ اس کے برعکس ، اگر آپ صرف ٹچ کلاس استعمال کرتے ہیں تو ، آپ مزید معلومات حاصل کرسکتے ہیں۔

لہذا، ماؤس کلاس کا استعمال کرتے ہوئے ٹچ کی معلومات حاصل کرنے کے لئے میرٹ کے بغیر نہیں ہے. ماؤس کلاس کا استعمال مندرجہ ذیل فوائد فراہم کرتا ہے:

  • ونڈوز پر چلنے والے ماؤس فعال کھیلوں کے ساتھ کوڈ کا اشتراک کرسکتے ہیں
  • ٹچ مقام کی معلومات کوڈ کی کم سے کم رقم کے ساتھ لکھا جا سکتا ہے
  • غیر ضروری پروسیسنگ کو چھوڑ دیا جا سکتا ہے

اگر آپ صرف سنگل ٹچ اور صرف ٹچ پوزیشننگ استعمال کرتے ہیں تو ، آپ ماؤس کلاس کا استعمال کرکے مذکورہ بالا فوائد سے فائدہ اٹھا سکتے ہیں۔