Forums

OverviewFelgo 2 Support (Qt 5) › Multiple screens tutorial – Cannot assign to non-existent property "creditsPress

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #16115

    Alexander

    Hi!

    I am trying to do the multiple screens tutorial but I am stuck at the point where the signals of the scenes are used to switch between them.

    This is my Main.qml

    import Felgo 3.0
    import QtQuick 2.0
    
    import "scenes"
    
    GameWindow {
        id: gameWindow
    
        screenWidth: 960
        screenHeight: 640
    
        EntityManager {
            id: entityManager
        }
    
        // menu scene
        MenuScene {
            id: menuScene
            // listen to the button signals of the scene and change the state according to it
            startSimulationPressed: gameWindow.state = "game"
            creditsPressed: gameWindow.state = "credits"
        }
    
        // game scene
        GameScene {
            id: gameScene
            //onMenuScenePressed: gameWindow.state = "menu"
        }
    
        // credits scene
        CreditsScene {
            id: creditsScene
        }
    
        // default state is menu -> default scene is menuScene
        state: "menu"
        activeScene: menuScene
    
        // state machine, takes care of reversing the PropertyChanges when changing the state. e.g. it changes the opacity back to 0
        states: [
            State {
                name: "menu"
                PropertyChanges {target: menuScene; opacity: 1}
                PropertyChanges {target: gameWindow; activeScene: menuScene}
            },
            State {
                name: "game"
                PropertyChanges {target: golScene; opacity: 1}
                PropertyChanges {target: gameWindow; activeScene: gameScene}
            },
            State {
                name: "credits"
                PropertyChanges {target: creditsScene; opacity: 1}
                PropertyChanges {target: gameWindow; activeScene: creditsScene}
            }
        ]
    }

     

    And this my MenuScene.qml

    import Felgo 3.0
    import QtQuick 2.0
    
    import "../entities"
    
    // The Menu Scene
    SceneBase {
        id: menuScene
    
        // signal indicating that the gameScene should be displayed
        signal startSimulationPressed
        // signal indicating that the creditsScene should be displayed
        signal creditsPressed
    
        // background
        Rectangle {
            anchors.fill: parent.gameWindowAnchorItem
            color: "#47688e"
        }
    
        // the "logo"
        Text {
            anchors.horizontalCenter: parent.horizontalCenter
            y: 30
            font.pixelSize: 30
            color: "#e9e9e9"
            text: "MultiSceneMultiLevel"
        }
    
        // menu
        Column {
            anchors.centerIn: parent
            spacing: 10
            MenuButton {
                text: "Start Simulation"
                onClicked: startSimulationPressed()
            }
            MenuButton {
                text: "Credits"
                onClicked: creditsPressed()
            }
        }
    }

     

    So with this setup, I always get the error “…qml/Main.qml:21 Cannot assign to non-existent property “creditsPressed”. The weird thing is, before I got the exact same thing for the other signal. I just rearranged some things in both files and now I get the other error.

     

    After trying out several changes and looking up the tutorial up and down I cannot find any explanation for this behavior and would appreciate some help for that.

     

    Thx in advance!

     

    Alexander

    #16116

    Alex
    Felgo Team

    Hi Alexander,

    please have a closer look at how you are using the signals. If the signal is named “creditsPressed”, the correct handler is called “onCreditsPressed”.

    Cheers,
    Alex

    #16117

    Alexander

    Hi Alex,

     

    Thx for the quick reply! With the renaming it worked now.

     

    Cheers,

    Alexander

Viewing 3 posts - 1 through 3 (of 3 total)

RSS feed for this thread

You must be logged in to reply to this topic.

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support