Millis's Forum Posts

  • 7 posts
  • The way I do it is every time I touch an object that start an animation, I set a variable I called "Active" to True, and I have another condition under every Touch event to trigger only if "Active" is false. So once any animation is playing (="Active is true"), no other touch event can be triggered.

    I then set "Active" back to false once the animation end (you can even use "on any finished", if is applies to all animations).

    Hope I understood your problem correctly though :)

  • Hi citron2010, how do you check if the product is owned every time a user start the app? Do you always call "Restore purchase" at the start of the app? Because for me the "Product owned" or "Has product" do not work without first calling "Restore purchase". Or do you use local storage to store the information about the purchase? I have created a separated thread with this issue in case you need more details:

    construct.net/en/forum/construct-3/how-do-i-8/implement-mobileiap-ios-184218

    Any help would be greatly appreciated. I haven't found the solution yet. I still don't think storing the purchase information to local storage is the way.

  • I probably won't be much of help, but my tip - I would message the developers of the plugin directly. Especially if you donated a few $ to them, they should be willing to help, they must have encountered it. I remember looking into the plugin back then and I remember they specifically addressed the performance issues with phones in some early versions. But maybe it has changed recently. I have published my first iOS game recently (not using this plugin, so that's why I can't be not much of a help) so now I get how much you have to optimize VRAM memory for older mobile devices, which I didn't realize before - so now I'm also very interested how to do multiple skins on animated characters in Construct 3 to work on older phones, so please, if you find a solution, post it here as well for me :) Thanks!

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I remember having a similar problem on iOS, but in the end I didn't use the center alignment, and now I tried to replicate it on a new project but it works fine (with the default sprite font that is included in Construct). Does it do only with the price (i.e. with text generated by a function), or if you add new text field with plain text the problem is the same?

  • Hi all,

    I was trying to implement MobileIAP into my game, and I succeeded to a certain degree (the game is already published on AppStore and the IAP purchase and restore purchase is working), but once purchased (or restored), I had to store the information about the purchase to a local storage, because I failed to get the information on new app start from the appstore using Has product. I would appreciate your help with this - if someone has more experience with it, what do I do wrong, because I haven't found the answer anywhere yet.

    The way I thought I should do it, and I even found a .c3p example file I believe from the developer of the MobileIAP plugin himself (very old file though), which had it the same, was this:

    The product registration was successful, the price was set successfully, but the "Has product" function did not trigger true (even though I had the product, because the "Restore purchase" did trigger "Has product" successfully).

    I found on some forum that there was a problem with Has product in a past, especially because it is false at first and only trigger true after an unpredictable delay, so a new function On product owned was introduced. So I also tried to add this to a loader layout:

    Didn't work. It seems like both Has product and On product owned trigger only after I call Restore purchase first (even though I understood from the documentation that at least On product owned should also trigger "on startup when the product was previously purchased".

    I also tried to wait up to 10 seconds before I go to the next layout to give it a time to trigger, but it didn't help. I also tried to include the On product owned function on the next layout after the loader, but it also did not help.

    How do you guys do it? Does On product owned / Has product work for you without calling Restore purchase first?

    I thought I should not call Restore purchase on every startup, as this might prompt user login screen (at least in testing when not logged in), but maybe that is the way to do it? I mean, all ios users are logged in all the time I guess, so it whould not bother anyone. I dont't know what Restore purchase do when offline though. My understanding was that Has product should work even offline (once purchased) as it gets the information from the local encrypted appstore storage. And Restore purchase button is there in case you re-install the game to a new device and want to get this information from online appstore server and then store it offline to the device. But maybe I understand it all wrong.

    It is also possible that the Has product did not work on test environment only (although I was testing it in Xcode with both StoreKit and in Sandbox with connected device and also through TestFlight with external testing and nothing worked).

    Regarding the Product ID, Appstore connect settings, development certificates, I had all setup - as I said, everything else was working, price was updating, and I released the app after (using local storage to remember the purchase) and it passed the apple review. But ofc there still might be some other problems causing the Has product to not work, and that's why I'm here :) Anyone has experience with this? Anyone has currently published iOS app with successfully implemented MobileIAP and be willing to share? Thank you so much.

  • Hi dop2000, thank you for your reply, I see no issue doing it that way, I'll give it a try. I'm still curious why there is no option to change that behavior from the event sheet, as I can imagine someone would like to be able to turn it on/off based on some events, but for my game, I'm perfectly fine with the solution you proposed, so its just my curiosity now, in case someone who knows stumble upon this thread :) Anyway, thanks!

  • Hi,

    in MoveTo properties there is a "Set angle" property, which is checked by default. If I manually place the object to the layout and uncheck it, it remembers, and all the future instances I spawn have it unchecked. But I don't want to place any instances of the object to the layout when it starts to limit the vram usage at start of the layout to make the layout start faster (the object has a lot of animations). When I spawn the object with an event for the first time during layout runtime, it has the property "Set angle" checked by default and it makes my object turn upside down when it's moving (which I don't want to). I don't seem to find how do I disable "Set angle" with an event after spawning the object (its not in MoveTo: properties). If I create the object manually, uncheck it, then delete it, creating it manually again still have it unchecked, so that it remembers, but spawning it with an event still have it checked again. Any idea how to handle this?

    Thank you,

    Tomas

  • 7 posts