MovingBox.qml Example File

examples/physics/box2d-examples/qml/movingBox/MovingBox.qml
 import QtQuick 2.0
 import VPlay 2.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

   onKeyPressedGlobally: 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 {

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