Login
Newsletter
Werbung

Do, 22. Dezember 2011, 15:00

Grafikadventures entwickeln mit SLUDGE

Der erste eigene Raum

Jetzt beginnt die wirkliche Arbeit: Ein neuer Raum muss gestaltet werden. Das bevorzugte Dateiformat für Graphiken ist PNG, auch wenn das Verb Coin Example aus einer Zeit stammt, in der SLUDGE nur TGA verstand. Der Hintergrund wird in Zeile 3 in outside/room.slu ins Spiel eingebunden. Da sich die Endung im Dateinamen ändert, muss der Aufruf angepasst werden.

Beispiel für ein eigenes Hintergrundbild

Tobias Hansen

Beispiel für ein eigenes Hintergrundbild

Dann muss festgelegt werden, wo der Protagonist herumlaufen darf. Dazu kann man einfach den vorhandenen Fußbodenplan room.flo im Floor Maker öffnen, das neue Hintergrundbild laden und die Ecken des Bodenbereichs zu den gewünschten Positionen ziehen.

Floor Maker bei der Arbeit

Tobias Hansen

Floor Maker bei der Arbeit

Jetzt kann man im Spiel auf dem neuen Hintergrund herumlaufen. Allerdings ist der Protagonist viel größer als die Tür des Turmes, selbst wenn er direkt davor steht. Um einzustellen, wie groß Objekte an welcher Bildschirmposition sind, gibt es die Funktion setScale(), (Zeile 5 in outside/room.slu). Die richtigen Werte herauszubekommen ist etwas knifflig, Hilfe gibt die SLUDGE-Dokumentation. In diesem Beispiel wird folgendes verwendet:

setScale (370, 30);

Interaktion!

Diese Wolke sieht interessant aus. Und in Adventures möchte man sich interessante Dinge meist etwas genauer anschauen. outside/room.slu wird also wie folgt erweitert:

sub outsideRoom () {
    startMusic ('outside/music.xm', 0, 0);
    addOverlay ('outside/room.png', 0, 0);
    setFloor ('outside/room.flo');
    setScale (370, 30);
    setZBuffer ('outside/room.zbu');

addScreenRegion (cloud, 357, 65, 599, 161, 503, 380, NORTH);

addCharacter (ego, 420, 400, makeEgoAnim ());
    say (ego, "Moin, moin! Scheint ja noch zu kompilieren, der Code!");
}

objectType cloud ("Merkwuerdig aussehende Wolke") {
    event lookAt {
        say (ego, "Komisch, die Wolke sieht so aus, als ob sie eine Zigarette raucht.");
    }
    event talkTo {
        say (ego, "Haaallooo Wooolkeee!");
        pause(20);
        turnCharacter (ego, SOUTH);
        say (ego, "Na ja, so wie sie aussieht, scheint sie zu schlafen.");
    }
}

In Zeile 8 wurde ein Bildschirmbereich für das Objekt cloud hinzugefügt. Die ersten vier Zahlen markieren die Koordinaten von zwei Ecken eines Rechtecks, das den Bereich definiert. Die anderen Zahlen geben an, wo der Protagonist hinlaufen soll, wenn mit der Wolke interagiert werden soll, und die letzte Angabe bestimmt, in welche Richtung er während der Interaktion guckt.

Die Koordinaten können ermittelt werden, indem das Hintergrundbild im Floor Maker geladen wird. Am unteren Rand des Floor Makers werden die Koordinaten des Mauszeigers angegeben.

Außerdem wurde das Objekt cloud erzeugt, mit je einer Aktion fürs Ansehen und Ansprechen.

Kommentare (Insgesamt: 10 || Alle anzeigen )
Re[2]: shooter adventure (neWell, Sa, 31. Dezember 2011)
Re[2]: Scriptsprache (Anonymous, Do, 29. Dezember 2011)
Re[3]: Scriptsprache (XMLler, So, 25. Dezember 2011)
Re[2]: Scriptsprache (Bolitho, Fr, 23. Dezember 2011)
Re[2]: Scriptsprache (Wanker, Do, 22. Dezember 2011)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung