WackyToaster's Recent Forum Activity

  • You do not have permission to view this post

  • You do not have permission to view this post

  • Hmm, maybe I'm understanding something wrong but wouldn't this work? (Pseudocode)

    	if X tapped -> { doThing(X); return;}
    	if Y tapped -> { doThing(Y); return;}
    	if Z tapped -> { doThing(Z); return;}
    
    	// nothing was tapped
    	doThing(Bail);
    	return;
    

    So, if everything that can be tapped resolves to false, you're left with "nothing was tapped". I guess you're sort of doing the inverse, and instead check "was nothing tapped" first, then handle all the tappable objects. But I think my version would spare you having to iterate over all objects that cannot be tapped and instead only iterate over the objects that can be tapped.

  • Whenever I see negative comments about C3 (mostly from users of it), it dumbfounds me.

    The biggest fans are often the harshest critics. And there's just valid criticism to be had. I don't think most people make these comments from a place of negativity, even if it sounds like it.

    However, I don't see an issue with cloning an official plugin for example, renaming it, adding it to your project and messing with its code that way, and from what you guys are saying, that's not possible?

    Yes, that's not possible. It used to be possible in C2, but it seems that exactly that lead to some people playing the blame game and finding Scirra at fault when, in fact, they are at fault themselves. It's just human nature to attempt to find blame everywhere else except one self, anyone who played any amount of League of Legends or Overwatch can probably write a book about it. Teams losing? Must be (the game's bugged) and/or (lag) and/or (unbalanced character) and/or (anyone but me). It's never just "Oops, I screwed that up. I'm the problem."

    Scirra also makes an easy target by nature since they are the company and they are getting paid. What are they supposed to do if a customer waddles in with their corrupted project due to a hacky plugin, blames them for it and expects it to be restored? Sure, as an individual you could easily say: "Lmao you didn't make backups? AND you messed around with a hacky, unsupported plugin? Unlucky buddy, learn from the experience, you messed that one up yourself." but as a company, in the end, you rely on people giving you money and ideally they are also happy doing so. Even if they give you a headache.

  • You can always email support directly.

    construct.net/en/contact

  • Is the object on the correct layer? If you put it onto the HUD layer at parallax 0,0 it should stick to the mouse cursor just fine.

    The mouse also has a "set cursor from sprite" action, you can try that.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/mouse

  • I'd say obviously if you pay for a month and then cancel, the month you paid for stays active. It would be wild if not, I can't imagine it working any other way. That's the purpose of the monthly plans afterall, for people who only use it for a month here and there.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Taps are defined gestures and also have single and double-taps. Basically, after the first tap, the engine cannot know yet if you want to perform just a single tap, or a double-tap. So it has to wait for a brief moment to see if you perform a second tap. That brief waiting period can make it feel a little bit laggy and wonky, which can be totally fine depending on the usecase.

    "Is touching object" fires instantly, because It doesn't have to wait for anything. You probably need to add a "Trigger once" though.

    Most likely that solves your issue, but we don't know for sure. There could still be an issue with your eventlogic.

  • I very much understand the problem, but sometimes having access to the code could just be helpful.

    If I encounter some edgecase in my project, right now my only option is to file a bugreport. And then maybe I get a fix. It could also get hit with a "difficult" which usually means I can expect this bug to be in limbo for the next couple of months. Or it gets shot down as wontfix because it's just an accepted quirk and fixing it would break every other project. A last resort would be to somehow work around it with event logic or game design, but that could easily just be impossible. And if that's the case, I'm just screwed.

    Meanwhile, I could theoretically just tear open the code and put the fix where I'd need it myself. Obviously with the full understanding that if I break something here, I don't get (official) support.

    Put it behind developer mode, make a big box that says "If you touch this, no support!". Make it a per-project basis so if I actually break it, I can just revert to the original plugin/behavior script. I'd argue anyone bold enough to tinker around with the code is smart enough to understand the ramifications.

  • Seems like that plugin has no javascript interface (yet?)

    At least the binary data object has though. construct.net/en/make-games/manuals/construct-3/scripting/scripting-reference/plugin-interfaces/binary-data

    So what you'd have to do in the meantime is create a little (async) helper function in the eventsheet that you call just for encrypting.

    runtime.callFunction("encrypt", [params]).then(() => {
    	// send via websocket
    }
  • I don't think there is.

    You can probably do it like so with events:

    1. Set global var "gettingLayouts" true

    2. Access the current layout name with the LayoutName expression and write it into the array

    3. Use the "go to next layout" action

    4. repeat until you run out of layouts, set "gettingLayouts" false, then go back to the first layout

    Quite convoluted and ugly, I'd not do it this way. Simpler would be to not dynamically create that array I suppose, but that means you have to update it by hand every time you add/remove a layout.

  • Perhaps the problem is the game design, if you're doing something inefficient like nested loops. It depends on your project and it's hard to say more without seeing exactly what you're doing, but Construct is definitely capable of handling 1000 objects smoothly.

    The type of game usually boils down to requiring a ton of collision checks.

    • all enemies with player
    • all enemies with all enemies
    • all enemies with all player projectiles
    • (optional) all enemy projectiles with player

    Doing this every tick, for 1k enemies is heavy. That's another thing that could be done... limiting the tickrate of the collision detection. Instead of doing it every tick, doing it, say, every 0.033 seconds which is equivalent of doing it at 30 fps. 30fps may be perfectly sufficient for this, but you'll have to interpolate the movement otherwise it will also move at 30 fps.

WackyToaster's avatar

WackyToaster

Member since 18 Feb, 2014

Twitter
WackyToaster has 25 followers

Connect with WackyToaster

Blogs