Я пишу игру (свою первую), и у меня настроена доска, и код работает для игры. Я использую SwiftUI для укладки основного экрана. Теперь я хочу всплыть текст / изображение, когда игрок бросает письмо. Я видел во многих играх, но не могу найти никакой помощи или инструкции о том, как это делается.
import SwiftUI
struct ContentView: View {
@State private var showLetters = [String](repeating: "Blank", count: 36)
@State private var testLetters = [String](repeating: "Blank", count: 7)
@State private var originalLetters = [String](repeating: "Blank", count: 7)
@State private var tray = [String](repeating: "Blank", count: 7)
@State private var buttonFrames = [CGRect](repeating: .zero, count: 35)
@State private var score = 0
@State private var lineNo = 0
@State var displayItem: Int = -1
let allowedWords = Bundle.main.words(from: "words.txt")
var body: some View {
VStack(spacing: 5) {
Image("word5sm")
HStack {
ForEach(0..<7) { number in
Letter(text: self.showLetters[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
.allowsHitTesting(false)
.overlay(
GeometryReader { geo in
Color.clear
.onAppear {
self.buttonFrames[number] = geo.frame(in: .global)
}
}
)
}
}
HStack {ForEach(7..<14) { number in
Letter(text: self.showLetters[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
.allowsHitTesting(false)
.overlay(
GeometryReader { geo in
Color.clear
.onAppear {
self.buttonFrames[number] = geo.frame(in: .global)
}
}
)
}
}
HStack {ForEach(14..<21) { number in
Letter(text: self.showLetters[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
.allowsHitTesting(false)
.overlay(
GeometryReader { geo in
Color.clear
.onAppear {
self.buttonFrames[number] = geo.frame(in: .global)
}
}
)
}
}
HStack {ForEach(21..<28) { number in
Letter(text: self.showLetters[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
.allowsHitTesting(false)
.overlay(
GeometryReader { geo in
Color.clear
.onAppear {
self.buttonFrames[number] = geo.frame(in: .global)
}
}
)
}
}
HStack {ForEach(28..<35) { number in
Letter(text: self.showLetters[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
.allowsHitTesting(false)
.overlay(
GeometryReader { geo in
Color.clear
.onAppear {
self.buttonFrames[number] = geo.frame(in: .global)
}
}
)
}
}
HStack {
ResetButton {
self.returnLetters()
}
NewLine {
self.newLine()
}
CalcButton {
self.calcButton()
}
}
HStack {
ForEach(0..<7) { number in
Letter(text: self.tray[number], index: number, onChanged: self.letterMoved, onEnded: self.letterDropped)
}
}
}
.frame(width: 768, height: 856)
.background(Image("Background"))
.onAppear(perform: startGame)
.allowsHitTesting(true)
}
This is my code for the main screen....
Это то, что я пытаюсь получить, с всплывающим текстом.
![Pop Up Message](https://i.stack.imgur.com/crg4J.jpg)