O'Reilly logo

Game Programming Using Qt by Lorenz Haas, Witold Wysota

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Time for action – collecting coins

From Qt Creator's menu, access File | New File or Project. From Qt Files And Classes, choose the JS File template. Call the file "collisions.js". Put the following content into the document:

pragma library

function boundingBox(object1) {
  var cR = object1.childrenRect
  var mapped = object1.mapToItem(object1.parent, cR.x, cR.y, cR.width, cR.height)
  return Qt.rect(mapped.x, mapped.y, mapped.width, mapped.height)
}

function intersect(object1, object2) {
  var r1 = boundingBox(object1)
  var r2 = boundingBox(object2)
  return (r1.x <= r2.x+r2.width  && // r1.left <= r2.right
  r2.x <= r1.x+r1.width  && // r2.left <= r1.right
  r1.y <= r2.y+r2.height && // r1.top <= r2.bottom
  r2.y <= r1.y+r1.height)   // r2.top <= r1.bottom
}

Create ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required