Download Book of Ra™ Deluxe Slot and enjoy it on your iPhone, iPad, and iPod touch. Book of Ra online is THE slot game - and the growth of its popularity is. Browse and download Games apps on your iPad, iPhone or iPod touch from the Book of Ra™ Deluxe Slot · Microsoft Solitaire Collection · Джокер карточная. Book of Ra can now be played on mobile devices or desktop pc. Dynasty of Ra - 29 January ; KINGDOM OF RA - 4 February ; Age of Pharaohs Our slot games are compatible with iPhone (iOS), Android and Windows for mobile.
|Language:||English, Spanish, German|
|Genre:||Science & Research|
|Distribution:||Free* [*Register to download]|
"A typical Book of Ra game with the researcher and the book symbols on the . of your main target device // this resolution is for iPhone 4 & iPhone 4S width. Games For Iphone 4 - Free Online Casino Roulette Games Play. a zizou gambling places fresno merkur online casino book of ra slots deity. Igt Slot Machine Manual Images Online Casino Review 4 Card Poker! Casino Review 4 Card Poker spille spill norsk up Jeux de casino book of ra oyunlari .. 4 Card Poker blackjack for money zynga Online casino usa for iphone Stars.
Learn from the best. Marlene J. Create a free account to start learning! Download tutorial source code Personalize your learner profile Track your progress Participate in open discussion forums And more! Start Coding Now. Browse Tutorials. Beta Unity Tutorials Unity is a cross-platform game engine favored by indie developers, and is the engine behind Hearthstone, Cities: Browse 67 Tutorials. Tutorial Library Over 3, high-quality tutorials to boost your programming career, created by a community of experts from around the world.
Browse All Tutorials. Top Tutorials. React Native Tutorial: Push Notifications Tutorial: About us All of the tutorials on this site are created by a community of experts from around the world. For the community, by the community.
Completed New. Advanced Swift: Coordinator Design Pattern: Trusted by thousands of developers around the world.
Nick Kohrn. Fred A. Time to learn some Android development! Erik S. Vincent Saluzzo. Johannes Fahrenkrug. Richard Hancock. Congratulations rwenderlich, the Best option to learn iOS. But most of the games have some specials that make them even more interesting: For example, The Book of Ra is not only the game title but also a symbol on the reels with a special power.
It can take the place of any other symbol in the game to form a line of matching symbols. Such wildcard symbols already boost the chances to win, but that's not all. If the player manages to get three or more books into one line, he receives ten free games with some twists that further increase the chances to win.
So like the real explorers of Egypt dungeons, the players who find the Book of Ra are extremely lucky and can expect big win amounts. Wildcard symbols, symbols that give free spins or even symbols that start mini-games are a major fun factor and occur in most of the modern slot games. In this tutorial, we will make a pirate themed slot game similar to such games! And I am sure you know what a pirates greatest treasure is This is what the final version is going to look like, yarrrrr!
After you complete this tutorial, you should be well-prepared to create your own slot machine game with Felgo in record time. This tutorial covers:. However, if you just started with Felgo and don't know how to work with Qt Creator or QML, please consider taking a look at the following tutorial:. Also, in order to keep this game simple and leave some room for improvement, we did not add the feature of winning ten free games when three or more flasks of rum form a line.
It's up to you to transform the slot machine of this sample game into a full-fledged slot machine that perfectly fits your needs. In case you prefer to directly look at the source code of the Flask of Rum demo game - you can find it along with the other demos in the Felgo SDK.
See here where to find the demo in your SDK directory.
For an overview of the game features, see Flask of Rum - Slot Game. The only additional resources that you need for this tutorial are some images. They should be placed within the assets directory of the Qt Creator project you are going to create. You can download the images here.
The first step is to create a new empty project in Qt Creator. We want the game to be in landscape orientation, so make sure to select this mode during the project setup. When you're done, just add the downloaded images to the assets folder of your project. Please take care not to add an additional subdirectory that might be created when you unpack the resources archive.
First, we want to create the basic game layout that fills the space around the actual slot machine in the middle of the screen. It includes:. The basic game layout consists of a bar at the top, one at the bottom and a beautiful dark red background. Let us start with a simple game scene, that only defines a few properties and a colored rectangle for our red background.
Just replace the current Main. With these few lines, we set up our game window to be x px. This is the default window size when you play the game on your computer.
On mobile devices, the game window size is different for each device. We then add a Scene to the game window and configure it as the active scene by stating activeScene: The value scene in this expression refers to the id that we set for our Scene element.
The scene in this example has a logical size of x px. All the elements within the scene are scaled up along with the scene to match the game window size. This makes it very easy to add elements, that have a fixed position and size, without worrying about them being smaller on displays with higher resolutions. There are different scaling modes available in Felgo.
The default mode fits the scene to the game window, which may leave empty areas at the side of the screen. To learn more about scaling modes, visit the tutorial How to create mobile games for different screen sizes and resolutions.
The two properties betAmount and creditAmount are global properties for handling the current bet amount and total credit amount of the game. We already set the initial values 4 and , so each spin of the slot machine reduces the initial credit amount of by 4 credits. The last element of the scene is the rectangle, that sets our background color.
We configure the rectangle to fill up the whole game window and not only the scene. This ensures that the background covers the whole screen on every device. The top bar is a very distinct element of the scene, that contains additional items like the game logo and the credit amount. It is a good idea to create a separate QML item for such elements to keep your code clean and well structured.
Create a new file TopBar. The topbar has a height of 50 px, which matches the height of the background Image. But we do not set a fixed width for the top bar at this point. Instead, we configure the background image to fill the whole topbar, so it is possible to set any width for the topbar at a later point and the background image always covers all of it. We will use this behavior to match width of the bar with width of the game screen. The other elements of the top bar have fixed sizes, but are not placed at a fixed point of the bar.
Instead, we anchor the items relatively to the topbar or to one another. This ensures the same relative positions on any device width. For example, the logo is always vertically and horizontally centered. The icon for the credits is a pile of gold coins that we place 4 px from the left and 8 px from the top of the bar.
We then anchor the credit amount text directly to the left of the gold coins and center it vertically. By using scene. Furthermore, any changes that occur in the creditAmount property are automatically applied to the text as well. This is possible due to the concept of property binding and erases any worries about keeping the text and the actual credit amount in sync.
The bottom bar is very similar to the top bar in terms of the basic principles for aligning and sizing the elements. But in contrast to the top bar, a few additional features are needed:.
Now let's add the BottomBar. We again only set a fixed height and add a background image that fills the whole bar. The start- and auto-buttons are quite similar to each other. They define an Image that is aligned at the right or the left side of the bar and include some additional features.
With the line source: Also, when the MouseArea detects a click, we trigger the matching signal. For the auto-button, we use the corresponding properties and signals in the same way. The buttons to control the bet amount are horizontally centered within the bottom bar and aligned next to each other. For this purpose, we use the Row component, that places all of its child elements in a horizontal row.
We can then set the position of the Row component within the bar without worrying about the horizontal alignment of the buttons themselves. For the buttons, we only define an Image that is vertically centered and contains a MouseArea that triggers the correct signal. That looks like a lot of code, but it's mainly for displaying all the elements correctly and for listening to the events and triggering the signals.
I am sure that at this point, you are eager to see both the top and the bottom bar in action.
Just add both of them to the main scene and we can see how it looks like. The two bars are quickly added with just a few lines. Because we prepared the bars to work with any width we want, we can set the width to the actual width of the game window. They then use the whole screen width on every device. For the bottom bar, we also already link the signals to the handler functions, that we added in our scene.
Most of the functions can already be implemented:. All of the functions that change the bet amount immediately return when the slot machine is currently running. That's because we want to prevent any changes in the bet amount during a slot machine run. We use the startActive property of the bottom bar for this check. When we start the slot machine, we will activate the start-button and thus also disable bet changes.
That's all for now! You can hit run, play around with the buttons and look at the awesome bars, that always fit the screen! We can finally come to the fun part: The actual slot machine!
Felgo offers a special SlotMachine component, that really helps us to get the main tasks done. We don't have to take care of positioning the symbols on multiple reels, spinning the reels or stopping them one after another. This is what we will do:. From the left: For each of these symbols, we want to define its frequency on the reels. The queen symbol should appear five times on each reel.
The captain only exists once. That's why the player wins big when a line of captains appear on the slot machine. We want our slot machine to have five reels, and if three or more symbols form a line at the end of a spin, the player receives credits based on the amount he bet. This table shows you the return factors for each symbol if they form a line of 3, 4 or 5 symbols. These values are just a configuration setting that you could also choose differently. It would be wise to have a configuration file to store these settings, so it is possible to easily change the symbols and win factors at a later point.
We decided to implement a configuration object as a singleton to show you yet another way how you can add global settings. In programming languages, singletons are a very common way to implement objects, that should be unique within the application. There can and will be only one instance of a singleton class. They are used for many different tasks. In our case, we define a configuration object as a singleton.
We only want one global configuration setting in the application. Also, we do not need to add the singleton to our scene or anywhere else. We can conveniently access the configuration object, with all its properties, signals and functions, directly in other files.
We are going to use the SlotMachineModel element to initialize the SlotMachine component with symbol data. This SlotMachineModel can also store additional custom configuration data you might need for each symbol. So how about we take advantage of that and use it to set up our configuration object? Let's create a new folder config in your qml directory and add the file SymbolConfig.
This class is just like any other QML class that you define, except for the line pragma Singleton , which marks it as a singleton object. The base class for our object is the SlotMachineModel , which is why we can also use our configuration object to initialize the SlotMachine component.
We decided to not only add the win factors as custom data, but also the source of the image that should be displayed for the symbol. This way, you can easily remove or add symbols later with the desired and symbol image and win factors. In addition, we can add some functions to our class that help us to access our configuration data. That was already the first step to create a singleton.
What's left is to declare a QML type for our singleton object.
This declares that the type SymbolConfig with version 1. With this, we configured all the data we need to set up our SlotMachine. We want to create a custom slot machine based on the configuration we just added. As mentioned before, the SlotMachine component helps us to easily set up a slot machine.
The main part to get a SlotMachine to work is to specify its model and delegate properties. As we use the SlotMachineModel to set the data for our slot machine, we can move on to defining the appearance of our symbols.
Create a new folder slotmachine in your qml directory and add the following Symbol. The symbol item is quite simple: It contains an Image and allows to set the image source using a property alias. We fill the whole item with the Image and add a margin at the top and the bottom. We do not set a fixed width for the item at this point. This is because we want to set the total size of the slot machine with the symbols based on the available screen size. To be able to do that, we don't specify a width and height for the items initially.
The SlotMachine component then automatically sets the item size, if we configure some properties for the default width and height of the items.
The line import ".. We then base our custom slot machine on the SlotMachine component and set it up to display three rows and five reels. For the model, we can simply pass our singleton configuration object. The slot machine then creates the symbol items, that are defined by the delegate property, with the data of our model.
Within the delegate, you can use some special properties to access the data of the SlotMachineModel you created:. After the model and delegate definitions, we also add two images. One that fills the slot machine with a background, another shows white lines as a border between the reels.
This image is placed above the background and the created symbols by setting the z property. After we state import "slotmachine" , we can add the component. We anchor it in the center of the scene and specify the default width and height for the items and reels. As we didn't set a specific height for our symbols, the default values are used for all of them.
When you hit play, this already look quite good. But at a closer look, the fixed height allows blank areas above or below the slot machine. The slot machine is displayed correctly, but the fixed height might lead to blank areas.
Let's correct that! And while we're at it, we can also bring everything to life by adding a handler to the spinEnded signal and implementing the startSlotMachine function.
We start with aligning the whole slot machine below the top bar. But the topbar image also includes a shadow at the bottom. So we move the slot machine 10px upwards to let the topbar and the slotmachine overlap a bit. Because the top bar is placed on top of the slot machine, it casts its shadow upon it. The same applies to the bottom bar. Only that in this case, the height of the slot machine is set accordingly to let it overlap with the bottom bar.
After setting a dynamic height for the slot machine based on the available space, we also calculate the width and height of the symbols accordingly. And as the last step we also scale the spin velocity along with the item height. If we didn't set a dynamic movement velocity, a slot machine with smaller symbols would appear faster.
For the startSlotMachine function, we only execute a new spin if the player has enough credits and the slot machine is not currently running. We also set bottomBar. We then reduce the player credits and start a new spin. To stop the slot machine, we pass a random interval between and ms to the spin function. The slot machine automatically stops after that time has passed and the spinEnded signal is fired.
After every spin, we deactivate the start button again and restart the slot machine if we're on autoplay. If you run the game at this point, you can already watch the symbols line up and your credits decline for every spin. I know what you are thinking now: I got three captains in a row and didn't win anything?! Before we go into the details of how to check if the player has won, you should know about the concept of multiple winning lines. In modern slot machine games, there is not only one line on which the player can win.
Having multiple lines, that span from the left side of the slot machine to the right side, increases the chances that some symbols form a line of three or more. That is why, also in this game, we have a total amount of 9 lines on which the player can win.
Our game uses 9 winning lines. Each of them draws a path from the left side of the slot machine to the right. Our goal is implement a winning line on a general level and then easily add the different lines just by specifying some variables like the path of this line, that can be described as a list of positions on the slot machine.
Each specific line instance should have all the data and features to check if the player has won on that line. The implementation of the winning lines is the most complex part of this tutorial so be sure to get yourself some coffee and activate your brain cells!
Well, to be honest, it is not that hard to define the positions of the slot machine, that are part of the line, or to check if there are matching symbols on that positions.