مضرب عريض
الدرس 16 من 19 في دورة لعبة Unity: كاسر الطوب على Coddy.
التأثير المؤقت هو روتين مشترك: غيّر، وانتظر، ثم أعد القيمة. إذا حدث التقاط ثانٍ أثناء استمرار الأول، فيجب أن يبدأ الوقت من جديد، لذا احتفظ بـCoroutine الذي تُعيده StartCoroutine وأوقفه قبل بدء روتين جديد. وإلا سينتهي الأول مبكرًا ويلغي تأثير الثاني. تعزيز السرعة:
if (boost != null) StopCoroutine(boost);
boost = StartCoroutine(BoostFor(3f));
IEnumerator BoostFor(float seconds)
{
speed = normalSpeed * 2f;
yield return new WaitForSeconds(seconds);
speed = normalSpeed;
boost = null;
}يضبط السرعة انطلاقًا من normalSpeed، المحفوظة مرة واحدة، بدلًا من مضاعفة السرعة الحالية: تعزيزان متتاليان سيجعلانها أسرع بأربعة أضعاف. تقرأ آلية تقييد حركة المضرب عرضه في كل خطوة، لذا يتوقف المضرب العريض عند الجدران أيضًا.
التحدي
صعبيجعل تعزيز Wide المضرب أعرض لمدة 8 ثوانٍ.
- في
Paddle، أضفpublic float wideFactor = 1.6f;وpublic float wideSeconds = 8f;، واحتفظ بمقياس x الطبيعي في Awake. - توقف Widen() الروتين المشترك الجاري، إن وُجد، وتبدأ روتينًا مشتركًا: مقياس x يساوي
wideFactorمضروبًا في المقياس الطبيعي، ثم انتظرwideSeconds، ثم أعده إلى الطبيعي. - يحتاج الروتين المشترك إلى
using System.Collections;.
اضغط «العب» والتقط واحدة خضراء: يكبر المضرب، ثم يعود إلى حجمه السابق. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
using UnityEngine.InputSystem;
public class Paddle : MonoBehaviour
{
public float speed = 14f;
public float wallX = 8f; // الأوجه الداخلية للجدارين الجانبيين تقع عند -wallX وwallX
Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float input = 0f;
if (Keyboard.current.leftArrowKey.isPressed || Keyboard.current.aKey.isPressed) input -= 1f;
if (Keyboard.current.rightArrowKey.isPressed || Keyboard.current.dKey.isPressed) input += 1f;
Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime;
float halfWidth = transform.localScale.x / 2f;
target.x = Mathf.Clamp(target.x, -wallX + halfWidth, wallX - halfWidth);
rb.MovePosition(target);
}
public void Widen()
{
Debug.Log("Wide paddle");
}
}
جميع دروس لعبة Unity: كاسر الطوب
تدرّب بنفسك: Playground لـ Unity