diff --git a/Data/Global/globalStore.swift b/Data/Global/globalStore.swift index 73cfc47..75c17f1 100644 --- a/Data/Global/globalStore.swift +++ b/Data/Global/globalStore.swift @@ -9,6 +9,7 @@ import Combine import SwiftUI enum EnumScene: Int, CaseIterable { +// case intro case opeaning case sequence1 case sequence2 @@ -121,6 +122,9 @@ class GlobalStore: ObservableObject { var isQuizSequence = false + @Published + var paddleCount = 0 + func resetUI() { turnOffIsPopupActive() turnOffIsFaceViewActive() diff --git a/Data/ScriptBox/ScriptData.swift b/Data/ScriptBox/ScriptData.swift index 2a09030..4a8148a 100644 --- a/Data/ScriptBox/ScriptData.swift +++ b/Data/ScriptBox/ScriptData.swift @@ -57,9 +57,6 @@ let SEQUENCE_OPENING_SCRIPTS: [Script] = [ ] let SEQUENCE_ONE_SCRIPTS: [Script] = [ - ([EnumSpeaker.system], - "..." - ), ([EnumSpeaker.system], "걷는 중..." ), @@ -93,9 +90,6 @@ let SEQUENCE_ONE_SCRIPTS: [Script] = [ ] let SEQUENCE_TWO_SCRIPTS: [Script] = [ - ([EnumSpeaker.system], - " " - ), ([EnumSpeaker.system], "걷는 중..." ), diff --git a/Resources/Assets.xcassets/Quiz_var/Quiz_1.imageset/Quiz_1.png b/Resources/Assets.xcassets/Quiz_var/Quiz_1.imageset/Quiz_1.png index 8501d5f..da41a2e 100644 Binary files a/Resources/Assets.xcassets/Quiz_var/Quiz_1.imageset/Quiz_1.png and b/Resources/Assets.xcassets/Quiz_var/Quiz_1.imageset/Quiz_1.png differ diff --git a/Resources/Assets.xcassets/Quiz_var/Quiz_2.imageset/Quiz_2.png b/Resources/Assets.xcassets/Quiz_var/Quiz_2.imageset/Quiz_2.png index 515c910..19a002b 100644 Binary files a/Resources/Assets.xcassets/Quiz_var/Quiz_2.imageset/Quiz_2.png and b/Resources/Assets.xcassets/Quiz_var/Quiz_2.imageset/Quiz_2.png differ diff --git a/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Contents.json b/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Contents.json deleted file mode 100644 index 3c10be7..0000000 --- a/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Quiz_Answer.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Quiz_Answer.png b/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Quiz_Answer.png deleted file mode 100644 index 91bf8e7..0000000 Binary files a/Resources/Assets.xcassets/Quiz_var/Quiz_Answer.imageset/Quiz_Answer.png and /dev/null differ diff --git a/Resources/SFX/sfx_sounds_interaction1.wav b/Resources/SFX/sfx_sounds_interaction1.wav new file mode 100644 index 0000000..a3179af Binary files /dev/null and b/Resources/SFX/sfx_sounds_interaction1.wav differ diff --git a/Utils/Scene/handleSequenceOne.swift b/Utils/Scene/handleSequenceOne.swift index a47f2ed..9d798aa 100644 --- a/Utils/Scene/handleSequenceOne.swift +++ b/Utils/Scene/handleSequenceOne.swift @@ -13,14 +13,14 @@ func handleSequenceOne(globalStore: GlobalStore){ switch scriptCount { case 0: globalStore.resetUI() - case 3: + case 2: globalStore.updateCurrentDetailImage(detailImage: .Water) globalStore.turnOnIsPopupActive() - case 4: + case 3: globalStore.turnOnIsFaceViewActive() - case 5: + case 4: globalStore.turnOffIsPopupActive() - case 6: + case 5: globalStore.turnOffIsFaceViewActive() globalStore.turnOnIsQuizSequence() globalStore.turnOffIsTapAble() diff --git a/Utils/Scene/handleSequenceThree.swift b/Utils/Scene/handleSequenceThree.swift index 8b6ac76..ab8d8ef 100644 --- a/Utils/Scene/handleSequenceThree.swift +++ b/Utils/Scene/handleSequenceThree.swift @@ -23,10 +23,10 @@ func handleSequenceThree(globalStore: GlobalStore){ print("배가 만들어지는 이벤트 진행") case 8: globalStore.toggleIsFaceViewActive() // true - case 14: - globalStore.toggleIsFaceViewActive() // false - case 16: - globalStore.toggleIsFaceViewActive() // true +// case 14: +//// globalStore.toggleIsFaceViewActive() // false +// case 16: +//// globalStore.toggleIsFaceViewActive() // true // ... default: print("sequence one is Ready") diff --git a/Utils/Scene/handleSequenceTwo.swift b/Utils/Scene/handleSequenceTwo.swift index 992f630..46b6222 100644 --- a/Utils/Scene/handleSequenceTwo.swift +++ b/Utils/Scene/handleSequenceTwo.swift @@ -11,15 +11,19 @@ func handleSequenceTwo(globalStore: GlobalStore){ // write here your logic! let scriptCount = globalStore.scriptCount switch scriptCount { -//3에 자동문 버튼 사진 나왔다가 4에서 사라져야 함 - case 3: - globalStore.resetUI() - globalStore.toggleIsFaceViewActive() // false - globalStore.updateCurrentDetailImage(detailImage: .Door) - globalStore.toggleIsPopupActive() // true - case 5 : - globalStore.toggleIsPopupActive() -// ... + //3에 자동문 버튼 사진 나왔다가 4에서 사라져야 함 + case 2: + globalStore.resetUI() + globalStore.toggleIsFaceViewActive() // false + globalStore.updateCurrentDetailImage(detailImage: .Door) + globalStore.toggleIsPopupActive() // true + case 4: + globalStore.toggleIsPopupActive() + // ... + case 8: + globalStore.turnOnIsQuizSequence() + case 11: + globalStore.turnOffIsFaceViewActive() default: print("sequence two is Ready") } diff --git a/View/InteractionView/PaddleButtonView.swift b/View/InteractionView/PaddleButtonView.swift index a42c32d..be3f534 100644 --- a/View/InteractionView/PaddleButtonView.swift +++ b/View/InteractionView/PaddleButtonView.swift @@ -11,6 +11,9 @@ import SwiftUI 1. 사용자로부터 클릭 이벤트를 받아서 배 오브젝트를 이동시킨다. */ struct PaddleButtonView: View { + @EnvironmentObject + var globalStore: GlobalStore + @State private var isOffsetActive = false var body: some View { @@ -23,6 +26,8 @@ struct PaddleButtonView: View { DispatchQueue.main.asyncAfter(deadline: .now() + 0.02) { isOffsetActive = false } + print(globalStore.paddleCount) + globalStore.paddleCount += 1 } } } diff --git a/View/QuizModalView/QuizModalView.swift b/View/QuizModalView/QuizModalView.swift index ee950fd..dbceb2e 100644 --- a/View/QuizModalView/QuizModalView.swift +++ b/View/QuizModalView/QuizModalView.swift @@ -35,40 +35,45 @@ struct QuizModalView: View { .background(.opacity(0)) }.sheet(isPresented: $isShowingModal) { //Text("modal view") - VStack (alignment: .leading){ - Spacer() - QuestionView().padding() - Spacer() - AnswerView().padding() - Spacer() - /* - Button(action: self.presentation.wrappedValue.dismiss()){ - Text("TestButton") - } - */ + ZStack{ + Image("Quiz_1") + .offset(y: globalStore.safeAreaSize.1) + VStack (alignment: .leading){ + Spacer() + QuestionView().padding() + Spacer() + AnswerView().padding() + Spacer() + /* + Button(action: self.presentation.wrappedValue.dismiss()){ + Text("TestButton") + } + */ - - - /*QuizButtonView { - presentation.wrappedValue.dismiss() - } - */ - - if globalStore.currentScene == EnumScene.sequence1 { - QuizButtonView1(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ + + /*QuizButtonView { + presentation.wrappedValue.dismiss() + } + */ + + if globalStore.currentScene == EnumScene.sequence1 { + QuizButtonView1(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ + } + } + + else { + QuizButtonView(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ + } + } + // QuizButtonView(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ + // + // } + } - - else { - QuizButtonView(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ - } - } -// QuizButtonView(isShowingModal: $isShowingModal, quizFalse: $quizFalse){ -// -// } - } + .background(CustomColor.scriptBox) .presentationDetents([.medium, .large], selection: $settingsDetent) } .onAppear{ diff --git a/View/SceneView/SceneBackgroundView.swift b/View/SceneView/SceneBackgroundView.swift index 4b3fc83..83a15ac 100644 --- a/View/SceneView/SceneBackgroundView.swift +++ b/View/SceneView/SceneBackgroundView.swift @@ -48,6 +48,9 @@ struct SceneBackgroundView: View { @State private var isBlurActive = true + @State + private var isLastSequenceImage = false + @State var currentBg: EnumBackgrundImage = .opening { didSet { @@ -97,11 +100,9 @@ struct SceneBackgroundView: View { if scriptCount == 0 { setTimeoutClosure(timeCount: 400) { isBlurActive = false + bgOffsetY = 650 } } - if scriptCount == 1 { - bgOffsetY = 200 - } if scriptCount == 10 { globalStore.turnOffIsTapAble() setTimeoutClosure(timeCount: 400) { @@ -118,7 +119,7 @@ struct SceneBackgroundView: View { } case .sequence2: if scriptCount == 0 { - bgOffsetY = 0 + bgOffsetY = bgOffsetY + 650 globalStore.turnOffIsPopupActive() setTimeoutClosure(timeCount: 400) { isBlurActive = false @@ -126,23 +127,60 @@ struct SceneBackgroundView: View { } } - if scriptCount == 3 { + if scriptCount == 2 { globalStore.turnOnIsPopupActive() } + if scriptCount == 11 { + globalStore.turnOffIsTapAble() + setTimeoutClosure(timeCount: 400) { + isBlurActive = true + } + setTimeoutClosure(timeCount: 1000) { + globalStore.turnOnIsTapAble() + } + } case .sequence3: currentBg = .sequence3 if scriptCount == 0 { bgOffsetY = 0 + setTimeoutClosure(timeCount: 400) { + isBlurActive = false + } + } + if scriptCount == 9 { + bgOffsetY = bgOffsetY + 350 + } + + if scriptCount == 19 { + globalStore.turnOffIsTapAble() + } + if scriptCount == 21 { + globalStore.turnOnIsTapAble() + bgOffsetY = bgOffsetY + 300 + } + if scriptCount == 25 { + setTimeoutClosure(timeCount: 400) { + isBlurActive = true + } + setTimeoutClosure(timeCount: 1000) { + bgOffsetY = 0 + } } + case .ending: currentBg = .ending if scriptCount == 0 { - bgOffsetY = 0 - setTimeoutClosure(timeCount: 100) { + + setTimeoutClosure(timeCount: 400) { + bgOffsetY = 0 + } + isLastSequenceImage = true + setTimeoutClosure(timeCount: 1000) { + isBlurActive = false globalStore.turnOffIsTapAble() animationDuration = 12 - bgOffsetY = 2500 - 650 + bgOffsetY -= 1800 } setTimeoutClosure(timeCount: 12000) { globalStore.turnOnIsTapAble() @@ -166,7 +204,7 @@ struct SceneBackgroundView: View { Image(currentSceneImage) .resizable() .aspectRatio(contentMode: .fill) - .frame(width: 390, height: 650, alignment: .bottom) + .frame(width: 390, height: 650, alignment: isLastSequenceImage ? .top : .bottom) .offset(y: CGFloat(bgOffsetY)) .animation(.linear(duration: animationDuration), value: bgOffsetY) .alignmentGuide(.bottom) { d in @@ -186,5 +224,14 @@ struct SceneBackgroundView: View { .onReceive(globalStore.$scriptCount, perform: { currentCount in handleCurrentBackground(scriptCount: currentCount) }) + .onReceive(globalStore.$paddleCount, perform: { currentCount in + if bgOffsetY < 1550 { + bgOffsetY = bgOffsetY + currentCount * 2 + } + + if currentCount > 40 { + globalStore.addScriptCount() + } + }) } } diff --git a/View/SceneView/SequenceView/SequenceOneView.swift b/View/SceneView/SequenceView/SequenceOneView.swift index 0799409..a4fe2e8 100644 --- a/View/SceneView/SequenceView/SequenceOneView.swift +++ b/View/SceneView/SequenceView/SequenceOneView.swift @@ -31,16 +31,13 @@ struct SequenceOneView: View { private func handleSequenceView(scriptCount: Int) { switch scriptCount { - case 1...11: + case 1: isCharacterMove = false print(isCharacterMove) print("scriptCount", scriptCount) - DispatchQueue.main.asyncAfter(deadline: .now() + 0.001) { isCharacterMove = true } - - print(isCharacterMove) default: print("scriptCount", scriptCount) } diff --git a/View/SceneView/SequenceView/SequenceOpeningView.swift b/View/SceneView/SequenceView/SequenceOpeningView.swift index c3bcf45..3963197 100644 --- a/View/SceneView/SequenceView/SequenceOpeningView.swift +++ b/View/SceneView/SequenceView/SequenceOpeningView.swift @@ -1,40 +1,95 @@ -// -// SwiftUIView.swift -// -// -// Created by Yun Dongbeom on 2023/03/27. -// import SwiftUI - +import AVFoundation struct SequenceOpeningView: View { - @EnvironmentObject var globalStore: GlobalStore + + @EnvironmentObject + var globalStore: GlobalStore + + let audioPlayer = AVPlayer(url: Bundle.main.url(forResource: "sfx_sounds_interaction1", withExtension: "wav")!) + let volume: Float = 1 + let playCount = 6 + let timeGap: Double = 0.5 + + @State private var currentPlayCount = 0 + + @State + var isCharcterActive = false + @State + var blackbackground1 = false + @State + var crowd = false + @State + var crowd2 = false + + private func handleSequenceView(scriptCount: Int) { + switch scriptCount { + case 0: + blackbackground1 = true + case 4: + blackbackground1 = false + crowd = true + case 11: + crowd = false + crowd2 = true + case 12: + crowd2 = false + default: + print("scriptCount", scriptCount) + } + } + //var test1 = 0 var isHidden: Bool = false - + var body: some View { - Text("Scene opening View") - // 캐릭터자체를 띄우는 뷰 -> 사람에 따라서 olive.name이런식으로 넣으면 됨 (UserData를 참고하면 됨!) - CharacterView(objectName: henry.name, makeDirection: EnumDirection.Back_1, start: (10.0, 0.0), end: (10.0, -280.0)) + ZStack(alignment: .topLeading){ + Text("globalStore.scriptCount: \(globalStore.scriptCount)").onAppear { + // Start playing the audio when the view appears + self.audioPlayer.play() + self.audioPlayer.volume = self.volume + let _ = Timer.scheduledTimer(withTimeInterval: self.timeGap + self.audioPlayer.currentItem!.asset.duration.seconds, repeats: true) { timer in + if self.currentPlayCount < self.playCount { + self.audioPlayer.seek(to: CMTime.zero) + self.audioPlayer.volume = self.volume + self.audioPlayer.play() + self.currentPlayCount += 1 + } else { + timer.invalidate() + } + } + } + if crowd { + ZStack{ + CharacterView(objectName: walker.name, makeDirection: EnumDirection.Back_2, start: (60.0, 550.0), end: (0.0, 0.0)) + CharacterView(objectName: luna.name, makeDirection: EnumDirection.Back_2, start: (114.0, 560.0), end: (0.0, 0.0)) + CharacterView(objectName: muho.name, makeDirection: EnumDirection.Back_2, start: (168.0, 540.0), end: (0.0, 0.0)) + CharacterView(objectName: coffee.name, makeDirection: EnumDirection.Back_2, start: (222.0, 560.0), end: (0.0, 0.0)) + CharacterView(objectName: olive.name, makeDirection: EnumDirection.Back_2, start: (276.0, 570.0), end: (0.0, 0.0)) + CharacterView(objectName: henry.name, makeDirection: EnumDirection.Back_2, start: (330.0, 540.0), end: (0.0, 0.0)) + } + + if blackbackground1 { + Image("Background_Black") + .position(x: -100, y: -150) + } + + + } + if crowd2 { + ZStack{ + CharacterView(objectName: walker.name, makeDirection: EnumDirection.Back_1, start: (60.0, 570.0), end: (0.0, -420.0)) + CharacterView(objectName: luna.name, makeDirection: EnumDirection.Back_1, start: (114.0, 600.0), end: (0.0, -450.0)) + CharacterView(objectName: muho.name, makeDirection: EnumDirection.Back_1, start: (168.0, 580.0), end: (0.0, -430.0)) + CharacterView(objectName: coffee.name, makeDirection: EnumDirection.Back_1, start: (222.0, 560.0), end: (0.0, -410.0)) + CharacterView(objectName: olive.name, makeDirection: EnumDirection.Back_1, start: (276.0, 570.0), end: (0.0, -420.0)) + CharacterView(objectName: henry.name, makeDirection: EnumDirection.Back_1, start: (330.0, 540.0), end: (0.0, -390.0)) + } + } + } + .onReceive(globalStore.$scriptCount, perform: { currentCount in + handleSequenceView(scriptCount: currentCount) + }) } } - -/*인트로 시작한다 - - Character 6명이 걸으며 나타난다.(12걸음 뒤 멈춤). - - - Image_CBL 팝업 - - - Image_CBL 사라짐 - - - Image_Pouch 팝업 - - - Image_Pouch 사라짐 - Image_Keys 팝업 - - - Image_Keys 팝업 - Image_Redkey 팝업 - - - Character 6명이 이동한다. - - */ diff --git a/View/SceneView/SequenceView/SequenceThreeView.swift b/View/SceneView/SequenceView/SequenceThreeView.swift index a4ab8db..ed736a5 100644 --- a/View/SceneView/SequenceView/SequenceThreeView.swift +++ b/View/SceneView/SequenceView/SequenceThreeView.swift @@ -57,6 +57,8 @@ struct SequenceThreeView: View { @State var isGomissacColor = false + @State + var isLastScene = false @State private var isWoodMoveActive = false @State private var isFabricMoveActive = false @@ -97,15 +99,26 @@ struct SequenceThreeView: View { isMagicCircleOn = false case 19: isPaddleOn = true - case 22: + case 21: isPeopleOnBoat = false - isPeopleMoving3 = true isPaddleOn = false isBoatMove = true + isPeopleMoving3 = true + + case 22: + // isPeopleOnBoat = false + // isPaddleOn = false + // isBoatMove = true isGomissacMove = true case 23: isGomissacColor = true isBoatMove = false + case 24: + isLastScene = true + isPeopleMoving3 = false + case 25: + isGomissacColor = false + isLastScene = false default: print("scriptCount", scriptCount) @@ -123,24 +136,44 @@ struct SequenceThreeView: View { } if isPeopleMoving3 { - CharacterView2(objectName: walker.name, makeDirection: EnumDirection.Back_1, start: (150, 320), end: (-100, 30)) - CharacterView2(objectName: luna.name, makeDirection: EnumDirection.Back_1, start: (160, 330), end: (-70, 80)) - CharacterView2(objectName: coffee.name, makeDirection: EnumDirection.Back_1, start: (180, 340), end: (-30, 100)) - CharacterView2(objectName: muho.name, makeDirection: EnumDirection.Back_1, start: (190, 330), end: (20, 115)) - CharacterView2(objectName: olive.name, makeDirection: EnumDirection.Back_1, start: (210, 340), end: (70, 60)) - CharacterView2(objectName: henry.name, makeDirection: EnumDirection.Back_1, start: (230, 350), end: (110, 10)) - + CharacterView2(objectName: walker.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (150, 320), end: (-100, 30)) + CharacterView2(objectName: luna.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (160, 330), end: (-70, 80)) + CharacterView2(objectName: coffee.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (180, 340), end: (-30, 100)) + CharacterView2(objectName: muho.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (190, 330), end: (20, 115)) + CharacterView2(objectName: olive.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (210, 340), end: (70, 60)) + CharacterView2(objectName: henry.name, makeDirection: + isLastScene ? EnumDirection.Front : EnumDirection.Back_1, start: (230, 350), end: (110, 10)) + } + + if isLastScene { + CharacterView2(objectName: walker.name, makeDirection: + EnumDirection.Front, start: (50, 400), end: (0,0)) + CharacterView2(objectName: luna.name, makeDirection: + EnumDirection.Front, start: (90, 460), end: (0,0)) + CharacterView2(objectName: coffee.name, makeDirection: + EnumDirection.Front, start: (150, 490), end: (0,0)) + CharacterView2(objectName: muho.name, makeDirection: + EnumDirection.Front, start: (210, 495), end: (0,0)) + CharacterView2(objectName: olive.name, makeDirection: + EnumDirection.Front, start: (280, 450), end: (0,0)) + CharacterView2(objectName: henry.name, makeDirection: + EnumDirection.Front, start: (340, 410), end: (0,0)) } if isBoatMove { Image("Object_Boat") .position(x: 195, y: 310) .offset(x: 0, y: (isBoatMoveActive ? 500 : 0)) - .onAppear { - withAnimation(.easeInOut(duration: 2)){ - isBoatMoveActive.toggle() - } + .onAppear { + withAnimation(.easeInOut(duration: 2)){ + isBoatMoveActive.toggle() } + } } if isGomissacMove { @@ -164,11 +197,7 @@ struct SequenceThreeView: View { } } } - - } - - .onReceive(globalStore.$scriptCount, perform: { currentCount in handleSequenceView(scriptCount: currentCount) }) diff --git a/View/SceneView/SequenceView/SequenceTwoView.swift b/View/SceneView/SequenceView/SequenceTwoView.swift index 846e6aa..fa15af7 100644 --- a/View/SceneView/SequenceView/SequenceTwoView.swift +++ b/View/SceneView/SequenceView/SequenceTwoView.swift @@ -48,31 +48,33 @@ struct SequenceTwoView: View { isWrongDoorComeActive = true isMainAutoDoorComing = true isMainDoorComeActive = true - case 4: + case 3: isAutoDoorButtonActive = true - case 6: + case 5: isAutoDoorButtonActive = false isDoorButtonClicked = true - case 7: + case 6: isAutoDoorButtonActive = true isDoorButtonClicked = false isWrongAutoDoorComing = false isWrongDoorOpen = true - case 10: + case 9: isMainAutoDoorComing = false isMainDoorOpen = true + case 11: + isCharacterMove = false + isMainDoorOpen = false + isWrongDoorOpen = false + isAutoDoorButtonActive = false default: print("scriptCount", scriptCount) } } var body: some View { ZStack { - Text("globalStore.scriptCount: \(globalStore.scriptCount)") -// Text("Scene Two View") - if isCharacterMove { - CharacterView(objectName: "BigCoffee_", makeDirection: EnumDirection.Back_1, start: (170, 522), end: (0, 0)) - CharacterView(objectName: "BigMuho_", makeDirection: EnumDirection.Back_1, start: (220, 522), end: (0, 0)) + CharacterView(objectName: "BigMuho_", makeDirection: EnumDirection.Back_1, start: (170, 522), end: (0, 0)) + CharacterView(objectName: "BigCoffee_", makeDirection: EnumDirection.Back_1, start: (220, 522), end: (0, 0)) } if isWrongAutoDoorComing{ Image("Object_Door_Closed") @@ -100,11 +102,11 @@ struct SequenceTwoView: View { } if isAutoDoorButtonActive { Image("Object_DoorButton") - .position(x: 270, y: 380) + .position(x: 140, y: 380) } if isDoorButtonClicked{ Image("Object_DoorButton_Dark") - .position(x: 270, y: 380) + .position(x: 140, y: 380) } if isMainDoorOpen { //center Door