In-app purchases on iOS! You can now sell products inside your iOS applications, through the Apple AppStore.
We give you a very comfortable Pascal API to do this: TInAppPurchases class in the CastleInAppPurchases unit. And it works 100% for both Apple AppStore (on iOS) and Google Play (on Android), so you can really comfortably develop mobile games with in-app payments. Both “consumables” and “non-consumables” are handled.
Read the new documentation about how to show and interpret FPS, it was improved in many ways.
You can now display FPS using
Window.Fps.ToString. It accounts for the fact that we may be sleeping (
Window.Fps.WasSleeping, possible when
Window.AutoRedisplay = false), and always looks sensibly. It may show “no frames rendered” or “no need to render all frames”.
--no-limit-fpscommand-line option is automatically handled by your games (if you let the build tool to autogenerate the program file, or you explicitly use
While you may not often need to call these methods explicitly, they provide a very important internal feature. Every
TCastleSceneis now fully aware where is it placed with respect to the world, even when it is under a series of transformations. So this makes various things working correctly in all cases of transformations: the physics, X3D Billboard nodes (see e.g Text3D within the wyrd-forest demo).
New unit CastleDialogStates and new feature MessageOKPushesState allows you to use modal dialogs a TUIState descendants, and thus have easy modal boxes working on all platforms, including iOS. Read the manual for more information about TUIState usage.
Some tiny new features: build tool defines
CASTLE_IOSwhen compiling for iOS (to easily detect any of the 4 platforms (os/cpu combinations) representing the iOS target), TCastleEdit cooperates with the clipboard (Ctrl+C / Ctrl+X / Ctrl+V work), fix logging long strings (> 4k) on Android, use Lazarus
ocoRenderAtDesignTimeautomatically, and probably more:)
I will post some more news soon (hopefully this weekend 🙂 ), about some exciting new plans for the engine. I want to start 2018 with a bang (actually, I want to end 2017 with a bang!), and I want you to know what I’m doing. So, stay tuned for the next post where I will lay out what I’m thinking about 🙂