Algorithms: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
== Generell ==
== Generell ==


* Finde die Stelle mit der höchsten Zahl in einem Array von Zahlen:
=== Finde die Stelle mit der höchsten Zahl in einem Array von Zahlen ===


  int höchsteZahl = -1000000;
  int höchsteZahl = -1000000;
Zeile 19: Zeile 19:
== Arduino ==
== Arduino ==


* Führe eine Funktion einmalig aus, wenn ein Button gedrückt ist, und einmalig etwas anderes, wenn er losgelassen wird
=== Führe eine Funktion einmalig aus, wenn ein Button gedrückt ist, und einmalig etwas anderes, wenn er losgelassen wird ===


  int buttonDown =0;
  int buttonDown =0;
Zeile 43: Zeile 43:
  }
  }


* Mache etwas alle x-Durchläufe
=== Mache etwas alle x-Durchläufe ===


  int loopCounter=0;
  int loopCounter=0;
Zeile 61: Zeile 61:
== Unity ==
== Unity ==


* Führe eine Funktion einmalig aus, wenn ein bestimmter Zustand erreicht ist
=== Führe eine Funktion einmalig aus, wenn ein bestimmter Zustand erreicht ist ===


  public bool bZustand=false;
  public bool bZustand=false;
Zeile 78: Zeile 78:
  }
  }


* Verändere die Position eines Objektes kontinuierlich entlang einer Achse
=== Verändere die Position eines Objektes kontinuierlich entlang einer Achse ===


  public GameObject meinObjekt //hier muss im Editor das Objekt das bewegt werden soll abgelegt werden
  public GameObject meinObjekt //hier muss im Editor das Objekt das bewegt werden soll abgelegt werden
Zeile 86: Zeile 86:
  }
  }


* Von einer Farbe über Zeit zu einer anderen wechseln, per IEnumerator
=== Von einer Farbe über Zeit zu einer anderen wechseln, per IEnumerator ===
   
   
  IEnumerator ChangeColor(){
  IEnumerator ChangeColor(){
Zeile 97: Zeile 97:
       colornew = Color.Lerp(colorBegin, Color.magenta, t);
       colornew = Color.Lerp(colorBegin, Color.magenta, t);
       GetComponent<Renderer>().material.color = colornew;
       GetComponent<Renderer>().material.color = colornew;
 
     
       t += Time.deltaTime/amountOfSeconds;
       t += Time.deltaTime/amountOfSeconds;
       yield return new WaitForEndOfFrame();
       yield return new WaitForEndOfFrame();

Version vom 13. März 2019, 14:44 Uhr

Alle Snippets sind zunächst Pseudocode und je nach verwendeter Programmiersprache anzupassen.

Generell

Finde die Stelle mit der höchsten Zahl in einem Array von Zahlen

int höchsteZahl = -1000000;
int stelle = -1;

for (int i=0;i<arrayName.länge;i++){

 if (arrayName[i]>höchsteZahl){
   stelle=i;
   höchsteZahl=arrayName[i];
 }

}

Arduino

Führe eine Funktion einmalig aus, wenn ein Button gedrückt ist, und einmalig etwas anderes, wenn er losgelassen wird

int buttonDown =0;
int inputPin = 5; //hier muss der Pin eingetragen sein, an dem der Button hängt

[...]

void loop(){
  
  if (digitalRead(inputPin)==LOW){
    buttonDown++;
  }
  
  if (buttonDown==1){
     DoSomethingOnceWhenPressed();
  }

  if (digitalRead(inputPin)==HIGH && buttonDown>0){
    DoSomethingOnceWhenReleased();
    buttonDown=0;
  }
  
}

Mache etwas alle x-Durchläufe

int loopCounter=0;
int alleXLoops = 15; //Führt eine Funktion alle 15 loops aus
[...]

void loop(){
  
  loopCounter++;
  
  if (loopCounter%alleXLoops==0){
    DoSomethingEveryXLoops(); 
  }

}

Unity

Führe eine Funktion einmalig aus, wenn ein bestimmter Zustand erreicht ist

public bool bZustand=false;

void Update(){

  if (/*ZustandsAbfrage*/){
    bZustand=true;
  }  

  if (bZustand){
    DoSomethingOnce();
    bZustand=false;
  }

}

Verändere die Position eines Objektes kontinuierlich entlang einer Achse

public GameObject meinObjekt //hier muss im Editor das Objekt das bewegt werden soll abgelegt werden

void Update(){
  meinObjekt.transform.position += new Vector3(xWert,yWert,zWert); 
}

Von einer Farbe über Zeit zu einer anderen wechseln, per IEnumerator

IEnumerator ChangeColor(){

  Color colornew = new Color();
  float t = 0;
  float amountOfSeconds = 4.0f;
  while (t < 1.0f)
  {
     colornew = Color.Lerp(colorBegin, Color.magenta, t);
     GetComponent<Renderer>().material.color = colornew;
     
     t += Time.deltaTime/amountOfSeconds;
     yield return new WaitForEndOfFrame();
  }

}