Felgo Games Components Reference

The Felgo Games are available with the following import statement in your QML file:

 import Felgo 3.0

This is a list of all the Felgo components grouped into functional groups.

Note: You can quickly test and explore most of the components in the Examples Section of the Felgo Sample Launcher.

Felgo Plugins for Games (and Apps)

Felgo Plugins add platform-specific features and 3rd party SDK integration available from QML.

AdMob Plugin

Integrate with AdMob to monetize and promote your apps & games with ads.

Amplitude Plugin

Integrate with Amplitude to get insights into your app's usage.

Chartboost Plugin

Integrate with Chartboost to monetize and cross-promote your games with ads.

Facebook Plugin

Integrate with Facebook to help you build engaging social apps and get more installs.

Firebase Plugin

Add Google's Firebase for user authentication and access to the Firebase Realtime Database.

Flurry Plugin

Integrate with Flurry to get insights into your app's usage.

GameCenter Plugin

Integrate with GameCenter to send your games' highscores from Felgo Game Network to Apple Game Center on iOS devices.

Google Analytics Plugin

Integrate with Google Analytics to measure user interactions for your mobile and desktop apps.

GoogleCloudMessaging Plugin

Integrate with Google Cloud Messaging Push to send cross-platform push notifications and increase your users' engagement.

HockeyApp Plugin

Integrate with HockeyApp for beta distribution & crash reports.

Notification Plugin

Schedule native local push notifications in your app.

OneSignal Plugin

Integrate with OneSignal Push to send cross-platform push notifications and increase your users' engagement.

Parse Plugin

Integrate with Parse Push to send cross-platform push notifications and increase your users' engagement.

Soomla Plugin

Integrate with Soomla to offer in-app purchases and a virtual economy model within your app.

Wikitude Plugin

Integrate with Wikitude to create augmented reality apps.

Note: For testing the plugins on mobile and source code examples, see the Felgo Plugin Demo. When you develop your own game and want to add plugins to it, a Felgo license is required.

Felgo Game Network Components

Felgo Game Network components for using leaderboards, achievements and challenges in your game.

Achievement

Reward your players with achievements for reaching certain goals in your game and to give them more incentive to keep playing your game

FelgoGameNetwork

Root Felgo Game Network component for using leaderboards, achievements and challenges in your game

GameNetworkUser

Represents a single user instance on Felgo Game Network

GameNetworkView

Deprecated UI for FelgoGameNetwork leaderboards, achievements and user profile

Note: The GameNetworkView is deprecated and will no longer receive updates and fixes. Instead, please use the SocialView and Felgo Social Components below.

Felgo Multiplayer Components

Felgo Game Network components for creating multiplayer games with features like matchmaking, friend system or the in-game chat.

FelgoMultiplayer

Felgo Game Network component to add multiplayer features to your game

MultiplayerState

Felgo Multiplayer item handling the possible states of FelgoMultiplayer

MultiplayerUser

Represents a single Felgo Multiplayer user

MultiplayerView

Default UI for FelgoMultiplayer matchmaking, friend selection, chat and game invites

NoRanking

Disables the ranking and can be used as a FelgoMultiplayer::rankingStrategy

NotificationBar

Base type for creating a notification bar to show incoming FelgoMultiplayer push notifications in-game

SimpleRanking

Defines a simple multiplayer ranking strategy. It is the default FelgoMultiplayer::rankingStrategy

Felgo Social Components

Default UI for FelgoGameNetwork and FelgoMultiplayer features like user profiles, leaderboard or chat.

SocialActionButton

A simple button used for available social actions in user lists, for example to allow friend-request confirmation

SocialFlagImage

Component for showing the flag image of game network users. Input properties are height and locale. Width is set automatically to match the image aspect ratio

SocialPage

Base type for pages used together with SocialView

SocialUserDelegate

Base type for custom user item delegates of SocialView

SocialUserImage

A rounded image view, which adapts facebook profile image urls to scale correctly within games and apps

SocialUserSearchPage

Base type for SocialView pages that show a user search

SocialView

Default UI for FelgoGameNetwork and FelgoMultiplayer features like user profiles, leaderboard or chat

