Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK

أساسيات SpriteKit: وضع كل شيء معا

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called SpriteKit Basics.
SpriteKit Basics: Actions and Physics

Arabic (العربية/عربي) translation by Aisy Abdullah (you can also view the original English article)

Final product image
What You'll Be Creating

في هذا المنصب سنقوم ببناء لعبة بسيطة من نقطة الصفر. على طول الطريق، أننا سوف أتطرق إلى بعض الجوانب الأكثر أهمية للمكتبة سبريتيكيت.

ويستند هذا المنصب ما تعلمناه سابقا في سلسلة 'أساسيات سبريتيكيت'. إذا كنت ترغب في تحديث معرفتك سبريتيكيت، نلقي نظرة على بعض من بلدي وظائف أخرى.

مشروع جديد

افتح Xcode وابدأ مشروعًا جديدًا من القائمة File> New> Project. تأكد من اختيار نظام iOS واختيار اللعبة كقالب لك.

new project

أعط مشروعك اسمًا ، وتأكد من تعيين اللغة على Swift ، تم تعيين تقنية الألعاب على SpriteKit ، وتم تعيين الأجهزة على iPad.

project options

تخطيط مشاهد اللعبة

من أول الأشياء التي أحب القيام بها عند إنشاء مشروع هو تحديد عدد المشاهد التي سأحتاجها للمشروع. عادةً ما يكون لديّ ثلاثة مشاهد على الأقل: مشهد مقدمة ، ومشهد رئيسي للعبة ، ومشهد لإظهار درجات عالية ، إلخ.

في هذا المثال ، نحتاج فقط إلى مقدمة ومشهد أساسي في اللعب نظرًا لأننا لن نحافظ على تتبع الأرواح والعشرات وما إلى ذلك. إن SpriteKit تأتي بالفعل مع مشهد واحد عند إنشاء مشروع جديد ، لذا فنحن نحتاج فقط إلى مشهد تمهيدى.

من قائمة Xcode ، اختر File> New> File. تأكد من اختيار iOS ، واختر Cocoa Touch Class.

new cocoa touch class

اسم الفئة StartGameScene ، وتأكد من أن فئة فرعية تم تعيينها إلى SKScene وتعيين اللغة إلى Swift.

startgamescene class

إعداد GameViewController

افتح GameViewController.swift. احذف كل شيء في هذا الملف واستبدله بما يلي.

عند إنشاء مشروع جديد ، تم إعداد GameViewController.swift لتحميل GameScene.sks من القرص. يستخدم GameScene.sks جنبا إلى جنب مع محرر المشهد المدمج في SpriteKit ، والذي يسمح لك بصريا وضع المشاريع الخاصة بك. لن نستخدم GameScene.sks ، وسنعمل بدلاً من ذلك على إنشاء كل شيء من الشفرة ، لذلك نبدأ هنا بمثيل جديد من StartGameScene ونقدمه.

إنشاء مقدمة المسرح

أضف التالي إلى StartGameScene.swift الذي تم إنشاؤه حديثًا.

هذا المشهد بسيط جدا. في طريقة didMove ، نقوم بإضافة شعار وزر. ثم ، في touchesBegan ، نكتشف اللمسات على زر اللعبة الجديدة ونستجيب عن طريق تحميل المشهد الرئيسي GameScene.

تخطيط فصول اللعبة

الشيء التالي الذي أحب القيام به عند إنشاء لعبة جديدة هو تحديد الفئات التي سأحتاج إليها. أستطيع أن أخبرك على الفور أنني سأحتاج إلى فصل لاعب وفئة العدو. كل من هذه الفئات سيمدد SKSpriteNode. أعتقد أنه بالنسبة لهذا المشروع ، سنقوم فقط بإنشاء اللاعب ورصاص العدو من داخل صفوف كل منهما. يمكن أن تجعل رصاصة منفصلة لاعب وفئات رصاصة العدو إذا كنت تفضل ذلك، واقترح عليك محاولة للقيام بذلك كممارسة الخاص بك.

وأخيرا ، هناك الجزر. هذه لا تملك أي وظيفة محددة ولكن للانتقال إلى أسفل الشاشة. في هذه الحالة ، نظرًا لأنهم مجرد ديكورات ، أعتقد أنه من الأفضل أيضًا عدم إنشاء فصل دراسي ، وبدلاً من ذلك فقط أنشئها في GameScene الرئيسي.

إنشاء فئة لاعب

من قائمة Xcode ، اختر File> New> File. تأكد من اختيار نظام iOS واختيار Cocoa Touch Class.

new cocoa touch class

تأكد من أنه تم تعيين Class على Player ، تم تعيين فئة فرعية من: إلى SKSpriteNode ، وتم ضبط اللغة على Swift.

player class

الآن إضافة ما يلي إلى Player.swift.

ضمن طريقة init () ، قمنا بإعداد physicsBody واستدعاء generateBullets (). يقوم الأسلوب generateBullets بشكل متكرر باستدعاء fireBullet () ، الذي يقوم بإنشاء رمز نقطي ، ويقوم بتعيين physicsBody ، ويقوم بنقله إلى أسفل الشاشة.

عندما يفقد اللاعب حياة، يتم استدعاء الأسلوب respawn(). داخل الأسلوب بيضة، نحن تتلاشى الطائرة والخروج خمس مرات، خلال الوقت الذي سيكون اللاعب الذي لا يقهر. اللاعب واحد قد استنفد كل حياة، يتم استدعاء الأسلوب kill(). ببساطة تحميل طريقة قتل في StartGameScene.

إنشاء فئة العدو

اختر ملف> جديد> ملف من قائمة Xcode. تأكد من اختيار نظام iOS واختيار Cocoa Touch Class.

new cocoa touch class

تأكد من أن يتم تعيين فئة إلى العدو، فئة فرعية من: تعيين إلى سكسبريتينودي، ويتم تعيين اللغة إلى سويفت.

يضاف ما يلي إلى Enemy.swift.

هذه الفئة تشبه إلى حد كبير فئة Player. قمنا بتعيين phisicsBody واستدعاء generateBullets (). تتحرك () ببساطة تحريك العدو إلى أسفل الشاشة.

إنشاء لعبة المشهد الرئيسي

حذف كل شيء داخل GameScene.swift وإضافة ما يلي.

نحن نخلق مثيل لاعب ومثيل CMMotionManager. نحن نستخدم مقياس التسارع لنقل اللاعب في هذه اللعبة.

ضمن طريقة (:didMove (to نوقف الجاذبية ، نضبط contactDelegate ، نضيف حلقة حافة ، وضبط وضع اللاعب قبل إضافته إلى المشهد. ثم نستدعي setupAccelerometer () ، الذي يقوم بإعداد مقياس التسارع ، ونستدعي أساليب addEnemies () و generateIslands ().

الأسلوب addEnemies() مرارا وتكرارا استدعاء الأسلوب generateEnemy() الذي سيتم إنشاء مثيل من العدو وإضافته إلى موقع الحادث.

يعمل أسلوب generateIslands () بشكل مشابه للأسلوب addEnemies () في أنه بشكل متكرر يدعو createIsland () الذي ينشئ SKSpriteNode ويضيفه إلى المشهد. ضمن createIsland () ، نقوم أيضًا بإنشاء SKAction الذي يحرك الجزيرة إلى أسفل المشهد.

داخل الأسلوب didBegin(_:)، ونحن تحقق لمعرفة أي العقد تجعل الاتصال والرد بإزالة العقدة المناسبة من مكان الحادث واستدعاء player.die() إذا لزم الأمر. ينشئ الأسلوب createExplosion () حركة انفجارية ويضيفها إلى المشهد. بمجرد الانتهاء من الانفجار ، يتم إزالته من المشهد.

استنتاج

خلال هذه السلسلة ، تعلمنا بعضًا من أهم المفاهيم المستخدمة في جميع ألعاب SpriteKit تقريبًا. لقد أنهينا هذه السلسلة بإظهار مدى بساطة الحصول على اللعبة الأساسية وتشغيلها. لا تزال هناك بعض التحسينات التي يمكن إجراؤها ، مثل HUB ، درجات عالية ، والأصوات (قمت بتضمين اثنين من ملفات MP3 التي يمكنك استخدامها لهذا في الريبو). آمل أن تكون قد تعلمت شيئًا مفيدًا خلال هذه السلسلة ، وشكرًا على القراءة!

إذا كنت تريد معرفة المزيد حول برمجة الألعاب باستخدام SpriteKit ، فراجع أحد دورات الفيديو الشاملة! سوف تتعلم كيفية بناء لعبة SpriteKit من الألف إلى الياء.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.