Crisis Point – תהליך ליבה

תיאור כללי

משחק דו-ממדי בנושא משבר כלכלי. השחקן נע בעולם קניות ובשלב מסוים נכנס למצב "משבר" שבו עליו לבצע משימות הישרדות קוגניטיביות (כמו שאיבת מים, כביסה, אוכל) כדי לצבור מטבעות ולצאת מהמשבר. במטלה זו מומש תהליך ליבה של משימת "כביסה": שאיבת מים מהבאר, הבאתם למכונת הכביסה, איסוף בגדים והעברתם למכונה.

תהליך ליבה ממומש

תיאור מילולי

  1. השחקן נע בסצנה באמצעות מקשי התנועה וקפיצה.
  2. השחקן מפעיל ידית ליד באר. הידית יורדת ועולה, הדלי עולה בהדרגה והחבל מתקצר.
  3. כאשר הדלי מגיע למעלה, השחקן יכול לאסוף אותו ולהחזיק אותו ביד.
  4. השחקן ניגש עם הדלי למכונת הכביסה, הדלי נעלם והמכונה "מקבלת מים" ומתחילה לנוע (רטט ימינה/שמאלה).
  5. רק לאחר שהמכונה קיבלה מים, השחקן יכול לאסוף בגדים מערימת בגדים בסצנה.
  6. במגע עם ערימת בגדים:
    • הערימה שנבחרה נעלמת.
    • נוצר אובייקט של בגד קטן (Prefab) שמוחזק ביד השחקן.
  7. השחקן ניגש עם הבגד למכונת הכביסה:
    • הבגד שביד נעלם (נחשב כאילו נכנס למכונה).
    • ניתן לחזור לערימה אחרת ולקחת בגד נוסף, לפי צורכי המשימה.
  8. במקביל, מערכת המטבעות (PlayerCoins) מעדכנת סכום מטבעות ומציגה אותם ב-UI. כמות המטבעות משפיעה על הרקע (צבע, מצב משבר וכו').

מבנה פרויקט (תיקיות)

  • Scripts/Player
    • PlayerMovement2D.cs – תנועה וקפיצה של השחקן.
    • PlayerTaskInteraction.cs – אינטראקציות עם דלי, מכונה ובגדים.
    • PlayerCoins.cs – ניהול מטבעות ו-UI.
  • Scripts/Environment
    • SimpleLever.cs – לוגיקת הידית, הסיבוב, הדלי והחבל.
    • WashingMachineMover.cs – תנועת מכונת הכביסה כאשר היא "פעילה".
  • Scripts/Objects
    • ClothesPile.cs ניהול ערימת בגדים.
  • UI
    • טקסט מטבעות (TextMeshPro) המחובר ל-PlayerCoins.
  • Prefabs
    • Player
    • Bucket
    • WashingMachine
    • ClothesPile_* (גדול/בינוני/קטן)
    • SmallCloth (הבגד הקטן שמוחזק ביד)

תרשים UML (לוגי)

התרשים הבא מתאר את הקשרים המרכזיים בין המחלקות בתהליך הליבה:

+------------------+          +-----------------------+
|   PlayerMovement2D|         |      PlayerCoins      |
|------------------|          |-----------------------|
| - rb: Rigidbody2D|          | - Coins: int          |
| - moveSpeed: float|         |-----------------------|
| - jumpForce: float|         | + AddCoins(int)       |
|------------------|          | + TrySpendCoins(int):bool|
| + FixedUpdate()   |         |                       |
+------------------+          +-----------------------+
          ^
          |
          | uses
          |
+---------------------------+
|   PlayerTaskInteraction   |
|---------------------------|
| - bucketHoldPoint: Transform   |
| - clothesHoldPoint: Transform  |
| - washingMachine: WashingMachineMover |
| - carriedBucket: GameObject    |
| - carriedCloth: GameObject     |
| - hasBucket: bool              |
| - hasCloth: bool               |
|-------------------------------|
| + OnTriggerEnter2D(Collider2D)|
| - TryPickBucket(GameObject)   |
| - TryInteractWithMachine()    |
| - TryPickClothes(GameObject)  |
+-------------------------------+
          |
          | interacts with
          v
+-------------------------+        +-------------------------+
|     SimpleLever         |        |  WashingMachineMover    |
|-------------------------|        |-------------------------|
| - lever: Transform      |        | - isActive: bool        |
| - bucket: Transform     |        | - hasWater: bool        |
| - rope: Transform       |        | - startPosition: Vector3|
|-------------------------|        |-------------------------|
| + OnCollisionEnter2D()  |        | + Activate()            |
| - LeverActionStep()     |        | + Deactivate()          |
| - RaiseBucketStep()     |        | + Update()              |
+-------------------------+        +-------------------------+
          ^
          |
          | condition: hasWater == true
          |
+-------------------------+
|      ClothesPile        |   (אופציונלי, אם משתמשים במנהל אחד לערימה)
|-------------------------|
| - smallClothPrefab: GameObject |
| - usesLeft: int         |
|-------------------------|
| + TakeCloth(): GameObject      |
+-------------------------+

גיטהב

Leave a comment

Log in with itch.io to leave a comment.