Spawning
-
I want to spawn objects on random places but I don't want to have more than one object in the same place, can someone tell me how I can do this?
-
I could only guess that this will work...
Assuming you will have a limit to the number of objects at a time and assuming that that limit is 25, I would create an array with 25 slots. The first value would be the position, and you would format it as x, y. The next 24 values would be 0, but would be replaced whenever a new object is spawned.
You will need a lot of logic behind combining and trimming the text, and in general, the reason the array will have to be so uniform is because you will have to be able to do logic with values not yet existent. To get values such as 24 to 24.00, you may want to experiment with combining and trimming text behaviors, or you could just round everything and put it on a grid. Your choice.
And if you don't understand, tell me and I'll make an example project sometime over the next few days...
-
@Stephenn You could make them unpassable physics so they push each other out the way, otherwise it would get pretty complex.
-
They are unpassable.
-
@GameCRAZY I don't really understand what you are saying to do, here is what I did
-
@Stephenn Well, does it work? Tell me if you would like me to make you the project...?
-
@Stephenn You could use dynamic attributes to store whether an object has already been spawned, assuming you don't need to spawn any more after the objects have moved or been destroyed. For example, you could use combine text to combine the X and Y spawning position with a space in between, and get that dynamic attribute. If the attribute is not equal to 1, spawn an object at that position and set that dynamic attribute to 1. If the get attribute was equal to 1, try again. I think it should be something like this:
It's not the most efficient way because it can loop a lot if you have a lot of the grid filled already, but it's pretty simple and this also lets you set certain areas to be blocked from spawning in. For example, if you don't want an object being able to spawn at 14,12, you can set the attribute "14 12" to 1, and then when something tries to spawn it'll get that attribute, see that it is 1, and pick a different position.It isn't efficient but it is pretty simple behaviours so shouldn't cause too much lag, just make sure you don't run the spawn behaviour more times than can fit in the grid, otherwise it'll get stuck in an infinite loop looking for places to spawn.
-
Ok, I am going to bed right now, I will try tomorrow and tell if I can get it to work, thanks
-
I can't seem to get it to work
-
@Stephenn Give me till Saturday night... I will comment when it is published to the hub.
-
Thank you
-
I've created a working one. It simply uses an array with all the possible positions you want the object to spawn (and because of private messaging I have the array of positions @Stephenn wants for their project). The object will move to a random position given from the array, then delete the position from the array. If the array has nothing in it, the object will destroy itself. Here's the link:
http://bit.ly/2qcqa76 -
@Stephenn mine works too: http://bit.ly/2qboXgz
But Aidan's is probably better since it doesn't loop (although you have to enter every position in the array for his). -
@Jack8680 entering all the values actually wasn't that hard. Did them all for the first bunch of x values then just copy and paste with a new x value.
-
@Jack8680 I can't get your link to work
-
@Stephenn copy the link and paste it into safari, works for me.
-
Ok, so it worked, it just loaded a blank page but I opened with hyperPad
-
I loaded it and it plays, but I can't see any behaviors in it
-
@Stephenn sorry, forgot to say they're in the global behaviours (you should put them in an object in your scene, otherwise they load on every scene)
-
Ok thanks