Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (107)
games submitted by our members
Games in WIP (536)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Particle Explosion  (Read 3991 times)
0 Members and 1 Guest are viewing this topic.
Offline ChouChou

Senior Newbie





« Posted 2010-04-21 04:08:52 »

Hi, I'm not sure if this is the right section for this kind of stuff, but I'll post here anyway. I have an explosion class that draws lots of particles moving in random direction and forms a square explosion shape, I'm just wondering if there is a formula or algorithm I can use to create a circular explosion shape. Thanks in advance!
Offline Nate

JGO Kernel


Medals: 145
Projects: 4
Exp: 14 years


Esoteric Software


« Reply #1 - Posted 2010-04-21 06:23:32 »

Here is some of my code for dealing with particles:
http://code.google.com/p/skorpios/source/browse/trunk/skorpios-common/src/com/esotericsoftware/skorpios/opengl/particles/Particles.java

The project also has an editor tool:
http://code.google.com/p/skorpios/source/browse/trunk/skorpios-desktop/tools/com/esotericsoftware/skorpios/tools/particles/ParticleEditor.java

Editor screenshot:


Basically you give each particle an angle (randomly distributed between 0 and 360 degrees to emit in all directions), and also a velocity (pixels per second is an easy unit). Then each update you change the position of the particle this way:

1  
2  
x += velocity * Math.cos(angle);
y += velocity * Math.sin(angle);


Note that Math.cos/sin takes an angle in radians.

Be sure to take into account the number of milliseconds that have passed since the last update when applying your velocity.

You may want to store precomputed values for velocityX and velocityY. I do the sin/cos each update because I allow my particles' angle to change during its life.

Offline ChouChou

Senior Newbie





« Reply #2 - Posted 2010-04-21 06:43:22 »

Wow that's pretty impressive stuff there...I'll definitly dive deeper into the code once I get off work, thanks!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline cylab

JGO Ninja


Medals: 38



« Reply #3 - Posted 2010-04-21 10:24:57 »

This is another one: http://sourceforge.net/projects/jops/, but seems unmaintained.

Mathias - I Know What [you] Did Last Summer!
Offline ChouChou

Senior Newbie





« Reply #4 - Posted 2010-04-21 14:00:08 »

Cool, thanks for that link, I"ll take a look now XD
Offline ChouChou

Senior Newbie





« Reply #5 - Posted 2010-04-21 14:31:14 »

Here is some of my code for dealing with particles:
http://code.google.com/p/skorpios/source/browse/trunk/skorpios-common/src/com/esotericsoftware/skorpios/opengl/particles/Particles.java

The project also has an editor tool:
http://code.google.com/p/skorpios/source/browse/trunk/skorpios-desktop/tools/com/esotericsoftware/skorpios/tools/particles/ParticleEditor.java

Editor screenshot:


Basically you give each particle an angle (randomly distributed between 0 and 360 degrees to emit in all directions), and also a velocity (pixels per second is an easy unit). Then each update you change the position of the particle this way:

1  
2  
x += velocity * Math.cos(angle);
y += velocity * Math.sin(angle);


Note that Math.cos/sin takes an angle in radians.

Be sure to take into account the number of milliseconds that have passed since the last update when applying your velocity.

You may want to store precomputed values for velocityX and velocityY. I do the sin/cos each update because I allow my particles' angle to change during its life.

That formula there did the trick, thanks alot!
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Riven (16 views)
2014-07-29 18:09:19

Riven (11 views)
2014-07-29 18:08:52

Dwinin (10 views)
2014-07-29 10:59:34

E.R. Fleming (28 views)
2014-07-29 03:07:13

E.R. Fleming (10 views)
2014-07-29 03:06:25

pw (40 views)
2014-07-24 01:59:36

Riven (39 views)
2014-07-23 21:16:32

Riven (27 views)
2014-07-23 21:07:15

Riven (29 views)
2014-07-23 20:56:16

ctomni231 (59 views)
2014-07-18 06:55:21
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!