Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-09-2010, 14:20   #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++;
			}
	}
}
Hat jemand ein paar Tips für mich?

gruß mrnx

Geändert von mrnx (15-09-2010 um 14:27 Uhr)
mrnx ist offline   Mit Zitat antworten
Alt 15-09-2010, 15:31   #2 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Es wäre sinnvoll, den Ablauf und die Texte des Adventures z.B. als XML abzulegen. Dann wird dein Script höchstwahrscheinlich sehr viel übersichtlicher.
laxersaz ist offline   Mit Zitat antworten
Alt 17-09-2010, 15:33   #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.
joeydee ist offline   Mit Zitat antworten
Alt 18-09-2010, 21:09   #4 (permalink)
Neuer User
 
Registriert seit: Aug 2010
Beiträge: 14
Danke, für die Antworten!
Die XML-Struktur ist ein guter Tip, aber besonders die "State-Machine" als Grundstruktur habe ich gesucht. Danke joeydee.
mrnx ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele