2011-11-13 57 views
1

我对Qt还很陌生,我想在游戏中添加高分系统。我发现这个文件http://grip.espace-win.net/doc/apps/qt4/html/demos-declarative-snake-content-highscoremodel-qml.html这是一个高分模型qml元素。我已经将它添加到了我的项目中,但是我对如何实施它却一无所知。我只想知道当我的窗口进入某个特定状态时,我可以如何使用它来显示高分表。我还想知道如何添加分数并在游戏重新启动时关闭它。这看起来很愚蠢,但我真的无法弄清楚如何使用它。Qt高分系统

回答

2

从上面的链接文件:

使用这个组件是这样的:

HighScoreModel { 
    id: highScores 
    game: "MyCoolGame" 
} 

则...使用的视图模型:

ListView { 
    model: highScores 
    delegate: Component { 
    ... player ... score ... 
    } 
} 

所以通过稍微改变QML ListView docs中给出的两个示例中较简单的一个,我们得到:

import QtQuick 1.0 

ListView { 
    width: 180; height: 200 
    model: highScores {} 
    delegate: Text { 
    text: player + ": " + score 
    } 
} 

虽然如果要在列表中的每个元素的格式的进一步控制,通过在实施例中使用的delegate: Component在文档显示从HighScoreModel.qml,第二使用示例上面引述的建议你怎么。

+0

“这意味着你将需要远程SQL服务器“ 可以?我很确定它使用自己的本地SQL数据库。您当然不必运行数据库来运行Snake示例(并记录高分)。 – sepp2k

+0

@ sepp2k:我的坏 - 没有阅读[this](http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeglobalobject.html#offline-storage-api)。 – sjwarner

+0

我不明白如何实现列表视图部分 – Gerharddc

0

您还可以看看基于qt的应用程序和游戏的V-Play引擎。它配备了许多组件,可以使移动开发更加轻松。

您也可以排行榜和用户配置文件添加到您的应用程序的几行代码:

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