Rhindon's Forum Posts

  • Well THAT is something I wasn't aware of. That makes a whole lot more sense... *testing* ...and, well, it doesn't set the layer scale to 0. Now it just doesn't adjust the scale at all.

    I made a couple adjustments, including the one you suggested, but what I get is that the scale variable I use to track the Tween value still reads as 1 (the starting value).

  • I discovered that, having set the Value of the Tween to the ShakeTheGround variable, the Tween goes from 1 to 0 even though I set the end value as 0.5. The Tween is completely bypassing the end value.

    I've reviewed the Tween behavior page in the Documentation and everything I'm doing seems to check out. So I don't understand why it goes from 1 to 0 and not 1 to 0.5 as I had set it.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Okay, I did that...hit F12 and selected the Console tab. But I don't see anything relevant. I checked through the other tabs, too, and didn't see where I could find the info that's supposed to be logged.

  • What I'm attempting to do is use Z-Elevation to make an object appear to leap up above the layout and slam back down into the ground. THAT MUCH WORKS.

    The immediate effect following the object slamming into the ground is to make the layout scale down in size then "spring" back to its original zoom setting. The object hits with such a "force" that the effect is that it pushes the environment down away from the camera just a bit.

    The first half of this - "pushing" the ground away from the camera - which is to scale the layer smaller isn't working. I can't get it to progressively show the layer getting smaller. Instead, it appears as 0. Like it's not there. However, obviously, the Player object still moves around normally...just invisible.

    I've run some tests and I can set the layer to 0.5 through a separate action line. So it seems to be the way I'm trying to use the Tween that is the problem. Can someone help?

  • Ashley - Oooh okay. So my illustration of taping two pieces of paper together were accurate. Understood. Thank you. :)

  • - Thank you for your reply.

    I think I'm still a bit confused...

    By including another event sheet into the primary one (the one doing the including), does that mean that C3 runs through both event sheets as if all the events were part of a larger single sheet? I know I asked that originally but I want to be sure which of my questions were being answered.

  • I'm trying (hopefully) to optimize my event sheets to the following

    - Set up / game start (establishing details when a new play through begins)

    - Main (most everything happens here)

    - Extras (Functions, less-used events/triggers, etc)

    The main game happens all on one layout so one primary event sheet seems logical.

    But I plan on having a lot going on so managing event lines seems all the more critical.

    What I am wanting to understand better is how referencing (including) other event sheets actually works.

    I picture it something like taping another event sheet to the primary one that's doing the "including". In that sense, if correct, does that mean that the system is still running through event lines like both sheets were actually just one larger one?

    OR... Is there some special programming in the C3 architecture that knows how to reference the "included" event sheet only when needed but ignores it the rest of the time?

    For simple organization of event lines, there's still benefits either way and other pluses (like not having to copy event lines across multiple sheets... Sorta like Functions). But is the use of "included event sheets" at all beneficial to how fast C3 can run through events before starting a new tick?

    Thank you for your help and insight.

  • FYI "pick by unique ID" should be a lot faster. "Pick by evaluate" checks every single instance; "pick by unique ID" directly picks the right instance.

    In general it's best to use the most-specific condition that does what you want, since it may be specialised for the purpose.

    Understood. :) I don't think I have many conditions that would necessitate Pick By UID, but I will try to find ways to make it the way I do things. Thank you, Ashley and Dop. I'm always grateful for you both.

  • I don't know WHY this made a difference, but instead of doing this within the Function...

    - Virus object spawn Square object

    - Set Square object in a position relative to the Virus object according to data in the contained Array

    ...instead I did this...

    - System create Square object at a position relative to the Virus object according to the data in the contain Array

    I tested that for ONLY the first 36 squares (1 out of the four quadrants surrounding the Virus) and it worked.

    This makes little sense, but it works.

  • Yeah...it's strange because nothing has really changed other than that I'm using Functions and one less For Loop. And that calling a spawn object action + setting their positions all in the same even line. (Previously, I used conditions to test where inside the now-non-existent extra For Loop it was and then told it to position the newly spawned squares at that time.)

    I haven't changed the values in the Array - the only thing I do is reference them. They'll always remain the same.

    So, if I'm placing the very first Square, it'll call on Array.At(0,0,0) and Array.At(0,0,1) Both values are 15, respectively. So I would tell it to place the Square 15 pixels to the right and above the Virus object.

    .At(1,0,0) and .At(1,0,1) would be X=45 and Y=15...... Place Square to Virus.X + 45 and Virus.Y - 15.

    And so on. Whatever the value in the specific Array cell, that gets added to the Virus coordinate values to determine where to place the Squares.

    Since the Array is 6x6x2, the two For Loops each being 0-5 should cover the X/Y index values of the Array. The Array is contained with the Virus object, too, so picking the Virus object ought to pick the Array. ... I'll try to implement your suggestions further, but I'm not sure how I'm going to do that - rather, I'm not sure what I'm looking for by doing that.

    It's not under System object. It's Virus -> Pick by unique ID

    Ooooh, okay. Gotcha. I need to remember that. LOL

  • (Also, I don't see a "Pick by UID". I see "Pick Nth Instance", "Pick by Evaluate", "Pick by Random", et al. But no "Pick by UID". Anyway, apparently that's not the issue at hand after all.)

  • Okay, so, Pick By Evaluate I think is what you meant anyway... I thought you were suggesting a different System Event line. Anyway...

    I tested to ensure that the Virus.UID is getting passed to the Function by having some temporary text be set to the Function Instance Variable which holds the UID info. I know now that the UID is getting passed correctly so I know the Virus instance is getting picked correctly everytime the Function is called.

    The problem, then, is that the Black squares are not being positioned around the Virus object correctly.

    Using the For Loop to declare which cell of the Array I want to pull a value from, and then adding or subtracting that value from the X/Y value of the Virus, I tell it where to position the Black Squares. (It amounts to 144 squares in tight box/grid formation. The Array, itself is made up 36 X/Y values (36 on Z=0 for the X position of the Squares and 36 on Z=1 for the Y position of the Squares).

    As stated earlier, this worked in my pre-Function instructions. But now I can't get the Squares to position correctly. They ALL appear, but only in the original X/Y position of the Virus, itself, upon the Function call.

  • dop2000 - I figured out how to do that after re-reading the documentation and used Pick By Evaluate...

    ...but that didn't work.

    I'll amend it to try it as you suggested and let you know if that works as I'm hoping it to.

  • Hello, everyone.

    For the life of me, Functions - especially the newer implementation of Functions in C3 - has proven to be a challenge for me. I get the concept, but actually using them, and doing so effectively, still is something I struggle to wrap my head around.

    What I'm trying to do here is...

    When the Virus object with a "Green" designation is set, it generates a "field" of small black squares surrounding the Virus. Using an Array ("Green_SqrsData"), I pre-set values for where to position each black square. I know this works because a previous iteration in the code was working perfectly. Now I'm trying to stuff event lines away into a single Function to shave time off of tick cycles because this game is planning to have a LOT of objects working all at the same time. So faster tick cycles means faster gameplay.

    This brings me to my problem...

    PROBLEM: When a specific Green Virus is ready to generate a distortion field of squares, it calls on the Function. But IN THE FUNCTION, itself, it needs to know WHICH Virus object called on it. I need a way to PASS the Virus.UID to the Function so that the Function knows what Virus to spawn squares around. Now, the interesting thing is that when I run it like it is here, the squares (all 144) do spawn...oddly. They simply do not get positioned correctly per the data in the Array.

    WHAT AM I missing or how do I pass the Virus.UID to the Function?

  • Thank you for taking the time and bearing with me, Ashley. I'm very grateful. That should help me keep things manageable.