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 4.0

 /*
   This example allows moving a box by applying linear impulses and setting the linearVelocity by pressing the right, left and up key.
  */

 GameWindow {
   id: screen
   activeScene: scene

   onKeyPressedGlobally: event => onKeysPressed(event)

   //focus: true
 //  Keys.onPressed: onKeysPressed(event)
 //  Keys.onReleased: onKeysReleased(event)

   function onKeysPressed(event) {
     if (event.key === Qt.Key_Left) {
       movableBox.moveBackward();
     }
     else if (event.key === Qt.Key_Right) {
       movableBox.moveForward();
     }
     else if (event.key === Qt.Key_Up) {
       movableBox.jump();
     }
   }

   function onKeysReleased(event) {
     if (event.isAutoRepeat)
       return ;

     if (event.key === Qt.Key_Left ||
         event.key === Qt.Key_Right) {
       movableBox.stopMoving();
     }
   }

   Scene {
     id: scene

     PhysicsWorld {
       id: world
       gravity.y: 20
     }

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

     MovableBox {
       id: movableBox
       width: 40
       height: width
     }

     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 }
     }
   }

   EntityManager {
Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded