F:
Ich habe einige Lampen in meinem Level, von denen ich möchte, dass
sie rot aussehen und rotes Licht ausstrahlen. Wie erreiche ich realistisches
Licht auf den Models?
A:
Geben Sie Ihren Lampen folgenden Code:
action
light_bulb
{
my.light = on;
while (1)
{
my.lightrange = 200 + random(20); // make it flicker a little
my.lightred = 250;
my.lightgreen = 50;
my.lightblue = 0;
wait (1);
}
}
F:
Wie kann ich es erreichen, dass ich ein Level weiterkomme, wenn ich in
ein Loch falle?
A:
Plazieren Sie eine WMB Entity im Loch und geben Sie ihm die folgende Action:
string level2_wmb = <office2.wmb>;
action
change_level
{
while (player == null) {wait (1);}
while (vec_dist (my.x, player.x) > 100) {wait (1);}
level_load(level2_wmb);
}
F:
Ist es möglich, durch Tastendruck einen Splash Screen zu überspringen?
A:
Sehen Sie sich den Code hier an (gelb = neuer Code):
var counter = 0;
function
main()
{
.......................
// now load the level
level_load(office_wmb);
while (counter < 100)
{
counter += 1 * time; // visible for about 7 seconds
if (key_space == 1)
{
break; // get out of the loop
}
wait (1);
}
splashscreen.visible = off;
........................
}
F:
Das Schwertkampfskript in Aum12 benutzt vec_for_vertex um den Vertex für
das Schwert des Spielers zu bestimmen. Ich möchte diese Methode auch
für das Schwert des Gegners benutzen. Woher weiß vec_for_vertex,
auf welchen Vertex es verweist: Spieler oder Gegner?
A:
Vec_for_vertex hat 3 Paremeter: Vektor, Entity, Zahl; "entity" kann ein
Zeiger auf jede Entity sein, oder Sie verwenden einfach den vordefinierten
Zeiger "my". In diesem Fall erhält vec_for_vertex natürlich die
Vertex Koordinaten der "my" Entity, also derjenigen Entity, zu der die
jeweilige Action gehört.
F:
Ich habe einen Level gemacht und einige Warlocks hineingestellt. Wenn ich
Ihre Gesundheit ändere und das Level starte, drehen Sie sich um und
rennen gegen die Wand. Ich benutze actor_walk_fight.
A:
Die Actors, die diese Action benutzen haben Anweisung, davonzurennen, wenn
ihre Gesundheit 30 Punkte oder weniger beträgt. Erhöhen Sie den
Startwert oder ändern Sie den Wert für MY._I_COWARDICE in der
war.wdl.
F:
Gibt es keine Möglichkeit, Map Entities und Sprites zu mischen, um
ein Prefab zu erstellen?
A:
Nein, aber Sie können die Sprites mit ent_create zur Laufzeit einfügen,
wenn Sie diesen Befehl in der Action benutzen, die zu der Entity gehört.
F:
Gibt es eine Möglichkeit, die Skill Zahlen in WED durch alphanumerische
Zeichen zu ersetzen?
A:
Schreiben Sie den Code unten an das Ende Ihrer office.wdl, plazieren Sie
eine Entity im Wed und geben Sie ihr die Action light_source.
define
red skill1;
define
green skill2;
define
blue skill3;
define
range skill4;
//
uses red, green, blue, range
action
light_source
{
while (1)
{
my.lightred = my.red;
my.lightgreen = my.green;
my.lightblue = my.blue;
my.lightrange = my.range;
wait(1);
}
}
Sie werden folgendes im Wed sehen:
F:
Wie kann ich die Frames einer Entity mit Hilfe der "+" und "-" Tasten ändern?
A:
Probieren Sie diesen Code:
action
change_frames
{
my.frame = 1;
while (1)
{
if (key_sz == 1 && my.frame >= 1)
{
my.frame -= 1;
while (key_sz == 1) {wait (1);}
}
if (key_equals == 1)
{
my.frame += 1;
while (key_equals == 1) {wait (1);}
}
wait (1);
}
}