Adoro il Codex di OpenAI. Ho fatto questo mentre aspettavo l'arrivo di UberEats.
Codex ha realizzato anche l'animazione delle figure stilizzate. Ecco il prompt: Crea un'app nativa per macOS chiamata “Stickworld” utilizzando SwiftUI + SpriteKit (Swift Package, macOS 14+), con comandi eseguibili `swift build` e `swift run`. Aspetto dell'app: - Sfondo in stile quaderno bianco. - Linee blu orizzontali sottili e una linea rossa a margine sinistro. - Testo del titolo in alto a sinistra: “Stickworld”. - Nessun testo di sottotitolo/istruzione sotto il titolo. Gioco principale: - Clic sinistro nello spazio vuoto: genera una figura stilizzata. - Clic sinistro direttamente su una figura stilizzata: elimina quella figura. - Clic sinistro e trascina: disegna un oggetto a linea nera. - Al rilascio del mouse, se il tratto termina vicino al punto di partenza, chiudilo in un ciclo (trappola); altrimenti mantienilo come un muro aperto. - Gli oggetti disegnati diventano ostacoli fisici statici con cui le figure stilizzate collidono. - Clic destro e trascina: tratto di gomma. Se la gomma interseca qualsiasi parte di un oggetto disegnato (inclusi zigzag), elimina l'intero oggetto. Comportamento della figura stilizzata: - Renderizza figure stilizzate nere semplici con postura eretta (testa in alto, corpo verticale con leggero inclinamento). - Camminata autonoma su percorsi per lo più orizzontali, con solo lievi angoli su/giù. - Muoviti a una velocità di camminata (non correndo), con segmenti dritti discreti e occasionali cambi di direzione. - Rimani all'interno dei confini della scena. - Quando due figure collidono, attiva la reazione di combattimento: - Una esegue `punch_combo` - L'altra esegue `stagger` - Mostra un breve testo di impatto (ad es., POW/BAP/etc.) - Includi occasionalmente lo stato `idle_look`. Struttura di implementazione: - `Sources/StickworldApp.swift` (ingresso dell'app) - `Sources/ContentView.swift` (composizione SwiftUI) - `Sources/StickWarsScene.swift` (scena SpriteKit + stati delle figure + gestione input + logica ostacolo/gomma) - Il nome del prodotto/target in `Package.swift` dovrebbe essere `Stickworld`. Importante: - Non aggiungere comportamenti di fallback per funzionalità incerte a meno che tu non chieda prima il permesso.
468