Для учебы мне нужно создать игру на iOS (наподобие космических захватчиков).На самом деле, я застрял в игровой зоне: мне нужно, чтобы пулю можно было вытянуть из максимального значения положения x независимо от форм-фактора.Действительно, мой код прекрасно работает на старом форм-факторе (как iPhone 8).Однако в новом форм-факторе (iPhone X, XS ..) планета может исчезнуть со всего экрана.
(я новичок в Swift, поэтому я знаю, что в моем коде много ошибок).Но я думаю, что проблема в том, что я делю на целое число.
Первая картинка: что я хочу (работает на iPhone 8) Вторая: Моя проблема.
Спасибо заВы помогаете (и извините за мой плохой английский, французы, ахаха).
перевод:
zone_de_jeu = game_area
largeur_jouable = width_playable
marge_largeur = width_margin
hauteur_jouable = height_playable
1028 * marge_hauteur = height_margin
введите здесь код
var zone_de_jeu: CGRect
override init(size: CGSize) {
let max_ratio_aspect: CGFloat = 16.0 / 9.0
let largeur_jouable = size.height / max_ratio_aspect
let marge_largeur = (size.width - largeur_jouable) / 2
let hauteur_jouable = size.width / max_ratio_aspect
let marge_hauteur = (size.height - hauteur_jouable) / 2
zone_de_jeu = CGRect(x: marge_largeur, y: marge_hauteur, width: largeur_jouable, height: hauteur_jouable)
super.init(size: size)
let initialisation_mouvement_planete = touch.location(in: self)
let mouvement_planete = touch.previousLocation(in: self)
let arrive_final_planete_x = initialisation_mouvement_planete.x - mouvement_planete.x
planete.position.x += arrive_final_planete_x
if planete.position.x > zone_de_jeu.maxX - planete.size.width / 6.5 {
planete.position.x = zone_de_jeu.maxX - planete.size.width / 6.5
}
if planete.position.x < zone_de_jeu.minX + planete.size.width / 6.5 {
planete.position.x = zone_de_jeu.minX + planete.size.width / 6.5
}
Должен ли я изменить мой делитель на что-то более общее?