F:
Ich benutze die cutcam.wdl aus Aum6, aber würde mich gern umschauen
können, während die Kamera dem Pfad folgt. Können Sie
mir helfen?
A: Hier gibt es
die modifizierte cutcam.wdl.
F: Ich
verwende den Bewegungscode aus der FAQ von Aum37. Er funktioniert gut, aber
ich würde gern die Kamera drehen, wenn die Maus nach links oder rechts
bewegt wird. Können Sie mir helfen?
A: Klicken Sie hier um die
geänderte Version zu erhalten.
F:
In Aum6 gibt es ein Demoskript für ein Auto. Wie kann ich den Schadenscode
entfernen, um es unverwundbar zu machen?
A: Kommentieren Sie
diese Zeile aus:
action
my_car
{
...............
// my.event
= increase_damage; // comment this line
...............
}
F:
Ich habe mit der Arbeit an einem Spiel begonnen. Wenn der Spieler das
Level wechselt, möchte ich eine Zwischensequenz abspielen, dann
eine Sounddatei, ein zweites Level laden und dann eine weitere Sounddatei
abspielen. Wie geht das?
A: Mit diesem Code:
sound
level1_wav = <level1.wav>;
sound level2_wav = <level2.wav>;
string
level2_wmb = <level2.wmb>;
action level_12 // attach this action to the entity that changes from level1
to level2
{
var shandle;
while (vec_dist (my.x, player.x) > 50) {wait (1);} // wait until
the player has come close enough
shandle = media_play ("cutscene1.avi", null, 50); //
now play the cut scene movie
while (media_playing(shandle) != null) {wait (1);} // wait until
it is finished
shandle = snd_play (level1_wav, 50, 0); // start playing the first
wave file
while (snd_playing(shandle) != null) {wait (1);} // wait until
the wave is played
my = null; // keep the function running even after level_load
level_load (level2_wmb); // load the second level
wait (3); // wait until the level is loaded
snd_play (level2_wav, 50, 0); // now play the new sound
}
F:
Wie kann ich dem Spieler in der Egoperspektive ohne eine “Entity” Definition
eine Waffe geben?
A: Fügen Sie den Code am Ende
Ihres Skriptes ein. Die Methode funktioniert für die Egoperspektive
ebenso wie für die Außenansicht.
string gun_mdl = <gun.mdl>;
function move_weapon();
starter player_gets_weapon()
{
while (player == null) {wait (1);}
ent_create (gun_mdl, player.x, move_weapon);
}
function move_weapon()
{
my.passable = on;
while (1)
{
my.x = player.x + 5 * cos(player.pan) + 10 *
sin(player.pan); // 5 quants in front of the player
my.y = player.y + 5 * sin(player.pan) - 10 *
cos(player.pan); // and 10 quants sideway (to the right)
my.z = player.z + 40; // the height of the gun
is set 40 quants above player's origin
my.pan = player.pan;
my.tilt = player.tilt;
wait (1);
}
}
F:
Wenn ich zwischen den Beinen des Gegners hindurchschieße, treffe
ich ihn trotzdem. Können Sie mir helfen?
A: Die A6 Engine erlaubt
es, das “polygon” Flag für die Feinde zu
setzen. Benutzen Sie die Physikengine für die Pistolenkugeln
und Sie erhalten eine polygongenaue Kollisionsabfrage.
F: Wie
kann ich einen Splashscreen einbauen? Der Spieler soll mit der Leertaste
fortfahren können.
A: Benutzen Sie diesen Code:
bmap splash_pcx = <splash.pcx>;
panel splash_pan
{
bmap = splash_pcx;
pos_x = 0;
pos_y = 0;
layer = 1;
flags = overlay, refresh;
}
starter show_splash()
{
freeze_mode = 1; // stop all the entities in the level
splash_pan.visible = on; // show the splash screen
while (key_space == 0) {wait (1);} // wait until the "space" key
is pressed
while (key_space == 1) {wait (1);} // wait until the "space" key
is released
splash_pan.visible = off;
freeze_mode = 0; // resume the gameplay
}
F:
Ich frage mich, wie ich mit A6.3 mehrdimensionale Arrays nutzen kann.
A: Dieses Feature ist noch in
der Experimentierphase und in Version 6.3 noch nicht eingebaut.
F: Wie
kann ich einen Teil eines Hauses transparent machen, um Soldaten darin zu
sehen?
A: Bauen Sie das Dach als separate
Map Entity und geben Sie ihr die Action transparent_roof. Wenn Sie
die Maus darüber bewegen, wir das Dach transparent.
function set_transparency()
{
if (event_type == event_touch)
{
my.alpha = 60; // show the soldiers
}
if (event_type == event_release)
{
my.alpha = 100;
}
}
action transparent_roof
{
my.transparent = on;
my.alpha = 100;
my.enable_touch = on;
my.enable_release = on;
my.event = set_transparency;
}