Beermat, die nicht ganz so ernst zu nehmende App

  • Beermat, die nicht ganz so ernst zu nehmende App

    Hi,

    bei einem netten, ausgiebigen und sehr feuchten Stammtisch kam die Idee zu dieser App. Interessanterweise waren tatsächlich viele Brauereien einverstanden, dass ich ihre Bierdeckel verwende. Von fast allen habe ich auf jeden Fall eine nette Antwort erhalten, auch wenn diese negativ ausfiel. Einzig die Dortmunder Aktien-Brauerei hat sich ziemlich daneben benommen, worauf ich jetzt aber nicht weiter eingehen möchte. Trotzdem trinke ich seitdem kein Bier mehr von deren Kette :)

    Beermat

    Großartige Besonderheiten technischer Art gibt es hier sicher nicht. Ich habe eine eigene Viewklasse erzeugt, welche mit bei TouchesBegan, Move und End sich die jeweiligen Punkte merkt und in DrawRect dann zeichnet. Weicht ein Punkt stark von einer Gerade ab, wird abgebrochen. So kann man nur "relativ" gerade Linien ziehen. Ist eine Linie gezogen wird ein Timer gestartet und wenn nicht innerhalb von 1s der nächste Strich begonnen wird, wird das Delegate über den einfachen Strich informiert. Wird ein zweiter Strich gezogen und dieser ist in einem "brauchbaren" Winkel zum ersten, wird dem Delegate ein Kreuz gemeldet.

    Interessant ist für den einen oder anderen Anfänger eventuell noch das Maskieren des selbsterstellten Deckels. Hier zeichne ich zuerst den Deckel in den GraficsContext um einen füllenden Hintergrund zu haben auch wenn das ausgewählte Bild kleiner ist als der Bierdeckel. Dann zeichne ich das ausgewählte Bild oben drüber und zum Schluß maskiere ich das mit einem Bild vom Deckel, wo der innere Teil transparent ist.

    Quellcode

    1. -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    2. {
    3. UIImage *image=[info objectForKey:@"UIImagePickerControllerOriginalImage"];
    4. if(image)
    5. {
    6. self.photoImage=image;
    7. if(UIGraphicsBeginImageContextWithOptions != NULL)
    8. UIGraphicsBeginImageContextWithOptions(imageView.frame.size, NO, 0.0);
    9. else
    10. UIGraphicsBeginImageContext(imageView.frame.size);
    11. UIImage *maskimage = [UIImage imageNamed:@"coaster_round.png"];
    12. if(type)
    13. maskimage = [UIImage imageNamed:@"coaster_rect.png"];
    14. [maskimage drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0];
    15. [photoImage drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height) blendMode:kCGBlendModeSourceIn alpha:1.0];
    16. maskimage = [UIImage imageNamed:@"mastercoaster_round_mask.png"];
    17. if(type)
    18. maskimage = [UIImage imageNamed:@"mastercoaster_rect_mask.png"];
    19. [maskimage drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height) blendMode:kCGBlendModeNormal alpha:1.0];
    20. UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    21. UIGraphicsEndImageContext();
    22. backgroundView.image=image;
    23. }
    24. [picker dismissModalViewControllerAnimated:YES];
    25. return;
    26. }
    Alles anzeigen


    Hier ein bisschen was zum spielen für euch

    P9RPT7HW4MYH
    WL9X3W39KAPX
    MM937L9KJ333
    THNX6Y9E97TR
    9X3J69M7TKRH
    WHNMA4ARP947
    M49M7A3E6MLH

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Thallius ()

  • Nunja, immerhin wird man (natürlich nicht ganz so ernsthaft) nach 3 Bier aufgefordert den Autoschlüssel abzugeben. Auch so, kommen hier und da ein paar Kommentare wenn man sich durchtrinkt :)

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • nussratte schrieb:

    finde ich sehr cool sowohl idee als auch umsetzung (wie lange warst du dabei?)

    ich würde es sehr schön wenn man die statistik zurücksetzen könnte.
    ansonsten sehr gelungen, ich hab übrigens code WHNMA4ARP947 benutzt


    Naja, reine Programmierarbeit waren vlt. 3 Feierabende. Am längsten hat es gedauert die ganzen Zusagen der Brauereien zu bekommen.
    Statistiken zurücksetzen geht ganz einfach: Lösch die App :)

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • 1.999.999 Käufer fehlen jetzt nur noch. ;)
    Auch wenn ich ganz kackfrech damit weniger die Biere sondern vielmehr die Cocktails zählen werde. ^^

    BTW: es ist offenbar kein Code mehr gültig und einige fühlten sich wohl nicht verpflichtet mitzuteilen, welcher Code eingelöst wurde. Menschen... :S
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lucas de Vil ()

  • Irgendwie nervt der Kassensound. ^^
    Ab welchem Update kann man den deaktivieren?
    Und ab welchem Update kann ich eigene Bierdeckel einbinden? +lach+
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Naja du kannst immerhin schon eigene Bierdeckel erstellen. Komplett eigene ist halt schwer da ich dann eine bilderkennung einbauen müsste um zu wissen wo die Striche hinkommen. Glaube den Aufwand lohnt nicht

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)