Die Geschichte der Videospiele mal etwas anders dargestellt:
Video-Link: https://www.youtube.com/watch?v=sAzzbrFgcUw
Die Geschichte der Videospiele mal etwas anders dargestellt:
Baldur’s Gate, seiner Zeit das erste Spiel von Bioware, hat mittlerweile seine 14 Jahre auf dem Buckel. Schon seit einiger Zeit wird an einer Neuauflage des Spieles gearbeitet. Diese soll den Namen „Baldur’s Gate: Enhanced Edition“ tragen und am 30. November 2012 erscheinen. Ursprünglich war der 18. September 2012 als Starttermin angedacht, allerdings war man mit der Qualität nicht zufrieden, so das hier nachgebessert wird.
Neben Windows wird das Spiel für Mac OS X, Android (wird später veröffentlicht) und auch das iPad (iOS) erscheinen. Die mobilen Versionen kosten dabei $9.99, die Varianten für Mac OS X und Windows schlagen mit $19,99 zu Buche. Im Gegensatz zum Originalspiel, setzt die Neuauflage auf eine neue verbesserte Version der Infinity Engine und bietet auch neue Inhalte. Die offizielle Seite des Spieles ist unter http://www.baldursgate.com/ zu finden.
Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Baldurs_Gate#Neuauflage
Es gibt die einfache Art und die nicht ganz so einfache Art. So ist es zum Beispiel unter C# ziemlich einfach eine Bibliothek zu einem Projekt hinzuzufügen und diese anschließend zu benutzen. Also was liegt näher als das gleiche unter Objective C mittels Xcode zu versuchen.
Und dort merkt man dann das Objective C ein Superset von C ist. Es ist leider nicht ganz so einfach wie man es sich wünscht. Aber fangen wir von vorne an. Gegeben seien zwei Projekte:
Die Bibliothek „LibCore“ soll dabei dem Projekt „Taschenrechner“ hinzugefügt werden, damit man dieses die entsprechenden Funktionen nutzen kann. Unter Objective C gibt es Frameworks und Bibliotheken. Frameworks können auf den iOS Geräten nicht benutzt werden, damit bleiben nur noch statische Bibliotheken.
Im ersten Schritt müssen im Projekt die Suchpfade definiert werden. Dazu gehen wir in die Projekteinstellungen in den Punkt „Build Settings“ und suchen dort nach „Header“. Die Suche wird dann den Punkt „Header Search Paths“ finden. Dort tragen wir den Pfad zur entsprechenden Bibliothek ein.
Nun werden Headerdateien welche mittels:
#import "LibCore.h";
eingebunden werden vom Compiler gefunden. Beim Linker kommt es allerdings noch zu Fehlern. Deshalb ziehen wir das Projekt (die „LibCore.xcodeprj“) auf unserer Taschenrechnerprojekt. Dadurch ist dieses Projekt nun ein „Unterprojekt“ von Taschenrechner. In den Projekteinstellungen suchen wir nun den Tab „Build Phases“ auf „Link Binary With Libraries“ und fügen dort die „LibCore.a“ hinzu.
Danach sollte das Projekt mit der Bibliothek ohne Probleme kompilieren.
Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Xcode
http://de.wikipedia.org/wiki/Objective_C
Bei der Entwicklung möchte manchmal mathematische Ausdrücke wie folgende lösen:
5*sin(3.4)/2+1234
Dabei möchte man diese Ausdrücke nicht während der Compilezeit lösen, sondern zur Laufzeit. Hier bietet sich ein Matheparser an. Ein solcher für Objective C ist „DDMathParser“ welcher unter https://github.com/davedelong/DDMathParser zu finden ist. Der Parser steht dabei unter der MIT-Lizenz und kann dabei mit einer Reihe von Operatoren, Ausdrücken und Funktionen umgehen, was man sich auch in der ausführlichen Dokumentation ansehen kann.
Mit dem JavaScript Framework MooTools ist es möglich Klassen in JavaScript zu schreiben. In diesen Klassen kann man auch private Methoden definieren. Dazu hängt man ein „.protect()“ an die Methoden an, welche privat sein sollen. Aussehen könnte das ganze dann z.B. so:
var MessageIn = new Class({
id: 0,
parts: [],
//Konstruktor
initialize: function(message) {
this.parts = this.splitCommand(message);
this.id=parseInt(this.parts[0], 16);
this.parts.splice(0, 1); //Erstes Element entfernen
},
//Methoden
getPart: function(index) {
return this.parts[index];
},
//Private Methoden
splitCommand: function(command) {
ret=new Array();
...
return ret;
}.protect()
});
Dadurch kann die Methode „splitCommand“ nur noch durch die Klasse selbst und nicht mehr von außen aufgerufen werden.
Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/MooTools