Boxes.qml Example File

examples/physics/box2d-examples/qml/boxes/Boxes.qml
 import QtQuick 2.0
 import VPlay 2.0

 GameWindow {
   id: gameWindow
   screenWidth: 960
   screenHeight: 640

   Image {
     anchors.fill: parent
     source: "background.png"
   }

   Scene {
     id: scene
     width: 480
     height: 320

     PhysicsWorld {
       id: world
       gravity.y: 9.81
       debugDrawVisible: true
     } // end of PhysicsWorld

     Repeater {
       model: 3
       delegate: WoodenBox {
         x: Math.random() * (scene.width - 100)
         y: Math.random() * (scene.height / 3)
         rotation: Math.random() * 90
       }
     }

     WoodenBox {
       id: box
       x: 100
       y: 200
     }
     Rectangle {
       // this is another way to set a shape to a physics body - mention that the rotation of the box must be set, and the transformOrigin must be set to Topleft, as this is used for Body as well!
       width: box.width
       height: box.height
       x: box.x-box.width/2
       y: box.y-box.height/2
       color: "green"
       opacity: 0.5
       rotation: box.rotation
     }

     // the darkblue rectangle of the Walls is only visible when the GameWindow has a different aspect ratio than the Scene, because it is anchored to the outside of the visible scene
     Wall {
       id: ground
       height: 20
       anchors { left: parent.left; right: parent.right; top: parent.bottom }
     }
     Wall {
       id: ceiling
       height: 20
       anchors { left: parent.left; right: parent.right; bottom: parent.top }
     }
     Wall {
       id: leftWall
       width: 20
       anchors { right: parent.left; bottom: ground.top; top: ceiling.bottom }
     }
     Wall {
       id: rightWall
       width: 20
       anchors { left: parent.right; bottom: ground.top; top: ceiling.bottom }
     }

   } // end of Scene

   MouseArea {
     id: debugMouseArea
     anchors.fill: parent
     onPressed: world.debugDrawVisible = !world.debugDrawVisible
   }

   EntityManager {
     id: entityManager
   }
 }

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