Ergebnis 1 bis 5 von 5

Hybrid-Darstellung

  1. #1
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard AW: 2D Tile Game [Hobbyprojekt]

    Alles scheiße.

    Ich hab keinen Bock mich mit dem Graphic scheiß auseinanderzusetzen aber ein paar Vorschläge hab ich ja schon.
    1) Geb deinen states Namen. Bei 4 States kann man sich das gerade noch merken aber das werden noch viel mehr (zB. Karte wird gerade geladen, im Kampf, im Inventar, Spielstand speichern, ...)
    2) Einfach generell weniger Magic Values. ObjectProc_Prototype ist nicht gerade selbsterklärend.
    3) Es macht nicht so viel Sinn eine Funktion namens "XYZ_Protoype" zu schreiben. Du kannst doch einfach direkt zuweisen oder nicht?
    4) Ich hab mir mal die textboxes.js genauer angeguckt.
    4.1) Wofür ist dialogue_counter? Warum speicherst du nicht dadrin welcher Teil des momentanen Dialoges gerade ausgegeben werden soll? Du musst zugeben dass dialogue[dialogue_counter][0] schon offensichtlicher ist.
    4.2) Was machst du denn wenn du mal mehr als einen Dialog hast? Du musst ja diese Fälle betrachten:
    a) Im momentanen Dialog noch nicht fertig -> Ausgeben und nächste Zeilen finden
    b) Mit momentanen Dialog fertig -> nächsten finden
    c) Am Anfang ersten Dialog setzen
    Momentan ersetzt du einfach die dialogue variable (also würd ich sie currentDialogue nennen) aber wo speicherst du denn alle Dialoge?

    Ich würde es zu einer Klasse machen, z.B. so
    Code:
    /**  * Dialogue class
      * \param speaker Who speaks
      * \param text Array of tuple(FirstLine, SecondLine)
      */
    var Dialogue = function (speaker, text) {
    	this.speaker = speaker;
    	this.text = text;
    	this.currentText = 0;
    };
    
    
    /**
      * Returns the current line of text and gets the next line
      * \return false if there is no more text or an array with the keys "speaker" and "text"
      */
    Dialogue.prototype.next = function() {
    	if(this.currentText >= this.text.length)
    		return false;
    	
    	var t = this.text[this.currentText];
    	this.currentText++;
    	
    	return {speaker: this.speaker, text: t};
    }
    
    
    var currentDialogue = new Dialogue('Alice', [['Zeile 1', 'Zeile 2'], ['1', 'aaaaa']]);
    Und benutzt würde es dann iwie so:
    Code:
    /*
    This File is Processing Keyboard Inputs
    */
    
    
    Cygine.ProcKeys = function(evt)
    {	
    	// If the engine isn't running no key does anything	
    	if(Cygine.state < 3)
    		return;
    	
    	// Action key?
    	if(evt.key === Cygine.KeyLayout.resume || evt.key === Cygine.KeyLayout.cancel) {
    		var d = currentDialogue.next();
    		if(d === false) {
    			currentDialogue = new Dialogue('Game', [['Fehler', 'An dieser Stelle gibt es keinen Dialog']]);
    			d = currentDialogue.next();
    		}
    		
    		// fixme: Display dialogue here
    		alert(d.speaker + ' says ' + d.text);
    	} 
    	// Movement with arrow keys?
    	else if(evt.key >= 37 && evt.key <= 40) {
    		// if next to NPC 
    		// 	currentDialogue = new Dialogue('NPC', [['Hey', 'bla bla bla']]);
    	}
    }

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Cystasy (05.12.2015)

Ähnliche Themen

  1. Mein erstes Game - Dice Game
    Von Th3_Cr4xX im Forum .NET Sprachen - Techniken
    Antworten: 38
    Letzter Beitrag: 27.06.2010, 12:30
  2. ABC-Game
    Von Th3_Cr4xX im Forum Funny Shit
    Antworten: 14
    Letzter Beitrag: 06.06.2010, 20:50
  3. NRG MT2 Game Oo
    Von Spongshga im Forum Games
    Antworten: 3
    Letzter Beitrag: 02.04.2010, 05:46
  4. Game
    Von simon1410 im Forum Games
    Antworten: 3
    Letzter Beitrag: 20.02.2009, 15:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •