0plus1's Forum Posts

  • Selected other. I'd like more control over asset management (sounds, images etc.). Manual asset loading for example, so we can pull whatever we need and handle the loading screens ourselves.

    I realize this is a feature many of us could live without, but it sure would make development of asset-intensive projects less painful.

    +1 to this and to the events sheet features.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • After months I'm sold. Completely, to the point I'm investing a lot of time and resources to develop with construct2 which is bar none the best engine for html5, the problem is that is not programmer friendly. The problem is testing. Testing on iOS requires: "compiling"->transferring files to a mac->importing into xcode->compiling->testing same thing goes for Android (minus the mac part).

    If you are doing a complex app, the phonegap build service is a joke, there are too many functions that you are missing (ads, push notifications and so on) all thing that with callJS you can do.

    The problem though is that callJS cannot access the c2 code directly, relying on a hackish method of doing eval on the function.

    Now take this code:

    function showConfirm() {

        navigator.notification.confirm(

            'You are the winner!', // message

            function(button){return button;},              // callback to invoke with index of button pressed

            'Game Over',            // title

            'Restart,Exit'          // buttonLabels

        );

    }

    This is a phoneGap notification, the result cannot be read though eval. To read it I had to make the function set a global var outside c2 and the read it again with another callJS function, this took a lot of time as testing it required all the previously detailed steps. More than this callJS doesn't work in preview mode for the reasons detailed here: scirra.com/forum/localpreview-where-are-the-assets_topic50738.html

    As I see there are two implementation that you could do:

    1) Local preview that reads ALSO files from a fixed folder, where to put for example the callJS javascript file, or images lazy-loaded with one of the plugins.

    2) Integrated post-compiling function. A new action like callJS that calls a function/method/object that can access the c2 variables AFTER compiling.

    Like

    codeBlock->call myfunction or myvar set call myfunction

    then opening the "compiled" c2runtime file we find our function (or class) and from there we can code without passing through c2 anymore, including manipulating c2 variables, I understand that this is dangerous as setting a varible at the wrong time could lead to unexpected results, so it could be even undocumented as an advanced feature, but serious users could really benefit from this, which by the way already do with callJS (which is amazing) but it could became less tedious this way and could open tons of possibilities especially for mobile. Even an API could be a nice idea.

    I don't think these are too much work, and even if they are could attract tons of users indirectly, because the way I see it casual user tends to be happy with the free version, while "hardcore" users are the one that are more prone to shell out money for the licence, and nothing attracts that audience like a gallery of commercial products made with construct2 that could become a reality if the right crowd is attracted to this engine and starts developing with it. I don't want to detract from the amazing community we have here, that is full of talent (as the plugin section demonstrate) but as it is construct2 is not exactly a professional editor, but under the hood it's a professional engine. An external API could make a real difference here, just like local preview did <img src="smileys/smiley2.gif" border="0" align="middle" />

  • Ashley thanks, this is really interesting.

    So I could stretch the background based on the WindowHeight and Width properties myself and position all objects to the center of the screen and I would be done.

    Still there is another small issue, on the iPad everytime you change layout with scale mode the layout starts in the center and then goes to the left side leaving a trail, you already told me about clear background (which also impacts performance as shown in another tutorial). If I set the unbounded scrolling what happens then?

    To me it looks like this will happen:

    c2 still has the aspect ratio of 1.5 (iPhone). The layout loads, the canvas get resized, only this time the background covers everything (I imagine this happens BEFORE any of my actions) then I reposition my objects and I would have a "simulation" of native resolution, is this right? But the ghosting will still happen without setting the clear background right? DId I got this right?

    If this is the case this is really genious and you are one of the few frameworks that can support multiple aspect ratios out of the box!

    If I'll ever be able to finish my app I'll write a detailed tutorial on making apps for iOS because there are several issues to get around to and most of them require messing with the code.

  • Ashley

    The shown statusbar in a game is a clear indication of the game being made in html5 and Apple has been knows to reject apps based on that reason, the demonstration is that there is a script to hide every reference to phonegap before submitting to Apple. HTML5 are already borderline on the App Store putting also the status bar is just giving them an extra reason. So in short yes.

  • Ashley I'll try that, but my main problem is the ugly white column, so far I have two solution, for both I need your imput.

    1) Change the layout size as an action, I didn't see a way to do this, but maybe there is. If there isn't is it possible to do this with a plugin? What I mean is I have a layout that has a property of 100x100 I change it at runtime to 200x200.

    2) If the previous is not possible I could create two or more layouts in order to have different aspect ratios, but! Is the Window Size property a constraint? Or is it only used for the initial canvas size (before resizing)?

  • ASHLEY. Then you might have a problem. In my application (which has fixed elements) the resizing on the iPad destroys everything, meaning that the sprites leave a trail to the left size of the screen! Not only that, but the resizing creates problem with the injection of a new sprite (which is not your fault since it's a plugin but still).. is it possible then to have a conditional statement to change between crop and scale inside the code? To avoid building two times..

  • Ashley

    Yes! I know it sounds crazy, but I want to test for iOS if I can stretch from iPhone to iPad as the difference in width is not much.

    How can I do it? I tried searching in the html5 exporter for the function you use but I can't find it anywhere, it's the last piece I need to publish on the appstore.

    Thank you!

  • Is there a way to stretch the canvas to fill the whole window?

    Instead of scaling/cropping.

  • I chime in here.

    DO NOT work with 990x620! Hide the status bar.

    A game with the statusbar shown is an almost guaranteed rejection from the appstore.

    This was the reason why I told Ashley some time ago to make the statusbar hidden or at least transparent during export!

  • Seein the changes that you made for PG/AppMobi, are you exporting for PhoneGap or Cordova. As you may know PhoneGap has changed name and with it all the functions have been renamed to from the suffix PG to CDV.

    My project still uses PhoneGap as Cordova is not supported yet by plugins and other amenities. So my question is: "Are you exporting to PG or CDV functions?"

    I hope PG and I would like to ask you to wait to convert to Cordova until the situation is more stable.

  • Ashley iPhone and iPad. Also I'm not the only one who has these problems, it's not really your fault, it's phonegap that is a mess in the audio department, it would be so easy to fix this implementing the low latency audio plugin directly into PG. If you read here: scirra.com/forum/furries_topic49737.html

    you'll se that the situation is the same on Android.

  • For whoever needs this I posted a tutorial: tutorial on the subject of audio in phonegap.

    I hope this will be helpful to somebody.

    <img src="smileys/smiley1.gif" border="0" align="middle">

  • I would like to say that this is the single most useful plugin for c2.

    The way Pode handled this is pure genius and simply works. If you have a large application, especially for mobile this can turn c2 into a professional tool because it adds resource managment.

    I offered a reward to Pode because it saved my project that I was about to throw away and convert to another framework, he's such a nice guy that he didn't accept anything.

    Seriously guys this tools is a lifesaver, until Ashley write some sort of resource managment if you are developing for mobile this tools is compulsory for large projects and can drastically increase fps in slower phones.

    Kudos!

  • Well, I finally got this, turns out I made a mistake.

    The new phoneGap (renamed Cordova) has two different js, one for iOS and the other for Android which are not interchangable. Be careful when developing for both!

  • Ashley I fixed it but I need your input. Basically c2 works perfectly, the problem is that this event:

    document.addEventListener("deviceready", function () {},false};

    Never fires! I tried also with true at the end after reading a question on stack overflow. But with no luck.

    I ended up using jQuery .ready and everything works as expected. It's very strange nevertheless as the standard example of PhoneGap works perfectly with deviceready.

    I hope I helped someone to avoid wasting 2 hours trying to figure out this thing.