Stweve's Forum Posts

  • Is WKWebview supported? I've encountered issues with SpriteFont+ being used in WKWebview and preventing layers from showing.. it would be nice to not have to deal with that.

  • I'm in the same boat, trying to migrate my app from Canvas+ to Webview (e.g. from Cocoon to elsewhere)

    Did you find a suitable solution, Simple Games? I'm trying to get nativestorage working, which may lead to another thread I'd like to prevent.

  • So, so far, it seems that updating my Cocoon.io app with a PhoneGap version (going from Canvas+ to webview) blows away LocalStorage, as if I'm using a new browser. From what I understand about Canvas+, this would make sense. I haven't gotten any opinions from anyone here, but I'm assuming now that there is no way to upgrade your app from Canvas+ to Webview and expect LocalStorage to still be there.

    Currently, I'm working around this by cracking open the APK, inserting new Construct code and resigning it. This is a horrible workaround and will be invalid when Google changes their API level mandate next month (my cocoon apk is stuck at API Level 25). But at least I'm able to address some field bugs which are due to 3rd party technologies failing me.

    It seems the resolution to this issue (without loosing the user's LocalStorage) would be to release an update that puts the user's LocalStorage data in the cloud (or some other common storage area if possible).. But I'd have to do this utilizing the workaround of cracking open the APK.. so I don't think I can add any new server side plugins.

    Does anyone know how to move LocalStorage user data to the cloud, or to a local area that is common between browsers? Without needing a server-side plugin?

    Lesson learned on Canvas+.

  • My C2 app, for Android, is currently public and was compiled with Cocoon. Cocoon is effectively gone right now, so I've had to get my app to build in PhoneGap to upgrade the existing Cocoon app for my users. But, there is one critical issue holding us up. No C2 Local Storage data is retained after the users updates our app.

    My question is: Should I have any expectation of keeping the user's data when upgrading a C2 Canvas+ Cocoon.io App to a new version built with PhoneGap (and the default Webview)?

    I can get into the nuts and bolts of my particular configuration to further this discussion, but I wanted to get an idea from the community first of the feasibility. If this issue is no different than switching web browsers and expecting user data to be there, I won't kill myself trying to figure this out for no reason. And, yes, I know that Canvas+ is not supported by C2.

    Can I preserve Local Storage from Cocoon to PhoneGap somehow? Or, do I need to pray that Cocoon comes back to life for a day so that I can release one more update to move the Users' data to webstorage?

    Thanks for any help.. I couldn't find this predicament on a search but someone has to have faced something similar.

    -Steve

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks dop2000 for the pointers and kriand for taking the time for an example! It's working well now.

  • I have a function that displays achievements. There is an array with Achievement ID, Title and Flag. When the right conditions are met, a parameter is passed to the function for the achievement ID, then the function displays the Title for the achievement in a popup and flags the achievement as "done" in the array. The popup is about 3 seconds long.

    There may be conditions where 2 or 3 achievements are triggered (for different IDs) in the same second. In this case, I do not want all 3 popups to fire simultaneously, but one after the other (with popups being about 3 seconds each).

    I tried the following but it seemed to fire the same achievement twice:

    Example:

    <if conditions are met for achievement ID1>
    Call Function "Achievement" (1)
    	
    On Function "Achievement"
    	If AchDisplay=False then
    		Set AchDisplay=True
    		<Do popup and array stuff>
    		Wait 3 Seconds
     		Set AchDisplay=False
     	Else
    		Wait 3 seconds
    		Call Function "Achievement" (Function.Param(0))
    

    Not that a circular reference is the best idea anyway.. but recalling the function again with the same param did not fly. Grateful for any ideas. Plan B is to display simultaneous Achievements in varying areas of the screen, but it looks crusty. Thanks, -Steve

    Edit: I see now that I'm experiencing this:

    Note about using 'Wait' in functions

    Note that in a function call, if you use 'Wait' then the function has finished by the time the next action after the 'Wait' runs. This means the function parameters are no longer available. You could work around this by copying function parameters to a local variable.

  • heheh. Yeah, its a bit of a bugger to sort everything. It's for a clickable onscreen keyboard (sprites on top of a keyboard bitmap) and I need to add multiple keyboard types/layouts.

  • Here's my predicament and then the workaround I'm using. Let me know if you have a better one!

    I have a group of about 100 strategically placed, clickable sprite instances on a layer. They are all instances of the same object. I'll call this sprite1. I need to add a second set of 100 instances for a sprite2 object, with different placement. Only one set/object would be active at a given time in the app. Doing this all on the same layer would be a big mess in the editor if I wish to work with only one set of sprites. You can lock a layer but not an object.

    I'd like to do this all on the same layer because:

      - I have enough layers already
      • Adding a layer would change layer numbers for other layers and I'd have to scrub the events and adjust
      • I will probably need to add more objects/sets at a later time

    But the problem is managing it in all in the editor. My workaround is:

      1. Create a test layer called "------" as the top layer 2. If I want to edit sprite1, click sprite 2 in the editor (which highlights all instances) 3. Move sprite2instances to the ------ layer in object properties 4. Edit sprite1 instances as needed 5. Move sprite2 instances from the "------" back to the active layer

    Is this how you would do it?

    I'd really like to use the same object for all groups of instances but I'm not going to go there.

  • My pleasure!

  • I went with group disable to manage this, but was splitting hairs without knowing it. This was all to improve performance on older devices (e.g. Note 4 or older iPads were very slow) but it was WebGL effects (tinting on spritefont objects) causing the slowdown as opposed to collisions.

  • This app quizzes the user on Keyboard Shortcuts for the "Pro Tools" audio recording app. It uses an onscreen keyboard and other bits.

    Google Play

  • This app quizzes the user on Keyboard Shortcuts for the "Pro Tools" audio recording app. It uses an onscreen keyboard and other bits.

    Apple AppStore

  • I have an app out there (made with C2) that quizzes the user on Keyboard Shortcuts for the "Pro Tools" audio recording app. It uses an onscreen keyboard and other bits. Kind of a niche demography but hopefully people that work with Pro Tools find it useful.

    Anxious to add more features if there's interest after the next while, after getting the word out there a bit.

  • Just in case this scribble is useful to someone else....

    I'm using a workaround. I need to display 3 logical columns of text to the user, so I'm using 12 actual columns in the grid. To represent my text column 1, I use Columns 0-2 (y 0-2) in the grid. The cell sprite and text objects are pinned to column 0 zero and set with the width of GridCtrl.DefaultCellWidth*3. Then I pin the next cell sprite and text to Column 3 in the grid with the desired width multiplier and so forth.

    I've found my table (about 200 rows) is a bit klunky, though.. I think I'm outside of the intent for this plugin, though it is great.

  • seem to be getting a hang on "Loading game for the first time" in multiple browsers.. have let it sit for many minutes.