انجُ واجمع النقاط
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 80 من 85.
تُكمل هذه الخطوة لعبة تفادي الكتل: مؤقّتًا يُنشئ الكتل، وقائمةً تتحرك وتنظّف العناصر، واختبارًا للاصطدام، ونقاطًا تحسب الثواني. يؤدي وضع (int) قبل عدد عشري إلى حذف الجزء الكسري منه.
التحدي
متوسطأضف نتيجة، واجعل الكتل تسقط بسرعة تزداد باستمرار.
- أضف
private float score;و[SerializeField] private float speedUp = 0.2f;. - في بداية
Update()، أضفTime.deltaTimeإلىscoreوspeedUp * Time.deltaTimeإلىfallSpeed. - عند الاصطدام، سجّل
"Game over! Score: " + (int)score. تحذف(int)الجزء الكسري: تظهر 12.7 على أنها 12.
اضغط «العب» وابقَ على قيد الحياة: يسجّل الاصطدام نتيجتك. ثم اضغط «تحقق».
جرّب بنفسك
using System.Collections.Generic;
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
[SerializeField] private GameObject blockPrefab;
[SerializeField] private float spawnEvery = 1f;
[SerializeField] private float fallSpeed = 5f;
private List<GameObject> blocks = new List<GameObject>();
private float timer;
void Update()
{
Vector3 p = transform.position;
p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
transform.position = p;
timer += Time.deltaTime;
if (timer >= spawnEvery)
{
timer -= spawnEvery;
Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
}
for (int i = blocks.Count - 1; i >= 0; i--)
{
blocks[i].transform.position += Vector3.down * fallSpeed * Time.deltaTime;
Vector3 b = blocks[i].transform.position;
if (Mathf.Abs(b.x - transform.position.x) < 1f && Mathf.Abs(b.y - transform.position.y) < 1f)
{
Debug.Log("Game over");
enabled = false;
return;
}
if (b.y < -1f)
{
Destroy(blocks[i]);
blocks.RemoveAt(i);
}
}
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity