Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Game Development
  4. Keep receiving type errors

Keep receiving type errors

Scheduled Pinned Locked Moved Unsolved Game Development
3 Posts 3 Posters 1.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    ToddPocock
    wrote on last edited by p3c0
    #1

    Hi all, new to using Qt creator so bare with me please....

    So I am trying to make a unlimited running platformer, like flappy bird. I am actually using a V-play template to make this game.

    I am trying to add bombs into the space that continue to randomly run onto the screen and you must avoid them with your plane.

    I keep getting a type error message when i attempt to put the bomb into the scene, here is the code
    (Level.qml)

    import VPlay 2.0
    import QtQuick 2.0
    import "../entities"
    import "../common"
    
    Item {
        id: level
    
        Background {
            anchors.horizontalCenter: parent.horizontalCenter
            y: scene.gameWindowAnchorItem.y+scene.gameWindowAnchorItem.height-height
        }
    
        BorderElement {
            x: scene.gameWindowAnchorItem.x
            y: scene.gameWindowAnchorItem.y-20
            width: scene.gameWindowAnchorItem.width
            height: 20
        }
    
        BorderElement {
            y: ground.y
            x: scene.gameWindowAnchorItem.x
            width: scene.gameWindowAnchorItem.width
            height: 20
        }
    
        Bombs {
            id: bombs1
            delay: 0
        }
    
        Bombs {
            id: bombs2
            delay: 1.5
        }
    
        Ground {
            id: ground
            anchors.horizontalCenter: parent.horizontalCenter
            y: scene.gameWindowAnchorItem.y+scene.gameWindowAnchorItem.height-height
        }
    
        function reset() {
            bombs1.reset()
            bombs2.reset()
            ground.reset()
        }
    
        function stop() {
            bombs1.stop()
            bombs2.stop()
            ground.stop()
        }
    
        function start() {
            bombs1.start()
            bombs2.start()
        }
    }
    

    (bomb.qml)

    import VPlay 2.0
    import QtQuick 2.0
    
    EntityBase {
        id: bombElement
        width: 40
        height: 40
    
    
        property int variationDistance: 70
        property double delay: 0
    
        MultiResolutionImage {
            id: bomb
            source: "../../assets/img/bomb.png"
    
        }
    
        BoxCollider {
            id: collider
            width: bomb.width
            height: bomb.height
            anchors.centerIn: bomb
            bodyType: Body.Static
            collisionTestingOnlyMode: true
            fixture.onBeginContact: {
                player.gameOver()
            }
        }
    
    
    
        MovementAnimation {
            id: animation
            target: parent
            property: "x"
            velocity: -150
            running: true
            minPropertyValue: scene.gameWindowAnchorItem.x-bombElement.width*1.5
            onLimitReached: {
                reset()
            }
        }
    
        function generateRandomValueBetween(minimum, maximum) {
            return Math.random()*(maximum-minimum) + minimum
        }
    
        function reset() {
            bombElement.x = scene.gameWindowAnchorItem.width+bombElement.width/2
            bombElement.y = generateRandomValueBetween(-variationDistance, variationDistance)-scene.height/3
        }
    
        function start() {
            delayTimer.restart()
        }
    
        function stop() {
            animation.stop()
            delayTimer.stop()
        }
    
        Timer {
            id: delayTimer
            interval: delay*1000
            repeat: false
            onTriggered: {
                animation.start()
            }
        }
    
        Component.onCompleted: {
            reset()
        }
    }
    

    These are the error messages.

    file:///C:/Users/todd/OneDrive/Company/build-GoPlane-Desktop_Qt_5_7_0_MinGW_32bit-Debug/qml/MainItem.qml:46:5: Type GameScene unavailable
    file:///C:/Users/todd/OneDrive/Company/build-GoPlane-Desktop_Qt_5_7_0_MinGW_32bit-Debug/qml/scenes/GameScene.qml:37:5: Type Level unavailable
    file:///C:/Users/todd/OneDrive/Company/build-GoPlane-Desktop_Qt_5_7_0_MinGW_32bit-Debug/qml/game/Level.qml:28:5: Bombs is not a type
    C:\Users\todd\OneDrive\Company\build-GoPlane-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\GoPlane.exe exited with code 0
    
    1 Reply Last reply
    0
    • p3c0P Offline
      p3c0P Offline
      p3c0
      Moderators
      wrote on last edited by
      #2

      @ToddPocock Looks like you are missing some of the QML types. Either their plugin is not properly installed or may be you need some more import's.
      Refer to their documentation.

      157

      1 Reply Last reply
      0
      • P Offline
        P Offline
        peteritv
        wrote on last edited by
        #3

        @ToddPocock
        Looks like a typo to me?

        You're referring "Bombs" (with an s at the end), but your QML is called "bomb.qml".
        Strip the "s" and I think you'll be fine...

        1 Reply Last reply
        1

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved