iOS: Android-Design-Parität (Menü, Just Play, Level Complete, Tutorial) - #8
Merged
Merged
Conversation
- Remove stray print(difference) in LevelModeGameScene.stopCounter - Rename misleading "SETTINGS" menu button to "TUTORIAL" (it opens the tutorial scene; no settings scene exists on iOS) - Add CLAUDE.md referencing AGENTS.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- ANDROID_DESIGN_PARITY_PLAN.md: per-screen gap analysis (live-captured via idb) with prioritized tasks toward Android design parity - AGENTS.md: idb tap/swipe/screenshot workflow, menu tap coordinates, setup notes (Python 3.12), corrected simulator name in build commands Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Switch all remaining warm-brown backgrounds to black to match Android: base GameScene, LevelModeScoreScene, TutorialScene, JustPlay score/lost - JustPlayGameScene: override addStaticLabels/addDynamicLabels for the Android HUD layout (Min. Moves / Current Moves / Left Time as label + large number) instead of the old inline "Optimum:/Moves:/N. Level" - Reposition JustPlay game buttons (restart bottom-right, minimal back top-left) so they no longer overlap the HUD labels Verified via idb: Just Play game + game-over and Tutorial now render on black with the correct HUD; 19 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Backgrounds + Just Play HUD checked off (verified via idb) - Clarify that the empty space below the game field matches Android (FIELD_SART_FROM_TOP=0.2); GameFieldNode intentionally left unchanged - Note IPadProportionSet is an empty subclass of IPhone6Proportionset Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Level Complete (LevelModeScoreScene): - Title "N. Level Complete" (was "Level N Complete") - Subtitle "Moves for 3 Stars" (was "3-star target") - Next button uses a play triangle (was chevron) Just Play Game Over (JustPlayLostScene): - Score/Level shown as colored bars (blue Score, yellow Level) matching Android, replacing the plain Score/Reached Level/Highscore text - Added a "SHARE SCORE" button; buttons now back / restart / share - New ButtonTextureFactory.makeCircleTextButtonTexture for the text circle Verified via idb: Just Play game-over matches Android (black, colored bars, three buttons); 19 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Import Android tutorial artwork (first/second screen A+B halves and Let's Go) into Assets.xcassets/tutorial - Rewrite TutorialScene to show the two visual screens (grid + colored GREEN/RED/BLUE instructions), tap to advance, then Let's Go -> the interactive tutorial level, matching the Android flow - Replaces the old text-only pages; runs on black Verified via idb: both tutorial screens, Let's Go, and the transition into the interactive level render correctly; 19 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Import Android ShareThis + Twitter bird artwork into Assets.xcassets/menu - StartMenuScene uses these images instead of SF-symbol textures (paper plane -> classic Twitter bird; share glyph now pixel-matches) - Remove now-unused ButtonTextureFactory.makeSocialButtonTexture Verified via idb: menu social icons match Android; 19 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ntry deferred per user Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a255e5e. Configure here.
The level-grid redesign draws the button frame as SKShapeNode children, but LevelButtonArea.tabOn only resolved SKLabelNode/SKSpriteNode hits to their parent button. Taps landing on the frame stroke stayed on the SKShapeNode and were ignored. Walk up the parent chain to the enclosing LevelSelectButton instead, so any child node type resolves correctly. Reported by Cursor Bugbot on PR #8. Verified via idb: tapping the frame border now opens the level; 19 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Ziel
iOS an das aktuelle Android-Design angleichen (Vorlagen:
sopa-android/pr/dev-screenshots/).Alle vorhandenen Screens wurden live im Simulator (iPhone 17 Pro, iOS 26.5, via idb) gegen die
Android-Referenz verglichen und angepasst.
Änderungen pro Screen
Grundlegende Fixes
GameScene, Level Complete, JustPlay Score/Lost, Tutorial).printinLevelModeGameSceneentfernt.makeSocialButtonTextureentfernt.ButtonTextureFactory.makeCircleTextButtonTexturefür den „SHARE SCORE"-Button.Bewusst zurückgestellt (Absprache)
Doku
ANDROID_DESIGN_PARITY_PLAN.md: vollständige Screen-für-Screen-Gap-Analyse + Status.AGENTS.md: idb-Workflow (Tap/Swipe/Screenshot) zur visuellen Verifikation dokumentiert.CLAUDE.md: Verweis aufAGENTS.md.Verifikation
xcodebuild ... clean build test→ BUILD SUCCEEDED, 19/19 Tests grün.Hinweis: Enthält zwei ältere
WIP:-Commits vom Vorstand des Branches — beim Merge ggf. Squash verwenden.🤖 Generated with Claude Code
Note
Medium Risk
Large UI-only refactor across many scenes and assets; gameplay logic is mostly untouched, but layout regressions on device sizes and share/external URL flows deserve a quick smoke test.
Overview
This PR brings the iOS SpriteKit UI in line with the current Android look: black backgrounds, Impact-style HUD copy, neon menu styling, and updated artwork across the main flows.
Theme & structure: Default
GameScenebackgrounds move from warm brown to black. Menu, credits, tutorial, and level-select scenes are split out of the monolithicLevelChoiceScene.swiftinto dedicated files, with sharedSopaTheme,ButtonTextureFactory, andLabelSizinghelpers wired into the Xcode project.Screens: Start menu uses neon text buttons (LEVEL MODE / JUST PLAY / TUTORIAL / CREDITS), Android ShareThis and Twitter assets, plus share/open-URL actions. Level choice gets a black background, page arrows, and neon-framed level buttons with improved tap hit-testing. Level mode & Just Play override HUD layout (Min./Current Moves, Left Time, repositioned back/restart). Level complete updates wording and uses a play icon for next level. Just Play game over shows blue/yellow stat bars and a SHARE SCORE button via
UIActivityViewController. Tutorial is rebuilt as a two-step Android artwork flow that auto-continues into the interactive tutorial level.Assets & docs: Tile/border catalog entries point at correct PNGs; tutorial and menu image sets are added.
ANDROID_DESIGN_PARITY_PLAN.mdandAGENTS.md(idb simulator workflow) document the parity work;CLAUDE.mdpoints atAGENTS.md.Reviewed by Cursor Bugbot for commit 0a0378f. Bugbot is set up for automated code reviews on this repo. Configure here.