Jump to content

Particle collision


Rick
 Share

Recommended Posts

Is there any feasible way to get particle collisions? I don't care about any sort of response or velocity or where it happened, I just need to know it happened, and be able to kill that particle. Even if I could get the position of the particle I could find out collision myself.

Link to comment
Share on other sites

It's possible to get the position of a particle, but only in BlitzMax at the moment. The class property for the particle position would need to be exported to the dll to be able to use it in other languages.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

As far as I'm aware ... no, on the basis that the particles (quads) themselves are all internal to Josh's engine and are not exposed to us. You could write your own particle system ;)

Intel Core i5 2.66 GHz, Asus P7P55D, 8Gb DDR3 RAM, GTX460 1Gb DDR5, Windows 7 (x64), LE Editor, GMax, 3DWS, UU3D Pro, Texture Maker Pro, Shader Map Pro. Development language: C/C++

Link to comment
Share on other sites

You can't delete a single particle.

But you could move it far away, so that it's not visible anymore. You would probably need to do this in each frame until the particle is removed by the engine.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I was thinking more of ending the "life" of it instantly. Not delete. I read that they are recycled and that's fine, but I'd like to end the life of a given particle instantly if it hits something so it can be recycled. If I had the position of each active, alive, whatever you want to call it, I could do some collision checks to see if they hit something.

 

I also realize that we put particles in the transparency world and the models would be in the main world, but I should still be able to check positions for what would be a collision. My idea currently it to create a rain cloud if you will. It will have raining coming from it, but I want the rain particles to stop when they collide with anything.

Link to comment
Share on other sites

I think you should make your own emitter class in C++. You can then entitypick from the cloud vertically down to see where it collides. The particles would be drawn with OpenGL 3D sprites (like drawimage, but with 3D position).

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Lumooja, I use LE so I don't have to use OpenGL. ;)

You can use OpenGL commands from LE. LE doesn't have all OpenGL commands as native LE commands, so you need sometimes to use raw OpenGL commands in LE also. The most popular example is drawing 3D lines, that can be done only when using OpenGL within LE.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...