Browse Search Popular Register Upload Rules User list Login:
Search:
Needy, what happened to you! :lol:
What about Ultraviolet? :o
It doesn't work very well with gradual curves. What if, for dropped vertices, it keeps the degree count and adds it to the degree count of the next vertex, and this could go on forever? :lol:

EDIT: I tried changing the code a tiny bit to incorporate this idea and it worked!
All I had to do was move a single line of code!

I moved `oldRad = newRad` to the if-then statement for verts that get added - that way discarded vertexes don't update oldRad.

Now gradual curves look much better!

I kind of want to try making my own polygon simplifier now -- may I share it as a scene response?
Last edited at 2024/10/27 23:47:05 by Little
You're welcome!
I reloaded the scene and as soon as I hit play the white box that spawns the polygons vanished! :(
I think it's a pair of socks!

(fun fact: I love socks xD)
Last edited at 2024/10/28 09:34:14 by Little
Xray, I am unfortunately very guilty of what you mentioned about uploading a scene and finding bugs! :lol:

My friends who have subscribed to me have asked me multiple times why, when I upload a scene, I usually make several edits within the first few moments. For some reason that's just when I find all of the bugs and issues )|(

The main reason I upload first is mainly because I don't feel like setting up the thumbnail again. I kind of feel like I should make some sort of dedicated thing for thumbnails -- maybe a phunlet that I can just drag into a scene, put an image on, and then it's all done?


Generally though, the first thing I do when I upload a scene is reload it within Algodoo and make sure the scene starts properly. (Again, I really want to do something so that I don't you know, upload a broken scene for a minute or two first but... )|( )
Excellent job! I'm not really one for gun/weapon scenes but this was really well made.
I've also never seen readable(owner) used for reading the special variables before but that's nice to know! I have always been using (readable(e.this)) which is significantly clunkier :<
The background is super JPEG'd! xD
Ice cube fell into the LOL! Bracelety isn't going to like this :(
@s_noonan

Thank you for your feedback!
I never noticed the maxRays property in lasers -- thank you for showing me that! :D

@AverageCoder

Thank you!
I'm not entirely sure how I would do the dropped vertices monitor in a way that would keep it from desyncing from the window when it's moved or closed but I can try to implement it somehow!
The best way I know of to do it is to spawn Object B and then delete Object A once the simulation time exceeds a certain value.

In onSpawn or something similar, you could set that value to the current simulation time (sim.time) plus 5 seconds.

In postStep, you could then check for the simulation time and see if it's greater than the value.

If it is, just spawn Object B, and delete Object A in the same script. :lol:
I plan to make a scene explaining more about spawning objects in the near future!

Here are the basics though.

I recommend spawning the new object (object b) before deleting the current object (object a)!

Spawning objects depends on the type of object.

Here is a simple script to spawn a blue square:

(e)=>{
scene.addBox({
pos := pos;
vel := vel;
size := [2, 2];
color := [0, 0, 1, 1];
angle := angle;
angvel := angvel;
text := "B"
})
}

Spawning circles is similar.
Instead of scene.addBox, simply call scene.addCircle.
It's important to note that circles use a "Radius" parameter rather than a "Size" parameter, so the code will need to be updated accordingly.
Also, circles cannot store text. :(

Polygons are significantly more complicated. Instead of a "size" or "radius" parameter, they have a "surfaces" parameter which would be a lot to explain in a single comment. :(

TLDR though, it contains a list of "surfaces", which are each lists of 2D vertices (i.e. xy coordinates).

Here is a simple script to spawn a blue triangle to demonstrate.

(e)=>{
scene.addPolygon({
pos := pos;
vel := vel;
surfaces := [[[-1, -1], [0, 1], [1, -1]]];
color := [0, 0, 1, 1];
angle := angle;
angvel := angvel;
})
}

To delete an object, simply run timeToLive = 0 or scene.removeEntity(e.this). The latter function is preferred in most cases because it's slightly faster.


If you have any further questions, please let me know! :lol:
I don't usually comment on object show scenes but i really liked this one!

Aquamarine reminds me of Teardrop! :lol:
I killed Homer! :(
Smooth like butter, like a criminal undercover :lol:
My spring engines work more similarly to the red engine too!

I feel kind of guilty for using such a simple design (i.e. not using pistons), but the main reason I personally do it is because I for some reason refuse to make phunlets that need something higher than 60hz, and at high power spring engines like to explode at 60hz unless they're extremely heavy:/
I wouldn't expect any less than complete destruction of the fabric of the universe from the savior of locomotion, the squid. :lol:
I killed Homer again! :o :(
Don't give it ideas! It might think to put self-replicating robots on Mercury and build a dyson swarm!

..I think I said too much. :(
That was a really bad car accident! At least 4 people dead :(
These are really cute and kind of remind me of my own OCs!

Are these your own OCs? :lol:
Algodoo 2.1.0 is quite old, so I'm not very surprised it runs on Windows XP! :lol:
He's fallen on the floor! Is he okay? :(
That's good to know and all, but what if my car starts smoking? :(
I was going to say something similar to what Xray had to say, but he beat me to it. :lol:

I do want to say though that, from now on, try not to use regular equals signs (=) when defining variables in Scene.addObject scripts.
In my experience, this also overwrites that variable for the object spawning the other object.

For example, this script, if run inside a circle, will set its radius to 1.0 -- even though you didn't ask it to! :(

Scene.addCircle({
radius = 1.0
})

Even though it's inside of a scene.addCircle script, the = operator is also overwriting the circle's own radius.

Instead, use the := operator.
The := operator always tries to define a new variable if possible rather than redefining an already existing one.

Scene.addCircle({
radius := 1.0
})

This script will not resize the circle being used to spawn the new circle.

I hope this helps! :lol:
Last edited at 2024/11/17 18:08:35 by Little
I cough uncontrollably around cigarette smoke, it really sucks.
At least I could never become a smoker and purposely fill my lungs with it though! :lol:

@AngryBirdAlgodoo did you try putting it in rice?
I'm not sure why, but working on cars has to be in my top 3 favorite things to do with Algodoo, and the more I think about it, the more I think it might be my favorite thing to do in Algodoo period!

I also really like Automation, so it's fun to see a scene referencing it!

If I could make a suggestion, could you perhaps add suspension pieces to the designer? Driver rag dolls would be fun too -- or perhaps, different wheels with different tires and rims?

It would also be fun if you added scripting to modify certain aspects of the frames (kind of like you can do in the actual Automation game) but I understand that would be pretty technical so I have no idea how to (literally) pull that off :lol:


I would love to see what this scene evolves into if you keep updating it! :lol:
I love it! Driving on this track was super fun.
Thank you!
It's terrifying! I love it! :lol:
previous | 1 … 23 24 25 26 27 … 33 | next