Colliding



  • Add a behavior called “colliding”. Check if object A is colliding with object B. Returns true or false.

    This would be a LOT more efficient than looping through 750 objects every frame to check if any are less than a certain distance fro, and object.



  • @Thecheater887 There’s Collided (outputs once when an object starts colliding with another), there’s Stopped Colliding (outputs once when an object stops colliding with another) and there’s While Colliding (outputs every frame as long as the two objects are touching).

    Is While Colliding not what you need? Also since when does a behaviour output “true” or “false”? All behaviours, if they output anything, output a number.



  • @Aidan-Oxley If you can solve this scenario using a version of that, then yes.

    I have an empty object. If it is colliding with a spawned object, it won’t spawn an object there.

    I have Collided changing Box Container to 1 if it is touching a spawned object.
    I also have Stopped Colliding changing box container to 0.

    Collided is never triggered.

    The empty object uses custom rotation and standard movement on a 0 duration.



  • @Thecheater887 Are you German?



  • @Thecheater887 Is this empty object the spawner of the spawned object? “It won’t spawn an object there”, where? I might need more details about exactly what you want to happen.



  • @Deeeds said in Colliding:

    @Thecheater887 Are you German?

    Haha, no lol. Fixed that one up. Sorry!

    @Aidan-Oxley said in Colliding:

    @Thecheater887 Is this empty object the spawner of the spawned object?

    ...Heh?

    “It won’t spawn an object there”, where? I might need more details about exactly what you want to happen.

    The empty object that spawns in the enemies and dynamic effects (well call it the replicator) rotates around, and follows the parent. Every frame, it rotates 14.6 degrees, and generates a random number between 0 and 50000. If the number is less than 10000, it spawn a special effect. If it’s less than 12500, it spawns a trashmob enemy, etc. In order to not stack 8 of something at once, I attempted to implement a system taking advantage of collisions to determine whether or not the Replicator was already “viewing” (on top of, colliding with) an object it had previously spawned. If the Replicator is “viewing” an object it had previously spawned, it won’t spawn another object on top of it, or shouldn’t, rather.

    If the Replicator is “viewing” an object it had previously spawned, it won’t spawn another object on top of it, or shouldn’t, rather.

    This is where my problem lies.

    I can’t get the “collided” event to trigger, signifying to the replicator it is not a clean area to spawn.



  • @Thecheater887 This is EXACTLY the kind of problem that stems from not being able to store a reference in your replicator to the instance it has spawned.

    Instead, you have to use tags. Which means ALL objects with that tag will say they're colliding, if they are. So you won't be able to get the most recently spawned instance this way.

    You'll have to make other logic that does that, basically a manual filtering of all those with the given tag. Probably using a convoluted approach to attributes that know their order, or a sequence of live values in an array or some other approach that gets around the lack of referencing.

    It boggles my mind that nobody has bothered to write up at least one of the ways to get around referencing. Everyone knows it's an issue.



  • @Deeeds you’ve been given multiple ways by multiple people, multiple times. But you always seem to just dismiss them for whatever reason.



  • @iTap-Development What are you talking about?



  • @Deeeds “It boggles my mind that nobody has bothered to write up at least one of the ways to get around referencing. Everyone knows it's an issue.”



  • @iTap-Development Let me help you learn to use google:

    0_1515011237498_Screen Shot 2018-01-04 at 4.26.50 AM.png



  • @Deeeds you could probably have a full written account twice if you combine all mine and other’s posts.



  • @iTap-Development I still don't understand your way of doing it. You never explained it.

    "arrays... something... something ..."



  • @Deeeds said in Colliding:

    @iTap-Development Let me help you learn to use google:

    0_1515011237498_Screen Shot 2018-01-04 at 4.26.50 AM.png

    Except, you didn’t use “write-up” as a noun!

    “bothered to write up at least one of the ways”

    This is a verb phrase. The action of writing “one of the ways to get around referencing”.
    To put into writing.

    Here’s your sentence modified to fit your definition:
    “It boggles my mind that nobody has bothered to DO A write-up OF at least one of the ways to get around referencing. Everyone knows it's an issue.”

    just saying😉



  • @Deeeds said in Colliding:

    @iTap-Development I still don't understand your way of doing it. You never explained it.

    "arrays... something... something ..."

    Go re-read😄



  • @Thecheater887 So you don’t want the replicator to spawn a new object while I spawned object isn’t already on top of it. And you can’t disable spawning for a few seconds, or however many seconds it might take for the spawned object to go away, after spawning an object?



  • @Aidan-Oxley Spawned objects can only be destroyed by the player or by exiting the play area.

    The player can move in 8 directions.



  • @Thecheater887 Hmm, the time it takes for spawned objects to leave is quite random. Are you sure none of your objects are scenery, if the collision just won’t activate? I would’ve expected that the object constantly rotating might even spam the collision behaviour.



  • @Aidan-Oxley All passive walls.



  • @Thecheater887 I’ve got no idea why the collided behaviour isn’t triggering. You could try reversing how you’re doing this, rather than detecting whether there’s an object and if there is don’t spawn another, have the spawned object tell then replicator when it has left? (If the player destroys it, tell the replicator the second it has died, if it has left the area, also tell the replicator etc). So the replicator will automatically turn off its own spawning after spawning an object, and it has to wait until a spawned object turns its spawning back on.


Log in to reply
 

Looks like your connection to hyperPad Forum was lost, please wait while we try to reconnect.