| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 14
| Textadventure
Hallo Forum! Ich bin dabei ein kleines Textadventure - falls dieses Genre noch jemandem bekannt ist - zu basteln.Die Darstellung klappt mittlerweile bestens, daher habe ich jetzt in einem neuen Projekt angefangen, beispielhaft die generelle Steuerung zu scripten. Die funktioniert zwar im Prinzip, aber das Script erscheint mir noch unsinnvoll aufgebaut. Ich weiß nicht recht wie ich - möglichst übersichtlich im Codeumfang - die Objekte und Aktionen unterbringen soll. Wenn ich so weitermache wie jetzt, wird es doch schnell unübersichtlich. Code: var _input:String;
var _inputLOW:String;
var _raum:Number = 0;
inputbox.multiline = false;
inputbox.addEventListener (TextEvent.TEXT_INPUT, textInput);
function textInput (event:TextEvent):void {
switch (event.text) {
case "\r" :
case "\n" :
_input = inputbox.text; //Der Text wird durch ENTER an _input übergeben (danke Shin :) )
_inputLOW = _input.toLowerCase (); //zur einfacheren Verarbeitung
inputbox.text = ""; //damit die Inputbox für die nächste Eingabe wieder leer ist
inputcheck ();
}
}
function inputcheck ():void {
if (_inputLOW.indexOf("betracht") != -1) {
betrachten ();
}
else if (_inputLOW.indexOf("benutz") != -1) {
benutzen ();
}
};
function betrachten ():void {
if (_raum == 0) {
if (_inputLOW.indexOf("tür") != -1) {
trace("Die Tür ist schlicht und schwarz. Mit dem kleinen Knauf lässt sie sich öffnen.");
}
}
else if (_raum == 1) {
if (_inputLOW.indexOf("tür") != -1) {
trace("Die große Tür ist braun und hat vielen Verzierung. Die schon leicht angerostete Türklinke sollte sie öffnen.");
}
}
}
function benutzen ():void {
if (_raum == 0) {
if (_inputLOW.indexOf("tür") != -1) {
trace("Ich öffne die Tür. Auf gehts in den nächsten Raum.");
_raum++;
}
}
else if (_raum == 1) {
if (_inputLOW.indexOf("tür") != -1) {
trace("Ich drücke die Klinke runter, die Tür knarrt und schwingt auf. Ich schreite hindurch.");
_raum++;
}
}
} gruß mrnx Geändert von mrnx (15-09-2010 um 14:27 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
"Hardgecodede" Inhalte sind generell schlecht wartbar. Logik und Spielinhalt sollten im Idealfall völlig voneinander getrennt sein (womit ich mich dem Tip einer XML-Struktur anschließe, aber auch ein Array von Objekten würde dir schon weiterhelfen). Schau dir mal an was eine "State-Machine" ist und wie man diese sinnvoll aufbauen kann. Ein Adventure ist im Prinzip nichts anderes. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |