Einsteiger-Ecke     
         
 
           Synonym – pointer wdl 

Ein Synonym ist ein Container für ein oder mehrere Objekte. Aber wofür ist ein Synonym gut? 

Nehmen wir an, ich trete in ein dunkles Zimmer und will das Licht anknipsen, indem ich mit einer Waffe in den Schalter schieße. Der Schalter befindet sich an der Wand, die Lampe an der Zimmerdecke. Wir brauchen etwas, was sich an das Licht an der Decke wedet, denn wir wollen das LIGHTRANGE von 0 auf 500 erhöhen. Wenn wir ein Objekt in wed platzieren, bekommt es einen Namen, aber dieser kann nicht in unseren Aktionen gebraucht werden. Wir müssen ein Synonym definieren.

SYNONYM lamp_syn {TYPE entity;}   // lamp ist eine Entität  
var lamp_counter = 1; //1 für on, 0 für off  

Wir müssen zwei Aktionen aufbauen: eine für den Schalter, die andere für die Lichtquelle. Wir gebrauchen keine Funktionen, denn diese gibt es nicht auf der Aktionsliste von Wed.

ACTION light_switch   
{   
      MY.ENABLE_SHOOT = ON;  // Der Schalter ist empfindlich auf die Schüse einer Waffe 
      MY.EVENT = lamp_on; // Ausgelöst, wenn man in den Schalter schießt  
}  

ACTION light_switch benutzt eine Waffe um sie auszulösen; lamp_on wird durchgeführt, wenn man in den Schalter schießt.

ACTION lamp   
{  
      lamp_syn = ME;   
      MY.LIGHTRED  = 200; // Die Farben der Lichtquelle  
      MY.LIGHTGREEN = 200;  
      MY.LIGHTBLUE = 150;  
}  

lamp-syn in ME; bedeutet dass die Lichtquelle von nun nan als lamp_syn in jeder Aktion und Funktion bekannt ist. Wir können sogar die Taste benutzen 

lamp_syn.SCALE_X /= 2;   

an der Konsole und die Lampe wird sich verringern
  
function lamp_on () // Eine andere Funktion, sie kann aber die Lichtquelle kontrollieren indem man lamp_syn 
{  
      if (lamp_counter == 1)   
      {  
            lamp_syn.LIGHTRANGE = 500; // Licht anschalten   
            lamp_counter = 0;  // reset-up   
      }  
      else  
      {  
            lamp_syn.LIGHTRANGE = 0; // Licht ausschalten   
            lamp_counter = 1;  // set-up  
      }  
}  
  
Vergessen Sie nicht bevor Sie ein Synonym gebrauchen, müssen Sie es zuerst definieren und einer Entität asignieren mit Gebrauch des SET synonym_name, ME; in der Aktion oder Funktion der Entität.
   
  

                 Anweisungen zu Vektoren   

Dieses Mal gebrauchen wir die Instruktion vec_dist um einen Flare Effekt zu erzielen. Die Idee ist einen Sprite Flare ins Niveau zu platzieren, dann SCALE zu kontrollieren je nach der Entfernung zwischen Player und Sprite.

var flare_dist = 0; // Wir speichern die Entfernung 

ACTION flare_ok // die dem Sprite anhaftet   
{  
      MY.FLARE = ON;   
      WHILE (1)   
      {  
            flare_dist = vec_dist(PLAYER.X, MY.X); // die Entfernung zwischen Player und Flare  
            IF (flare_dist > 2000)   
            {  
                 flare_dist = 2000; // wir erlauben nicht dass der Sprite zu groß wird    
            }  
            MY.SCALE_X =  (flare_dist / 300 + 0.1);  
            MY.SCALE_Y =  (flare_dist / 300 + 0.1);  
            IF (flare_dist < 40)   
            {  
                  SET MY.INVISIBLE, ON; // wenn wir zu nahe an Flare sind, machen wie den Sprite unsichtbar  
            }  
            ELSE   
            {  
                  SET MY.INVISIBLE, OFF; // ansonsten machen wir den Sprite sichtbar  
            }   
            WAIT 1;  
     }  
}  

Sie können auch einen anderen Ausdruck gebrauchen um die Größe des Sprite zu verändern, je nach dem eigenen Bedarf; ich habe hier eine einfache Formel gebraucht.