leicht gemacht: rundes Bild
Hallo Zusammen,
in meiner App Gifts Planner sind die Bilder der Kontakte rund. In der heutigen leicht gemacht Serie zeige ich euch wie das geht – denn die Bilder liegen im Original sehr wohl quadratisch vor.
wichtige Datenstrukturen einfach erklärt
Hallo Zusammen,
in meiner App Gifts Planner sind die Bilder der Kontakte rund. In der heutigen leicht gemacht Serie zeige ich euch wie das geht – denn die Bilder liegen im Original sehr wohl quadratisch vor.
Hallo Zusammen,
in dem Tutorial zur Kontakte App hatten wir ein Array mit darin enthaltenen Namen als Datengrundlage. Dieses contactsArray hatte den großen Vorteil, dass es bereits alphabetisch sortiert war. Da das nicht immer der Fall sein muss, zeige ich heute kurz wie man ein Array sortieren kann.
Hallo Zusammen, in NSUserDefaults werden Einstellung des Nutzers für die App gespeichert – zum Beispiel, ob die App Sounds abspielen soll. Die Werte in NSUserDefaults werden persistiert und sind bei jedem Nachfolgenden Start wieder verfügbar. Als Speicherort für Spielständer ohne Ähnliches sollte es dennoch nicht genutzt werden. Gelegentlich ist es sinnvoll für NSUserDefaults Startwerte zu Read more about leicht gemacht: NSUserDefaults Startwerte festlegen[…]
Hallo Zusammen,
neben den vielen Stärken von cocos2d, gibt es natürlich auch Nachteile wenn ein solches Framework eingesetzt wird. So gibt es zum Beispiel kein cocos2d Pendant für ein UITextField. Dies macht es notwendig ein UITextfield direkt einzusetzen.
Ich zeige wie es geht.
Hallo Zusammen,
heute möchte ich euch zwei Methoden präsentieren mit welchen man nach Texten suchen kann.
-(BOOL)search:(NSString*)searchString inFullText:(NSString*)fullText{ if(searchString.length > 0 && fullText.length > 0 ){ NSRange isInRange = [fullText rangeOfString:searchString options:NSCaseInsensitiveSearch]; if(isInRange.location != NSNotFound) { return YES; }else{ return NO; } }else{ NSLog(@"empty strings"); return NO; } }
Hallo Zusammmen,
ich möchte ein wenig Quellcode teilen, mit welchem man abfragen kann auf welchem Gerät die App gerade läuft. Insbesondere für universelle Apps benötigt man aus meiner Sicht solche Methoden. Ich definiere mir zu diesem Zweck gerne Makros vor @implementation.
Hallo Zusammen,
bei fast allen bisher von mir programmierten Apps war es notwendig Daten aus einer Property List (auch plist genannt) auszulesen. Eine pList kann über File ➸ New ➸ File… ➸ Ressource ➸ Property List dem Projekt hinzugefügt und direkt in XCode bearbeitet werden. Hier mal ein Beispiel:
In diesem Beitrag erkläre ich wofür man eine pList benötigt und wie man mit ihr arbeitet.
Hallo Zusammen,
fast jede App kommt mal zu dem Punkt an dem Daten gespeichert werden müssen. Sei es nun etwas triviales wir Highscores, komplette Spielstände oder Einstellungen der App (Sprache, Ton an/aus usw.)
Ein einfacher Weg dies zu tun ist die Benutzung von Singletons, welche ich hier schonmal vorgestellt habe, in Verbindung mit den NSUserDefaults. Wenn ihr noch kein Singleton Object habt, ist jetzt ein guter Zeitpunkt eins zu erstellen.
Hallo Zusammen,
es gibt viele Spiele und Anwendungen die einen Bezug zur Zeit benötigen. Dies kann zum Beispiel ein Timer sein der runter läuft, bis ein Gebäude wieder gebaut werden kann. Oder es wird gezählt wie lange der Spieler in einem Level am Leben bleibt. Manchmal soll auch zu einer bestimmten Zeit, also jeden Tag im 18Uhr, etwas in der App passieren. Für alle diese Anwendungsfälle werde ich in diesem Artikel Lösungsvarianten zeigen.
Der Vorteil eines Frameworks wie Cocos2d ist, dass viele Funktionen die eine App erst vollständig machen, bereits enthalten und einfach zu konfigurieren sind. So ist es mit Cocos2d zum Beispiel sehr einfach ein Menu zu erstellen.
Die geschieht mit Objekten der Klassen CCMenu und CCMenuItem. Das CCMenuItem stellt dabei einen Knopf dar, während das CCMenu die einzelnen Knöpfe zu einer logischen Einheit zusammenfasst.
//create Button CCMenuItem *startButton = [CCMenuItemImage itemFromNormalImage:@"start.png" selectedImage:@"start_pressed.png" target:self selector:@selector(startMethod)]; startButton.position = ccp(240,180);