Assembling your Qt3D entities
We will now proceed to create the building blocks of the game, each in the form of an Entity element:
Wall: This represents the limit of where the snake can goSnakePart: This represents a part of the snake's bodyApple: This represents the apple (no way!) spawned at a random locationBackground: This represents a good-looking background behind the snake and the apple
Each entity will be placed on a grid handled by the engine and will have a type identifier to make it easier to find. To factorize these properties, let's create a parent QML file named GameEntity.qml:
import Qt3D.Core 2.0
Entity {
property int type: 0
property vector2d gridPosition: Qt.vector2d(0, 0)
} This Entity element only defines a type property and a gridPosition property, which will be used by the engine to lay out the content on the grid.
The first item we will build is the Wall.qml file:
import Qt3D.Core 2.0
GameEntity {
id: root
property alias position: transform...