SocialViewButton

Default button for SocialView pages that uses the configured SocialView fonts and colors

Level Editor Components

The Level Editor Components provide level creation directly in the game.

BuildEntityButton

A drag and drop button for placing game entities with the LevelEditor

EditableComponent

Allows you to edit selected properties of a specific target with an ItemEditor

EntityBaseDraggable

Base class for game entities that should be used with the LevelEditor

ItemEditor

Allows to modify properties at runtime that were marked with the EditableComponent

LevelBase

Base class for custom QML levels that are loaded in a game with LevelLoader

LevelData

Data stored in a dynamically created level with LevelEditor available from LevelBase

LevelEditor

Allows to create, share & monetize user-generated levels with an in-game level editor

LevelLoader

Loads qml level files derived from LevelBase dynamically

LevelSelectionList

Displays a list of available levels from the LevelEditor

LevelStore

Allows to monetize user-generated levels with in-app purchases

Felgo Core Components

These components every game will contain. Most important are GameWindow, Scene, EntityBase and EntityManager.

EntityBase

Base class for custom game entities

EntityManager

Manages all entities derived from the EntityBase component

GameWindow

Default root Felgo Window containing all other components and Scenes

GameWindowApplicationWindow

Root Felgo ApplicationWindow containing all other components and Scenes

GameWindowItem

Root Felgo element usable with existing Qt 5 applications

Scene

Root element for a single game view

Storage

Storage item provides a persistent and offline storage for arbitrary key-value pair data

SyncedStore

A Store item which synchronizes the user's data via SyncedStore

Utils

Provides often-needed functionality like generating a random number between 2 values

WebStorage

Item syncs key-value-data with the cloud across devices and platforms with the FelgoGameNetwork

Context Components

The Context Components are global properties that are available in all QML files. They can be used to open native dialogs and browsers, network requests, dynamic QML component creation and provide system information.

FileUtils

FileUtils context property provides file operations like reading, writing and listing files

NativeUtils

NativeUtils context property allows opening native message boxes, input dialogs and browsers

Qt Context Objects

The Qt Context Objects page contains information about often-used functionality of the Qt element, for network requests and useful JavaScript elements.

Visual Components

These components are used for efficient rendering in games and to handle multiple screen sizes. Most important is MultiResolutionImage for handling different screen sizes and aspect ratios. And SpriteSequence or AnimatedSprite for animated sprites. For advanced and performance-improved animations, see TexturePackerAnimatedSprite and SpineSkeleton.

AnimatedSprite

Plays a single sprite animation stored as a series of frames

BackgroundImage

Improves performance of background image rendering

Camera

Enables to follow an object, or be moved around freely

LineItem

Can be used to display colored single and segmented lines

MultiResolutionImage

Changes the used image based on the display size to improve performance and memory usage

ParallaxItem

Allows to create parallax movement effects

ParallaxScrollingBackground

Allows to create an endlessly scrollable background, usable by SideScroller games for example

PolygonItem

Allows to display polygonal primitives with color

SpineSkeleton

The base type for all bone-based animations created with the Spine framework

Sprite

Element defines a series of sprite frames within an image for a SpriteSequence

SpriteSequence

Contains a list of Sprite elements and allows switching between them with only one active at a time

TexturePackerAnimatedSprite

Component shows a single static sprite or an animated sprite like the AnimatedSprite. It has an increased performance thanks to its support for sprite sheets created with TexturePacker

TexturePackerSprite

Element defines a series of sprite frames within an image for a TexturePackerSpriteSequence. It has an increased performance thanks to its support for sprite sheets created with TexturePacker

TexturePackerSpriteSequence

Contains a list of TexturePackerSprite elements and allows switching between them with only one active at a time. It has an increased performance thanks to its support for sprite sheets created with TexturePacker

In addition to the above list, also these Qt Quick Components are useful.

Image The Image element is used to display image files.
BorderImage Useful for resolution-independent buttons, similar to Android's 9-patch images.
Text The Text element allows displaying text on screen.
Rectangle The Rectangle item provides a filled rectangle.

Visual 3D Components

These components are used for 3D rendering.

Render3D

A 3D model with a texture and material to be rendered in a Scene3D

Scene3D

Root element for rendering 3D objects within a 2D GameWindow

TargetCamTransformHelper

Provides the position when rotating towards a direction usable for follow or target cameras

Input Components

These components allow entity movement with a keyboard or a virtual controller for touchscreens.

JoystickControllerHUD

Element provides an input controller for a virtual joystick for moving entities, also called a virtual D-pad

SimpleButton

Represents a basic rectangular button with a clicked handler that can be used during development

SpinBox

Allows the user to select from a set of preset values

SpinBox

A spinbox control

StyledButton

Has a gradient, radius and border and an optional flatStyle, ready to be published in games & apps

TwoAxisController

Input controller with keyboard support for moving entities

In addition to the above list, also these Qt Quick Components are useful:

MouseArea Allows mouse and touch input handling.
MultiPointTouchArea Allows multi-touch input handling.
Flickable Provides a surface that can be swiped.
Keys Allows key handling, including the Android soft keys like Back.
TextInput Displays a single editable line of text.
TextEdit Displays multiple lines of editable formatted text.

The Qt Quick Controls contain more input elements like native-looking Buttons, CheckBoxes and view components like TableView or StackView. See the Qt Quick Controls QML Types for more details.

Physics Components

These components add physics behavior to a game. They can either be used for collision detection, or for moving entities based on physics. The physics engine used by Felgo is Box2D.

Basic Physics Components

BoxCollider

Physics body with a rectangular shape

CircleCollider

Physics body with a round shape

PhysicsWorld

Simulates a physics world and contains all physics bodies

PolygonCollider

Physics body with a polygonal shape set up with at least 3 vertices

Fixture Components

To create custom physics objects which use more than the default behavior of BoxCollider, CircleCollider or PolygonCollider, combinations of these Fixture types can be used inside a ColliderBase object:

Box

A rectangular physics shape

Chain

An empty chain of points, or empty polygon (loop)

Circle

A circular physics shape

Edge

A flat edge between two points

Fixture

Abstract base class of all fixture types

Polygon

A filled convex polygonal physics shape

Joint Components

To link multiple physics objects together, the following types of joints can be used:

DistanceJoint

Keeps the distance between 2 bodies constant

FrictionJoint

Top-down friction between 2 bodies

GearJoint

Connects 2 Joint objects together

Joint

Abstract base class of all joints types

MotorJoint

Keeps the relative translation and rotation between 2 bodies constant

MouseJoint

Used to manipulate bodies with the mouse or touch input

PrismaticJoint

Allows relative translation of two bodies along a specified axis and prevents rotation

PulleyJoint

Keeps the total distance between a body, 2 points and another body constant

RevoluteJoint

Forces two bodies to share a common anchor point around which the bodies rotate

RopeJoint

Restricts the maximum distance between two points

WeldJoint

Glues two bodies together keeping a constant relative angle

WheelJoint

Allows relative rotation and translation of two bodies along a specified axis

Advanced Physics Components

The above components will be used most of the time. These components are for advanced use:

Body

A physics body which consists of one or more Fixture elements

Box2D

Contains static properties of the Box2D physics engine

ColliderBase

Base component for BoxCollider, CircleCollider and PolygonCollider. All physics colliders including BoxCollider, CircleCollider and PolygonCollider inherit from ColliderBase

Contact

Information about a physics contact event

DebugDraw

Draws a debug view of the physics components

Profile

A property group for getting profiling data about the current state and performance of the physics simulation

RayCast

A RayCast object that reports when a ray hits a Fixture

World

Represents a Box2D physics world including bodies and joints

Felgo & Qt Multimedia Components

These components allow to play audio and video files.

AlphaVideo

Component allows you to show videos with transparency

BackgroundMusic

Element allows playing long-lasting and looping background sound in wav, mp3 or ogg file format

SoundEffect

Element allows playing short-lasting and looping sound effects in wav file format

YouTubeWebPlayer

Embedded video player based on the YouTube Iframe-Player API

In addition to the above list, also these Qt Quick Components are useful:

