citron2010's Forum Posts

  • Touch should be enough, but bear in mind Touch can do more than just a mouse can. You might have already seen this quote from the manual:

    Use mouse input

    If enabled, mouse clicks will simulate touch events. Clicking and dragging the left mouse button will simulate a touch along where mouse dragged, and single clicks will simulate taps. This can be very useful for testing touch events work properly on a desktop computer with no touch input supported. However, only single-touch input can be simulated with a mouse, and a mouse is much more precise than a touch, so it is still best to test on a real touchscreen device.

  • Start a timer then only allow the action if the timer's "is timer running" expression is false.

  • This is the order of events according to the manual:

    On performing a successful purchase:

    1. On purchase success
    2. On transaction finished
    3. On product owned

    So I believe the safest option is to give the IAP only "On product owned"

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Maybe check the text input's "is focused" condition and move the other elements down it it's true?

  • I've only tested IAPs on iOS TestFlight so far and not on Google Play, but just wondering whether you're giving the IAP "on purchase success" when "on product owned" or "on transaction finished" might work better?

  • Could you place another sprite on top that starts at zero size then grows to entirely cover the original explosion?

  • Thanks to Ashley for solving this.

    If you request both permissions on iOS, it doesn't work but you only need to request one and both will be requested and, if the user agrees, will be granted.

  • You do not have permission to view this post

  • igortyhon - thanks for all this info. I had similar questions myself.

  • I'm guessing here - perhaps you could try simulating both jump AND either left or right when your jump button is released?

    construct.net/en/make-games/manuals/construct-3/behavior-reference

  • Interesting idea. That sounds more feasible, but I still need to figure out: 1. How to avoid bombarding the player with download requests, 2. Performance, and 3. How to stitch together the recordings. I'll see what I can do.

    I don't think you need to bombard the player - I was thinking that you might be able to use the AJAX plugin to read the recorded video via its URL. From that plugin's page:

    Binary data

    The AJAX object can receive resources as binary, and also post binary data, using the Binary Data object. This is also useful to fetch local resources like canvas snapshot URLs or video recording URLs, and load them in to a Binary Data object to do something else with them, like save it to storage or upload it to a server.

    So:

    1. Create an array with 30 entries
    2. Record 1 second
    3. Store its URL in the array
    4. Delete the last entry (i.e. the 31st) every time a new video is logged
    5. Player clicks the download button
    6. Loop through the 30 entries in the array
    7. Use the AJAX plugin to retrieve each clip via its URL
    8. Some magic here to stitch all the clips together (might need raw JavaScript)
    9. Serve the resulting 30 clip to the user as a download

    That might solve the problem of not wanting to prompt the user to download every video, but you might have a similar problem requesting permission to start the recording. This is from the Video Recorder manual:

    For security reasons, browsers will prompt the user before the recording starts. To avoid the prompt annoying users, this action may only be allowed in a user input trigger, e.g. On button clicked, On touch start etc.

    And I'm not exactly sure what that implies!

  • I’m wondering whether you could record in 1 second chunks, delete any older than 30 seconds, then stitch together the last 30 when the user makes the request. No idea if it’s possible though!

  • Tested on an Xcode iPhone 15 simulator with the same result.

    Then tested (as a debug APK) on the BlueStacks emulator on Windows) - this seems to work - I get four alerts (2 request permission alerts and 2 permission granted alerts) although I didn't get an alert from the OS like I do on iOS. Also, if I tap the screen again, I get the alerts again confirming that the app is still responding to inputs unlike on iOS.

  • As controller support on mobile isn't working at the moment, I thought I'd try controlling my game with the mobile's sensors and built a quick test harness:

    drive.google.com/file/d/15uTTQvS-RgYV_vkC-Jpw5DXbnhiEDun6/view

    Exported to Xcode and tested on my iPhone

    Essentially, when the screen is touched, it requests both Motion and Orientation permissions.

    This iOS alert then pops up:

    I select Allow, but nothing happens.

    The project should pop up an alert after each permission is requested and if either permission is granted or denied, and if the former, should start displaying readouts from all the sensors on the screen. But none of these alerts are displayed and nothing happens if I tap the screen again - it's almost as if it hangs as soon as permission is requested.

    Am I doing something wrong?

  • Tested an IAP in TestFlight last night but it didn’t work. A quick Google suggested it was because I’d not provided my tax and banking details to Apple which I then did. Checked this morning to confirm they’d been accepted then tried the IAP again and it worked. Deleted and reinstalled the app, tried the IAP again and it said I already own it and asked if I wanted to apply it again. That also worked. Reinstalled again but this time tried to restore the purchase - that also worked. There’s a delay of a few seconds when purchasing so just want to animate the IAP button to reassure the user that something’s happening. Also just want to check all the alerts are triggering at the right time and with the right text. So I’m fairly close to start opening it up for beta testing. Now need to do similar for the Google Play store.