Unity: Sprung verbessern?

https://www.youtube.com/watch?v=fSA0z6qmyR8

Ich hätte eine Frage: Wie mache ich es, dass ich in meinem Unity-Projekt (2D RPG) die Sprungfunktion flüssiger mache. Also, sodass ich bestimmen kann, dass sich der Charakter schneller nach oben und unten bewegt.

Ich habe außerdem das Problem, dass, wenn ich nach rechts oder links springe, aber an einem Collider komme, der Charakter an dem Collider hängen bleibt. Wie behebe ich das, dass eben der Charakter dann nur am Collider ankommt, aber dann direkt nach unten fällt und nicht solange hängen bleibt, bis ich aufhöre, gegen den Collider zu gehen?

Code des PlayerController:

public class PlayerController : MonoBehaviour
{
  public float moveSpeed;
  private Animator anim;
  private Rigidbody2D playerRigidbody;
  private bool playerMoving;
  private bool playerJumping;
  
  [SerializeField]
  private float jumpVelocity;

  [SerializeField]
  private LayerMask platformsLayerMask;

  private Rigidbody2D rigidbody2d;
  private BoxCollider2D boxCollider2d;

  // Start is called before the first frame update
  void Start()
  {
    anim = GetComponent<Animator>();
    playerRigidbody = GetComponent<Rigidbody2D>();
    boxCollider2d = transform.GetComponent<BoxCollider2D>();
  }

  // Update is called once per frame
  void Update()
  {
    playerMoving = false;
    playerJumping = false;

    if (Input.GetAxisRaw("Horizontal") > 0.5f || Input.GetAxisRaw("Horizontal") < -0.5f)
    {
      playerRigidbody.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * moveSpeed, playerRigidbody.velocity.y);
      playerMoving = true;
    }

    if (Input.GetAxisRaw("Horizontal") < 0.5f && Input.GetAxisRaw("Horizontal") > -0.5f)
    {
      playerRigidbody.velocity = new Vector2(0f, playerRigidbody.velocity.y);
    }

    anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
    anim.SetBool("PlayerMoving", playerMoving);
    anim.SetBool("PlayerJumping", playerJumping);

    if (IsGrounded() && Input.GetKeyDown(KeyCode.Space))
    {
      // jumpVelocity = 8.8f;
      playerRigidbody.velocity = Vector2.up * jumpVelocity;
    }
  }

  private bool IsGrounded()
  {
    float extraheight = .5f;
    RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider2d.bounds.center, boxCollider2d.bounds.size, 0f, Vector2.down, extraheight, platformsLayerMask);
    Color rayColor;

    if (raycastHit.collider != null)
    {
      rayColor = Color.green;
    }
    else
    {
      rayColor = Color.red;
    }

    //Debug.DrawRay(boxCollider2d.bounds.center, Vector2.down * (boxCollider2d.bounds.extents.y + extraheight), rayColor);
    //Debug.Log(raycastHit.collider);

    return raycastHit.collider != null;
  }
}
programmieren, Unity
C++: Kann ich diesen Code irgendwie noch vereinfachen?

Guten Abend,

ich schreibe gerade in C++ an einem kleinen Kniffelspiel. Im Moment bin ich soweit, dass ich mir fünf zufällige Zahlen (Würfel) über die rand()-Funktion erstelle, diese dann in einem Vektor speichere und anschließend über die Funktion auswertung() den höchsten Pasch zurückgebe. Jedoch ist der Code nicht gerade sehr kompakt. Hat jemand Vorschläge für Optimierungen?

Vielen Dank im Voraus!

#include <iostream>
#include <ctime>
#include <vector>
#include <random>

using namespace std;

vector<int> würfe()
{
  vector<int> list; // Ermittelt über die aktuelle Systemzeit 5 Zufallszahlen und übergibt sie dem Vektor list
  srand(time(0));

  for (int i = 0; i < 5; i++) {
    list.push_back(1 + rand() % 6);
    cout << list[i];
  }

  cout << endl;
  return list;
}

int auswertung(vector<int> ergebnis)
{
  int pasch = 0;

  // Verschachtelte for-Schleife iteriert durch Vektor und vergleicht alle Elemente miteinander
  for (vector<int>::iterator it = ergebnis.begin(); it != ergebnis.end(); ++it) {
    for (vector<int>::iterator it1 = ergebnis.begin(); it1 != ergebnis.end(); ++it1) {
      // Nur wenn die Werte gleich sind (Pasch) und nicht auf dasselbe Element zeigen, geht es weiter
      if (*it1 == *it && it != it1) {
        // Nur wenn der gefundene Pasch höher als der Höchste bereits gefundene ist, wird er ausgewertet
        if (*it > pasch) {
          switch (*it) {
            case 1: pasch = 1;
              break;
            case 2:
              pasch = 2;
              break;
            case 3: pasch = 3;
              break;
            case 4: pasch = 4;
              break;
            case 5: pasch = 5;
              break;
            case 6: pasch = 6;
              break;
          }
        }
      }
    }
  }

  return pasch;
}

int main()
{
  int pasch;
  vector<int> random = würfe();
  pasch = auswertung(random);

  cout << "Pasch: " << pasch << endl;
}
Computer, Software, Technik, programmieren, Cplusplus, CC, Code, CPP, Informatik, Softwareentwicklung, Technologie, C (Programmiersprache)
Roblox YouTuber wollen zur RDC? Eure Meinung?

HOWDY!

Im Juli (?), ist es doch wieder soweit. Die Roblox Developer Conference!

Für die unter euch die nicht wissen was das ist:

Roblox Developer gehen dahin um sich zu treffen, ein Game Jam Spiel zu machen, über ihre Spiele mit anderen Developern zu reden, um Bloxy Cola zu trinken usw..!

Nun, jetzt ist seit letzten tagen das Thema das auch Roblox Content Creator/YouTuber auch dahin wollen, um "sich mit den Devs u treffen und um gemeinsam tolle Sachen auf Roblox zu starten".

Ich bin der Meinung vieler anderer Leute und Devs: Ich bin dagegen!

Lass uns doch ehrlich sein: Die YouTuber, die nur Spiele aufnehmen und damit Geld verdienen, haben viel mehr Vorteile von Roblox:

  • Sie bekommen immer Geschenke von Roblox, wie z.B. Taschen, Socken, und Spielzeuge etc.
  • Leute können beim Kauf von Robux "star codes" einsetzten um die YouTuber zu unterstätzen.
  • Ich bin mir nicht sicher, aber es sprach sich rum das sie nach einen bestimmten grad von Popularität freies Premium kriegen.

Und was bekommen due Developer?:

  • Nichts

Jetzt wollen die YTer sogar zu der RDC, denn einzigen Vorteil den Developer wirklich haben!

Ich finde es blöd das YTer zur RDC wollen, sie sollen den Devs den einzige Perk lassen.

Was ist eure meinung?

Ich habe was dagegen das YTer zu RDC wollen! 83%
Wo ist eigentlich das Problem!? 17%
Ja... Nein... Hmmm, ich weiss nicht... 0%
YouTube, programmieren, Gaming, Entwicklung, Roblox, Veranstaltung, YouTuber, Spiele und Gaming
Arduino Fehlermeldung programmer not responding?

Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Arduino/Genuino Uno"

Der Sketch verwendet 724 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.

Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x8d

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x8d

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x8d

Dieser Bericht wäre detaillierter, wenn die Option

"Ausführliche Ausgabe während der Kompilierung"

in Datei -> Voreinstellungen aktiviert wäre.

Was machen?

Computer, Technik, programmieren, Arduino
Ausgabe einer Hashmap?

Hallo zusammen

Ich habe eine Frage und zwar möchte ich folgende Hashmap in der console ausgeben jedoch habe ich Schwierigkeiten...

Der Code:

import java.util.HashMap;
import java.util.Scanner;

public class Passwordsaver {

    public static void main(String[] args) throws InterruptedException {

        // declare the hashmap
        HashMap&lt;Integer, String&gt; Password = new HashMap&lt;&gt;();
        boolean loopAgain = true;
        Scanner scan = new Scanner(System.in);

        // loop while user not entering no
        do {
            // ask for user input for id number
            System.out.print("Enter Page:");
            String page = scan.nextLine();

            // ask for user input which corresponds to student name
            System.out.print("Enter Password");
            String password = scan.nextLine();

            // add the key value pair from user input to the hashmap

            String oldVal = password + page;

            if (oldVal!=null) {
                System.out.println("The password for the page: " + page + " is "
                        + password + " and will be overwritten if entered again");
            }

            // ask user to check if another entry is required
            System.out.print("Enter another account (y/n)?");
            String answer = scan.nextLine();

            // condition to satisfy in order to loop again
            if (answer.equals("y") || answer.equals("Y")) {
                continue;
            } else {
                break; //stops
            }

        } while (loopAgain);
        scan.close();

        System.out.println("\n**********************************");
        System.out.println("The following students are in database");
        System.out.println(" &nbsp; account&nbsp; "+ "&nbsp; &nbsp; &nbsp; password");      
        for(int page:Password.keySet()){
            System.out.println(" &nbsp; "+page+" &nbsp; &nbsp; "+Password.get(page));
        }
        System.out.println("\n**********************************");
    }

}

Es funktioniert alles bis auf den letzten Schritt bei while (loopAgain);

Da möchte ich das page sowie das password ausgeben...

Kann mir vielleicht jemand weiterhelfen?

Vielen Dank!!!

Grüsse und noch einen schönen Tag

programmieren, Java, Hashmap

Meistgelesene Beiträge zum Thema Programmieren