F:
Ich benutze die Klingen aus dem AUM in meinem Level. Wie kann ich es erreichen,
dass sie aus dem Boden kommen? Ich will sie die ganze Zeit aktiv haben...hoch
und runter.
A:
Ersetze action slicing_blades mit dieser hier:
action
slicing_blades
{
my.enable_impact = on;
my.enable_entity = on;
my.enable_push = on;
my.push = -5;
my.event = kill_player;
my.skill10 = my.z;
while (1)
{
while (my.z < my.skill10 + 300)
{
my.z += 15 * time;
wait (1);
}
while (my.z > my.skill10 - 300)
{
my.z -= 15 * time;
wait (1);
}
wait (1);
}
}
F:
Ich mag den Panzer-Code in AUM21 und ich will die KI für die gegnerischen
Panzer verbessern . Wie kann ich die Tilt-Werte für ihre Türme
berechnen, wenn ich den Abstand zum Spieler weiß?
A:
Hier ist das Formular, das die Reichweite eines im Winkel Theta geworfenen
Objekts beschreibt wenn seine Geschwindigkeit bekannt ist. Die größte
Reichweite wird mit Theta (tilt) = 45 Grad erreicht; g = Gravitationskraft.
F:
Wie kann ich entity1 dazu bringen entity2 anzuschauen?
A:
Benutze diesen Code:
vec_set
(temp.x, entity2.x);
vec_sub
(temp.x, entity1.x);
vec_to_angle
(entity1.pan, temp);
F:
Ich brauche einen Kameracode für ein Kampfspiel; Die Kamera muss zwischen
den beiden Spielern platziert sein.
A:
Hier ist dein Code; Er beinhaltet 2 Entities, die mit den Tasten
AS und KL bewegt werden können:
// place this line at the end of main: set_camera();
function set_camera();
entity*
karate_kid;
entity*
karate_granny;
action
kid
{
karate_kid = me;
while (1)
{
if (key_a == 1) {my.x -= 30 * time;}
if (key_s == 1) {my.x += 30 * time;}
wait (1);
}
}
action
granny
{
karate_granny = me;
while (1)
{
if (key_k == 1) {my.x -= 30 * time;}
if (key_l == 1) {my.x += 30 * time;}
wait (1);
}
}
function
set_camera()
{
camera.pan += 90;
camera.tilt -= 15;
while ((karate_kid == null) || (karate_granny == null)) {wait (1);}
while (1)
{
camera.x = (karate_kid.x + karate_granny.x) / 2;
camera.y = min(karate_kid.y, karate_granny.y) - vec_dist (karate_kid.x,
karate_granny.x) - 400;
camera.z = 200;
wait (1);
}
}
F:
Ich würde gerne mehrere Level laden indem ich level-strings benutze,
die zur Laufzeit festgelegt werden. Ist dies möglich?
A:
Sicher. Dieser Code sollte funktionieren:
string
office_wmb = <office.wmb>;
string
test_str;
//
the lines below should go in main
str_cpy
(test_str, office_wmb);
level_load(test_str);
F:
Wie kann ich meine flags und skills sichern, bevor ich ein Levelwechsel
ausführe?
A:
Schreibe me = null;
in jede Aktion oder Funktion und sie wird nach dem Levelwechsel weiterlaufen.
F:
Packt der Filepacker alles in eine Datei, oder kann man mehrere Dateien
erstellen?
A:
Man kann mehrere resource files erstellen; Erstelle eine Wdl-Datei
und verwende bind <resource_name.extension>;
für alle Entities die in der Wrs-Datei enthalten sein sollen . Öffne
Wed, klicke auf File - New und dann File - Map properties. Wähle deine
eben erstellte Wdl-Datei aus und “resource“ das Projekt.
F:
Warum und wie soll ich trigger_range und event_trigger verwenden?
A:
Event_trigger wird starten, wenn 2 Objekte sich einander nähern ;
trigger_range legt den Abstand fest, wann der event ausgelöst werden
soll. Hier ist ein Beispiel:
function alarm();
action
trigger_me
{
my.enable_trigger = on;
my.trigger_range = 300;
my.event = alarm;
}
function
alarm()
{
if (event_type == event_trigger)
{
beep;
}
}