Makros

Um das Leben einfacher und den Code kürzer zu machen, sind die folgenden Makros in include\acknex.h vordefiniert. !!  Wertvoller Tipp: bevor Sie ein Makro verwenden, sollten Sie in acknex.h nachsehen und prüfen, was dieses bestimmte Makro macht. Wenn sie auf falsche Weise benutzt werden, sind Makros in einer Programmiersprache dafür berüchtigt, Ärger zu machen. Also verwenden Sie kein Makro ohne zu wissen, welchen Code es generiert.

set(obj,flag)

reset(obj,flag)

toggle(obj,flag)

Setzen, Zurücksetzen oder Umschalten eines oder mehrerer Flags im flags-Parameter des angegebenen Objekt-Pointers.

Beispiele:

set(mpanel,SHOW | TRANSLUCENT);
reset(myview,SHOW | AUDIBLE);
toggle(my,PASSABLE);

is(obj,flag)

Prüft, ob das Flag im flags-Parameter des angegebenen Objekt-Pointers gesetzt ist.

Beispiel:

if (is(my,INVISIBLE)) ptr_remove(me);

zero(struct)

vec_zero(vector)

Setzt das gegebene Struct oder den Vektor auf Null; nützlich zum Initialisieren lokaler Variablen in Funktionen.  !!  Seien Sie sich der Tatsache bewußt, daß zero() nur ein Struct bereinigen kann, nicht aber einen Sruct-Pointer oder ein Engine-Objekt.

Beispiel:

function foo() 
{

  ANGLE my_angle;
  struct MYTYPE my_struct;
  ...
  vec_zero(my_angle);
  zero(my_struct); // don't use this for struct pointers or engine objects!
}

wait_for(function)

Wartet auf die Kompletierung sämtlicher Instanzen der gegebenen Funktion.

Beispiel:

function foo() 
{
  int i;
  for (i=0; i<100; i++) { wait(1); }
}
...
foo();
wait_for(foo); // wait until foo is terminated

COLOR_WHITE, COLOR_BLUE, COLOR_GREEN, COLOR_RED, COLOR_GREY, COLOR_BLACK

Einige vielbenutzte Farbvektoren.

DEBUG_VAR(variable,pos_y)

Zeichnet den Inhalt der Variablen in roten Buchstaben an der gegebenen vertikalen Position auf den Bildschirm. Dies läßt sich zum schnellen Debuggen einer oder mehrerer lokalen Variablen in einer while-Schleife verwenden.

Beispiel:

action rotate_me() {
  while(1) {
    my.pan += 0.1*time_step; 
    DEBUG_VAR(my.pan,10);
    wait(1);
  }
}

DEBUG_BMAP(bmap,pos_x,scale)

Zeichnet die Bitmap an der gegebenen horizontalen Position und um den gegebenen Faktor skaliert auf den Bildschirm. Dies läßt sich zum schnellen Debuggen des Inhalts von Bitmaps in einer while-Schleife verwenden - ganz besonders hilfreich für Renderziele in einer Folge von View-Stages.

Siehe auch:

#define, flags, proc_status

► Aktuelle Version Online