Audio Add audio playback to a scene
SoundEffect Provides a way to play sound effects in QML
MediaPlayer Add media playback to a scene
Video A convenience type for showing a specified video
VideoOutput Render video or camera viewfinder
Camera Access viewfinder frames, and take photos and movies
Radio Access radio functionality from a QML application
Torch Simple control over torch functionality
QtMultimedia Provides a global object with useful functions from Qt Multimedia

Networking Components

These components handle network activities.

HttpImageUtils

Provides functionality for scaling and cropping an image file before uploading it with HttpRequest

HttpNetworkActivityIndicator

Convenience type to check pending requests when using HttpRequest

HttpRequest

Allows to implement networking features based on the SuperAgent library from VisionMedia

Promise

Offers an API similar to the Promises API in ES2017

XMLHttpRequest Element

The XMLHttpRequest object can be used to asynchronously obtain data from over a network.

View Model Components

JsonListModel for JSON Data Sources

JsonListModel allows to transform your JSON data into a QML ListModel for usage with e.g. an AppListView.

JsonListModel

A proxy view model for JSON data sources

SortFilterProxyModel for Sorting and Filtering

SortFilterProxyModel is an implementation of QSortFilterProxyModel conveniently exposed for QML. You can use it to apply filter and sorting settings to your QML ListModel items.

AllOf

Filter container accepting rows accepted by all its child filters

AnyOf

Filter container accepting rows accepted by at least one of its child filters

ExpressionFilter

Filters row with a custom filtering

ExpressionRole

A custom role computed from a javascript expression

ExpressionSorter

Sorts row with a custom sorting

Filter

Base type for the SortFilterProxyModel filters

IndexFilter

Filters rows based on their source index

JoinRole

Role made from concatenating other roles

ProxyRole

Base type for the SortFilterProxyModel proxy roles

RangeFilter

Filters rows between boundary values

RegExpFilter

Filters rows matching a regular expression

RoleFilter

Base type for filters based on a source model role

RoleSorter

Sorts rows based on a source model role

SortFilterProxyModel

Allows to apply filter and sorting settings to QML ListModel items

Sorter

Base type for the SortFilterProxyModel sorters

StringSorter

Sorts rows based on a source model string role

SwitchRole

Role using Filter to conditionnaly compute its data

ValueFilter

Filters rows matching exactly a value

AI Components

The AI components move entities towards a target point, with a constant velocity or along a path.

MoveToPointHelper

Provides information for a MovementAnimation or a ColliderBase about the direction and rotation when moving towards a target

MovementAnimation

Modifies a property with a constant velocity and acceleration

PathMovement

Interpolates an entity along a path and rotates it towards the target points

RUBE Components

The RUBE components allow loading of levels and Box2D objects created with RUBE, which stands for Really Useful Box2D Editor. You can use RUBE to create side scrollers like Badland or Jetpack Joyride, platformers like Super Mario, and other physics-based games.

RubeBody

Represents a Box2D body as defined in the JSON file from the RUBE level editor

RubeFixtureCircle

Represents a Box2D Circle fixture as defined in the JSON file from the RUBE level editor

RubeFixturePolygon

Represents a Box2D Polygon fixture as defined in the JSON file from the RUBE level editor

RubeImage

Represents an image as defined in the JSON file from the RUBE level editor

RubeParser

Creates QML items based on the description of a JSON file exported by the RUBE level editor

Slot Machine Components

The slot machine components allow to create slot games with Felgo.

SlotMachine

Component allows to easily implement a slot machine with multiple reels and rows. It also provides methods to spin or stop the slot machine and lets you access the visible items in each reel and row

SlotMachineModel

Allows to easily generate reels with randomly shuffled items for a SlotMachine

SlotMachineReel

Element describes a reel to be displayed within the SlotMachine component

Particles Components

The Particles components provide particle effect rendering.

Particle

Component allows visual effects like fire, explosions, smoke or rain

Most useful QML Components

Item The Item is the most basic of all visual items in QML.
Animation The Animation element is the base of all QML animations lasting for a fixed time.
Timer The Timer item triggers a handler at a specified interval.
Loader The Loader item allows dynamically loading an Item-based subtree from a URL or Component.

See here for a full list of all QML components.

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