#qt #list #qml #states
#qt #Список #qml #состояния
Вопрос:
Я все еще новичок в Qt и хочу добавить систему рекордов в свою игру. Я нашел этот файл http://grip.espace-win.net/doc/apps/qt4/html/demos-declarative-snake-content-highscoremodel-qml.html который является элементом qml модели с высоким рейтингом. Я добавил это в свой проект, но я в полной растерянности относительно того, как это реализовать. Я просто хочу знать, как я могу использовать это, чтобы показать таблицу рекордов, когда мое окно переходит в определенное состояние. Я также хочу знать, как добавлять оценки и закрывать их при перезапуске игры. Это кажется мне глупым, но я действительно не могу понять, как это использовать.
Ответ №1:
Из связанного файла выше:
Используйте этот компонент следующим образом:
HighScoreModel { id: highScores game: "MyCoolGame" }
Затем… используйте модель в представлении:
ListView { model: highScores delegate: Component { ... player ... score ... } }
Итак, слегка изменив более простой из двух примеров, приведенных в документах ListView
QML, мы получаем:
import QtQuick 1.0
ListView {
width: 180; height: 200
model: highScores {}
delegate: Text {
text: player ": " score
}
}
Хотя, если вы хотите получить дополнительный контроль над форматированием каждого элемента списка, как это предлагается при использовании delegate: Component
в приведенном выше примере из HighScoreModel.qml, второй пример использования в документации показывает вам, как это сделать.
Комментарии:
1. «Это означает, что вам понадобится удаленный SQL server», не так ли? Я почти уверен, что он использует свою собственную локальную базу данных sql. Вам, конечно, не обязательно иметь запущенную базу данных, чтобы запустить пример Snake (и отслеживать высокие баллы).
2. @sepp2k: Виноват — не читал этого .
3. Я не понимаю, как реализовать часть просмотра списка
Ответ №2:
Вы также можете ознакомиться с движком V-Play для приложений и игр на базе qt. В нее входит множество компонентов, упрощающих разработку для мобильных устройств.
Вы также можете добавить таблицы лидеров и профили пользователей в свое приложение с помощью нескольких строк кода:
import VPlay 2.0
import VPlayApps 1.0
import QtQuick 2.9
App {
// app navigation
Navigation {
NavigationItem {
title: "User Profile"
icon: IconType.user
NavigationStack {
initialPage: socialView.profilePage
}
}
NavigationItem {
title: "Leaderboard"
icon: IconType.flagcheckered
NavigationStack {
initialPage: socialView.leaderboardPage
}
}
}
// service configuration
VPlayGameNetwork {
id: gameNetwork
gameId: 285
secret: "AmazinglySecureGameSecret"
// increase leaderboard score by 1 for each app start
Component.onCompleted: gameNetwork.reportRelativeScore(1)
}
// social view setup
SocialView {
id: socialView
gameNetworkItem: gameNetwork
multiplayerItem: multiplayer
visible: false // we show the view pages on our custom app navigation
}
}
Смотрите здесь для получения дополнительной информации: https://v-play.net/cross-platform-app-development/how-to-add-chat-service-and-cross-platform-leaderboard-with-user-profiles-to-your-ios-or-android-app#add-leaderboard-with-user-profiles