Wie kriege ich dieses Unity2D Touch/Swipe-Jump-Movement-Problem gelöst?

Hallo,

ich programmiere zur Zeit ein Unity2D-Spiel jedoch ist gerade ein Problem aufgetreten, welches ich vermutlich nicht allein lösen kann.

Und zwar habe ich in meinem Spiel eine Swipe-Mechanik eingebaut, die mit einem Rigidbody sowie einem Vector2 funktioniert und eine Sprungmechanik, wo der Charakter konstant am Springen ist.

Das Problem ist aber, dass beides mit einem Rigidbody und einem Vector2 nicht/funktioniert. Dies führt dazu, dass, wenn ich die Swipe-Mechanik, der Character so unschön nach unten gezogen wird.

Ich füge mal den Code für ein besseres Verständnis ein:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
  public float jumpForce;
  float currentJumpForce;
  private bool isGrounded;
  Vector2 startPos;
  Vector2 movedPos;
  Vector2 endPos;
  public float speed;
  public Rigidbody2D rb;
  bool isTouch;

  // Start is called before the first frame update
  void Start()
  {
    currentJumpForce = jumpForce;
  }

  // Update is called once per frame
  void Update()
  {
    if (Input.touchCount > 0)
    {
      Touch touch = Input.GetTouch(0);
      
      switch(touch.phase)
      {
        case TouchPhase.Began:
          startPos = touch.position;
          isTouch = false;
          break;
        case TouchPhase.Moved:
          movedPos = touch.position;
          print(movedPos - startPos);
          isTouch = true;
          break;
      }
    }
  }

  void FixedUpdate()
  {
      if (isGrounded) <----- Sprung-Mechanik
      {
        rb.velocity = Vector2.up * currentJumpForce;
        isGrounded= false;
      }

      if (isTouch) <------ Swipe-Mechanik
      {
        if (startPos.x < movedPos.x)
        {
          rb.velocity = new Vector2(speed, 0); <----- Hier muss ich eine x- und y-Achse angeben. Jedoch führt der "0"-Wert dazu, dass der Character nach unten gedrückt wird (sehr langsam nach unten fällt)(Das liegt daran dass die Sprung-Machnik ebenfalls mit einem Rigidbody und Vector2 funktioniert und somit dann der Sprungwert auf "0" gesetzt wird!
        }
        else if (startPos.x > movedPos.x)
        {
          rb.velocity = new Vector2(-speed, 0);
        }

        isTouch = false;
      }
    }

    void OnCollisionEnter2D(Collision2D collision)
    {
      istap = true;
    }
  }

Könnte mir jemand bitte eine Alternative zu der Sprung- oder Swipe-Mechanik schreiben?

PS: PhysicsMaterial2D klappt nicht, da der Charakter immer höher Springt.

Computer, Schule, programmieren, C Sharp, Spieleentwicklung, Unity, Unity2D
Bücher für 13 jährige zum erlernen von Programmierung mit Java

Moin,

Meine Nichte ist 13 und möchte gerne Spieleentwicklerin werden, wenn sie mal groß ist, wie sicher, dieser Berufswunsch ist, weiss ich natürlich nicht, aber sie redet schon seit einigen Jahren von dem Berufswunsch.

Ich möchte Sie dabei natürlich gerne unterstützen, da ich aber in einem Komplett anderen Bereich studiere, habe ich keine signifikante Ahnung von der Materie.

Deshalb dachte ich mir, ich schenke ihr zum Einstieg Bücher zur Programmierung mit Java. Weil es aus Sicht von mir als Laie einfacher erscheint als C++ und vielleicht auch ergebnisschneller.

Ich habe nun zwei Bücher gefunden, die kompetent zu sein scheinen: "Java will nur spielen: Programmieren lernen mit Spaß und Kreativität: Programmieren lernen mit Spaß und Kreativität." von Panitz. "Grundkurs Computergrafik mit Java: Die Grundlagen Verstehen und Einfach Umsetzen Mit Java 3D (German Edition): Die Grundlagen verstehen und einfach umsetzen mit Java 3D." von Klawonn

Mich würde interessieren, ob ihr diese Bücher empfehlen würdet, auch mit Bedacht das meine Nichte noch sehr jung ist und vielleicht nicht jede Fachterminologie versteht.

Auch würde mich interessieren, ob ihr andere Bücher empfehlen könnt, bzgl. Java oder ob ihr vielleicht zum Einstieg noch simplifizierter erstmal HTML Bücher verschenken würdet ( Sie spricht bisher keine Programmiersprache).

Vielen Dank für eure Hilfe.

Computer, programmieren, Java, Informatik, Spieleentwicklung

Meistgelesene Beiträge zum Thema Spieleentwicklung