Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

Box2D Examples

 import QtQuick 2.0
 import Felgo 3.0

 GameWindow {
   id: gameWindow
   screenWidth: 960
   screenHeight: 640

   activeScene: scene

   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 {
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded