C Sharp – die besten Beiträge

Wie kann ich Text in einer Variable in C# speichern, ohne ihn zu entfernen, wenn ich zurück in die Main Methode komme?

Hey, ich habe vor ein paar Tagen angefangen C# zu lernen und versuche nun einige einfache Programme für Anfänger zu programmieren. Der Taschenrechner hat schon funktioniert jedoch scheitert es jetzt bei einem Schreibprogramm, was den Text temporär in einer Variable der Konsole speichern soll und wieder aufrufbar ist.

Am Anfang meine Codes, habe ich 4 String Variablen als Speicherplatz festgelegt. Wie diese aussehen, sieht man auf dem Bild.

Nun muss der Nutzer angeben, ob er einen neuen Text speichern oder ein vorhandenes Dokument öffnen will. Will er ein neues speichern wird mit Hilfe einer If-Abfrage geschaut, welche von den 4 Variablen noch leer ist.

...darunter sind mit "else if" noch die anderen Speicherplätze festgelegt.

Nach einer Eingabe wird der Text in dem String gespeichert und man gelangt zurück zur Main Methode, wo dann allerdings wieder das, was in die Variable eingetragen wurde gelöscht wird, da ich den Variablen ja einen Startwert zuweisen musste. (sieht man auf dem Bild) ich kann die variablen auch nicht später der Eingabe direkt zuweisen, da die Konsole erst überprüfen muss, welche Variable noch frei ist.

Ich hoffe es ist verständlich, was mein Problem ist und jemand kann mir weiterhelfen.

Vielen Dank schon mal im Voraus!

Bild zum Beitrag
Computer, Software, Technik, programmieren, C Sharp, Technologie, Visual Studio 2019

C# / Unity: Mit Leertaste Spiel starten?

Hallo,

ich habe ein Spiel in Unity programmiert, in dem man mit einem Block verschiedenen Blöcken ausweichen muss. Wenn man diese berührt, fängt alles noch einmal an (ziemlich einfaches Spielprinzip).

Der Spielerblock bewegt sich dauerhaft nach vorne und man hat die Möglichkeit, sich nach rechts oder links zu bewegen.

Nun möchte ich, wenn ich am Anfang des Spiels die Leertaste drücke, dass sich dieser Block ab dann dauerhaft nach vorne bewegt. Nur leider geht der Spieler immer nur ein paar Pixel nach vorne, wenn ich die Leertaste drücke. Aber er soll dauerhaft nach vorne gehen. Ich hoffe, Ihr versteht, was ich meine.

Hier mein Quellcode:

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

public class MoveScript : MonoBehaviour
{
  public float movespeed = 7f;
  public float movespeed2 = 7f;

  // Start is called before the first frame update
  void Start()
  {
  }

  // Update is called once per frame
  void Update()
  {
    float H = Input.GetAxis("Horizontal") * movespeed;
    Vector3 vec = new Vector3(H, 0, 0);
    Vector3 frontvec = new Vector3(0, 0, movespeed2);

Ab hier versuche ich, dies zu programmieren:

if (Input.GetKeyDown(KeyCode.Space))
{
  transform.Translate(frontvec * movespeed2 * Time.deltaTime);
}

if (Input.GetKeyUp(KeyCode.Space))
{
  transform.Translate(frontvec * movespeed2 * Time.deltaTime);
}

Ab hier geht es mit dem Rest weiter:

    transform.Translate(vec * movespeed * Time.deltaTime);
  }
  
  private void OnCollisionEnter(Collision collision)
  {
    if (collision.gameObject.tag == "Starters")
    {
      SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
  }
  
  private void OnTriggerEnter(Collider other)
  {
    if (other.gameObject.tag == "SpeedP")
    {
      movespeed2 += 1f;
    }
  
    if (other.gameObject.tag == "SideSPWN")
    {
      SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
  }
}
C Sharp, Unity

Meistgelesene Beiträge zum Thema C Sharp