فوز أم خسارة
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 32 من 63.
التحدي
متوسطالخطوة الأخيرة: طريقة للفوز. احتفظ بكل شيء من الخطوات السابقة، وأضف إلى Ball:
public int target = 10;(يضبط Inspector القيمة على 8).- تكون اللعبة نشطة ما دام
timeLeftأكبر من 0 وscoreأقل منtarget. اكتب ذلك كدالة،bool IsPlaying()، واستخدمها: يتناقص الوقت، وتدفع الأسهم، وتضيف العملات إلى النتيجة فقط أثناء نشاط اللعبة. - عندما ترفع عملة
scoreإلىtargetأو أكثر، سجّلYou win!بعد سطر النتيجة. - عندما ينفد الوقت أولًا، سجّل
You lose!بعد سطرTime's up!.
اضغط Play وحقق 8 نقاط قبل نفاد الوقت، ثم اضغط Check.
جرّب بنفسك
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
public int score;
public float timeLimit = 60f;
public float timeLeft;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
timeLeft = timeLimit;
}
void Update()
{
if (timeLeft > 0f)
{
timeLeft -= Time.deltaTime;
if (timeLeft <= 0f)
{
timeLeft = 0f;
Debug.Log("Time's up! Score: " + score);
}
}
}
void FixedUpdate()
{
if (timeLeft > 0f)
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
rb.AddForce(new Vector3(x, 0f, z) * force);
}
}
public void AddScore(int points)
{
score += points;
Debug.Log("Score: " + score);
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق