Система рекордов Qt

#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