jwilkins's Forum Posts

  • Everade ah! That seems so obvious now, in my head I assumed that this didn't need DT because behaviors already utilize DT and I was using a behavior, but that's not the case.

    This function is not called every tick, it is called while the player is inputting a movement direction (which I suppose is every tick that it is needed) and deceleration is handled by the 8-Direction behavior. Would I still need use "TimeElapsedSinceLastExecution" in that case?

  • I have a project using the 3D camera, a twin-stick shooter. When the player inputs movement (via either the keyboard WASD or the Gamepad Analog stick) it runs this function:

    It needs to do this to calculate the angle of the camera and the movement direction, and also lerps to the players maximum speed.

    This works fine provided the system keeps running at a solid 60FPS, but if it drops, the players movement stutters a great deal and either very slowly or never reaches full speed (but mostly only when running it exported, not when previewing it?)

    Any idea on why this is happening and how to fix it? I am half tempted to rip the 8 Direction movement out.

  • oosyrag Thank you so much, this works perfectly, and I appreciate you following up to track down that layout issue. Very appreciated!

  • dropbox.com/scl/fi/z09ckm4w7a2jsb8emsw5u/objectselfcollisionsexample.c3p

    I appreciate this a great deal! Unfortunately there must be something else going on because copying that solution exactly (and turning on the random UID pick) still ends up destroying all instances.

    I have a theory that it could be due to my procedural generator. Currently the generator fills out a tilemap, and based on a dice roll it will create a random number of BluePrintGenerators all at the same time in this process.

    In your example the objects are created one at a time over time, could this be an issue?

  • Thank you for the reply. I've used those actions in other ways but not for this specifically.

    I tried this and it still does not work, now it's not seemingly destroying any of them:

    If I place it outside of the function it does delete them over a couple of seconds... but it deletes ALL of them but one.

  • I know this question has been asked many times before, and I have looked into those threads and used them as the basis for what I have created, but I cannot seem to get this to work.

    I have a BlueprintGenerator object, which is also the only object in the BluePrintDifferentiator Family. I spawn these when I generate a dungeon level, and now I want to check for any BluePrintDifferentiators that are overlapping the current BlueprintGenerator object and destroy them.

    But instead this just deletes ALL of them. There are no BlueprintGenerators in the layout after this runs. I thought that maybe the issue was that the BlueprintGenerators flagged themselves as BluePrintDifferentiators that are overlapping (hence the UID check) but this did nothing.

    What's wrong and how do I get the desired affect?

  • Recently started retrofitting a project that was using the persist behavior to keep track of this sort of thing. I can't use persist anymore because I am writing my own save system as well.

    I feel like I am overcomplicating this, and I don't know the proper terms to google in order to find useful information, so any help or resources on this would be very appreciated. Anyways, here is a scenario to illustrate:

    I have a "BarrierSprite" and an "EventDictionary". This barrier prevents the player from moving forward until something is accomplished. Currently my barrier considers the following:

    1. What is the name of the event that triggers me? Typically this is done by a player colliding with an invisible object, or killing a specific enemy, or collecting an item.
    2. Does the barrier trigger another event when it is triggered?
    3. Am I turned "on" or "off" by other events? In other words are there any events that prevent me or are required to be triggered before I can be triggered?

    With the persist behavior this more or less worked fine, but even then it felt bloated and now that I am trying to track this myself its not ideal.

    Tagged:

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You do not have permission to view this post

  • Couldn’t you just do “$”&TotalCash/100

    *facepalm* yeah... I could. Thanks!

  • Context: I am storing the players money as a whole number (lets say, 894) and I want it to display as "$8.94" in the UI.

    I start with:

    "$"&TotalCash

    But I don't know where to go from there to add the "." before the final 2 characters in the string. I know that "left(text, count)" will get me the index, but how do I insert that in? Thank you!

  • Urgh, was really hoping this wasn't just a quirk of 3D in Construct and that I was missing something.

    I think I'm just going to design around the issue for the time being. I did find what I think is the effect you were mentioning but it states it must be the only effect in use on the object which is a no-go for me.

    The main gameplay issue I had with this was that large attacks at the default Z Elevation would obfuscate too much of the enemies underneath me when it didn't render the transparency. I can solve this by adding a value to the attacks that lets me customize the Z elevation and spawn them lower, so more of the enemy is seen. It might not look great all the time, but it shouldn't impact gameplay much at least.

  • Here's another example of the same issue, the dagger stuck in the player's billboard sprite is clipping the player with it's transparency:

    This only seems to happen when the sprite is closer to the camera than the object it is clipping through, which makes some sense since Draw Order is set to Camera Distance for these layers.

  • Here's a screenshot example of my issue with the problem circled:

    Based on the 3D documentation and best practices, I believe I have properly setup my layers, but my understanding is that this shouldn't be an issue for 2D objects in the first place. 3D objects with transparency and 3D objects with no transparency need to be in separate layers. I have all 2D effects on a separate layer as well:

    This issue is generally not that big a deal outside of sprites that I scale up and that have large areas of semi-transparency.

    I should also note that I have tried moving the "2d Effects" layer (where the sprites are located) both above and below the opaque/transparent layers to no effect. Some of the 2D sprites use additive blending as well.

  • My biggest issue with Persist behavior is that "Reset persisted objects" action resets all objects on all layouts - which makes it pretty much unusable in large projects.

    There are also lots of bugs when objects with Persist behavior are in hierarchies, restored from save state etc.

    What are some of the issues you've run into regarding saves? I'll need to keep an eye out on those in my project as well. I did run into hierarchy issues on my end too, which I had to solve with some failsafes.

    Persist feels more and more like it is more trouble than it's worth. I've avoided using it in other projects because of it's monolithic nature, and only did so this time because developing my own tracking methods was previously such a pain that I figured this would be better.

  • You would think that the straightforward nature of the Persist behavior means it works as intended all the time right? After all, it barely even warrants a page in the documentation, and it doesn't have any parameters. It just makes things remember how they were when moving back into a layout after all.

    Except it does have at least 2 issues that do not work as expected and are not documented anywhere in the behaviors page:

    1. It doesn't work with the Pin behavior. I can at least understand that this is because Pin is dependent on 2 objects, and there is no guarantee that both objects also contain Persist... but if they do, it should work properly, or at the very least this should be noted in the documentation instead of forcing users to figure it out on their own, since (to my knowledge) Pin is the only built-in C3 behavior that contains an incompatibility with Persist.
    2. Objects with Persist do not remember their template names. Unlike the previous issue, I don't see any reason for this, it's just something you have to find out the hard way on your own. Yes, it's easily worked around by simply storing the templates name in a local variable, but I shouldn't have to do that, or (again) at the least this issue should be documented.

    -Signed, an annoyed dev who spent a couple hours tracking down why his supposedly persistent templated doors didn't work and could not be picked using previously working code.