Ich liebe OpenAIs Codex. Ich habe das gemacht, während ich auf die Ankunft von UberEats gewartet habe.
Codex hat auch die Animation der Strichfiguren gemacht. Hier ist der Prompt: Erstelle eine native macOS-App namens „Stickworld“ mit SwiftUI + SpriteKit (Swift-Paket, macOS 14+), mit ausführbaren Befehlen `swift build` und `swift run`. App-Aussehen: - Weißer Notizbuch-Hintergrund. - Subtile horizontale blaue Linien und eine rote linke Randlinie. - Titeltext oben links: „Stickworld“. - Kein Untertitel/Instruktionstext unter dem Titel. Kernspielmechanik: - Linksklick auf leeren Raum: eine Strichfigur spawnen. - Linksklick direkt auf eine Strichfigur: diese Figur löschen. - Linksklick und ziehen: ein schwarzes Linienobjekt zeichnen. - Bei Mausfreigabe, wenn der Strich nahe dem Startpunkt endet, schließe ihn zu einer Schleife (Falle); andernfalls behalte ihn als offene Wand. - Gezeichnete Objekte werden statische physikalische Hindernisse, mit denen Strichfiguren kollidieren. - Rechtsklick und ziehen: Radierstrich. Wenn der Radierer einen Teil eines gezeichneten Objekts (einschließlich Zickzacklinien) schneidet, lösche das gesamte Objekt. Verhalten der Strichfiguren: - Render einfache schwarze Strichfiguren mit aufrechter Haltung (Kopf oben, Körper vertikal mit nur leichtem Neigen). - Autonome Bewegung in überwiegend horizontalen Bahnen, mit nur leichten Auf-/Ab-Winkeln. - Bewege dich mit einer Gehgeschwindigkeit (nicht rennend), mit diskreten geraden Segmenten und gelegentlichen Richtungsänderungen. - Bleibe innerhalb der Szenengrenzen. - Wenn zwei Figuren kollidieren, löse eine Kampfreaktion aus: - Eine macht `punch_combo` - Die andere macht `stagger` - Zeige kurzen Impact-Text (z.B. POW/BAP/etc.) - Füge gelegentlich den Zustand `idle_look` hinzu. Implementierungsstruktur: - `Sources/StickworldApp.swift` (App-Einstieg) - `Sources/ContentView.swift` (SwiftUI-Zusammensetzung) - `Sources/StickWarsScene.swift` (SpriteKit-Szene + Figurenzustände + Eingabeverarbeitung + Hindernis-/Radierlogik) - Der Produkt-/Zielname in `Package.swift` sollte `Stickworld` sein. Wichtig: - Füge kein Fallback-Verhalten für unsichere Funktionen hinzu, es sei denn, du fragst zuerst um Erlaubnis.
479