Working on particles, taking them for a test spin in DBP trying to get them working the way I want them to. Trying to reposition an emitter realtime, and its not going to well. Keep getting a "DBP Encounted a Physics Error" message when I try to respawn the particles. The only way to delete all the particles from an emitter (that I have found) is to DELETE the emitter, otherwise the already emitter particles will have to die according to their timer (not useful for a particle cursor)
Now, it may be late and I may be missing something obvious (or doing something stupid, probably that), thats where everyone else comes in. What am I doing wrong here? Im no expert in particles, but I know physics errors tend to be bad...Anyone know a workaround? Heres full source code (no images included, they come with SmartParticles though.)
:`SmartParticles Code
:`===================
GLOBAL DELETED = 0
GLOBAL RESPAWNED = 0
testParticles()
function LoadParticles()
LOAD IMAGE "flame.png", 8001
:`Emitter 1
MAKE BASIC EMITTER 1001, 62
SET EMITTER PARTICLE COLOR 1001, 255, 255, 255, 255
SET PARTICLE Z SORTING 1001, 1
SET EMITTER RATE 1001, 34
SET EMITTER EXPLODE 1001, 0.389999985695
SET EMITTER PARTICLE VELOCITY 1001, 1.13999998569, 10
SET EMITTER PARTICLE MASS 1001, 0, 0
SET EMITTER PARTICLE LIFE 1001, 0.899999976158, 0
SET EMITTER PARTICLE SIZE 1001, 0.20000000298, 0
SET OBJECT TRANSPARENCY 1001, 1
SET EMITTER PARTICLE COLOR 1001, 255, 255, 255, 255
TEXTURE OBJECT 1001, 8001
POSITION OBJECT 1001, 0, -0.386999994516, -0.0010000000475
ROTATE OBJECT 1001, 0, 76, 0
:`Effector 1
MAKE WIND EFFECTOR 3001
SET WIND EFFECTOR 3001, 0, 74.0999984741, 1
:`Collider 1
MAKE COLLISION SQUARE 5001
SET COLLISION SQUARE 5001, 26.2999992371, 11.8000001907
POSITION OBJECT 5001, 0, -0.619000017643, 0
ROTATE OBJECT 5001, 185.899993896, 88, 95.8000030518
:`Emitter / Effector Binding1
BIND EFFECTOR TO OBJECT 3001, 1001
SET EFFECTOR INTERACTION 3001, 1001, 50
SET EFFECTOR FALLOFF 3001, 1001, 0
SET EFFECTOR FALLOFF HEIGHT 3001, 1001, 0, 1
:`Emitter / Collider Binding1
BIND COLLIDER TO OBJECT 5001, 1001
SET COLLIDER BOUNCE 5001, 1001, 0.5
SET COLLIDER FRICTION 5001, 1001, 0.5
SET COLLIDER INVERT 5001, 1001, 0
SET COLLIDER KILLER 5001, 1001, 0
SET COLLIDER USE COLOR 5001, 1001, 0
SET COLLIDER RESOLVE 5001, 1001, 1
`--------------------------------------
` JUMPING CRASH SPLASH [1002]
`--------------------------------------
LOAD IMAGE "flame.png", 8002
:`Emitter 1
MAKE BASIC EMITTER 1002, 82
SET EMITTER PARTICLE COLOR 1002, 255, 255, 255, 255
SET PARTICLE Z SORTING 1002, 1
SET EMITTER RATE 1002, 10000
SET EMITTER EXPLODE 1002, 0.639999985695
SET EMITTER PARTICLE VELOCITY 1002, 2.82999992371, 10
SET EMITTER PARTICLE MASS 1002, 810, 0
SET EMITTER PARTICLE LIFE 1002, 2.29999995232, 0
SET EMITTER PARTICLE SIZE 1002, 0.20000000298, 0
SET OBJECT TRANSPARENCY 1002, 1
SET EMITTER PARTICLE COLOR 1002, 255, 255, 255, 255
TEXTURE OBJECT 1002, 8002
POSITION OBJECT 1002, 0, -0.386999994516, -0.0020000000475
ROTATE OBJECT 1002, 0, 0, 0
:`Effector 1
MAKE GRAVITY EFFECTOR 3002
SET GRAVITY EFFECTOR 3002, 0, -10.6300002144, 1
:`Collider 1
MAKE COLLISION BOX 5002
SET COLLISION BOX 5002, 26.2999992371, 11.8000002907, 7
POSITION OBJECT 5002, 0, -3.9849998951, 0
ROTATE OBJECT 5002, 185.899993896, 88, 95.8000030518
:`Emitter / Effector Binding1
BIND EFFECTOR TO OBJECT 3002, 1002
SET EFFECTOR INTERACTION 3002, 1002, 50
SET EFFECTOR FALLOFF 3002, 1002, 0
SET EFFECTOR FALLOFF HEIGHT 3002, 1002, 0, 1
:`Emitter / Collider Binding1
BIND COLLIDER TO OBJECT 5002, 1002
SET COLLIDER BOUNCE 5002, 1002, 0.5
SET COLLIDER FRICTION 5002, 1002, 0.5
SET COLLIDER INVERT 5002, 1002, 0
SET COLLIDER KILLER 5002, 1002, 0
SET COLLIDER USE COLOR 5002, 1002, 0
SET COLLIDER RESOLVE 5002, 1002, 1
endfunction
:`++++++++++++++++++++++++++++++
:`Use this function to test particles are running as expected
:`++++++++++++++++++++++++++++++
function testParticles()
position camera 0, 0, -5
backdrop on
color backdrop rgb ( 0, 0, 0 )
autocam off
LoadParticles()
do
if deleted = 0
set cursor 0,0
print "Press D To Delete the Emitter"
if inkey$()="d" then deleteEmitter(1001)
endif
if deleted = 1 and respawn = 0
set cursor 0,0
print "Emitter Deleted. Press R to Respawn the emitter in a new Location"
if inkey$()="r" then positionEmitter(0.0,0.0,5.0)
endif
if respawn = 1
set cursor 0,0
print "Emitter Respawned."
endif
update physics
sync
loop
endfunction
function deleteEmitter(eNum)
num = eNum-1000
delete emitter 1000+num
delete effector 3000+num
delete collider 5000+num
DELETED = 1
endfunction DELETED
function positionEmitter(x#,y#,z#)
:`Emitter 1
MAKE BASIC EMITTER 1001, 62
SET EMITTER PARTICLE COLOR 1001, 255, 255, 255, 255
SET PARTICLE Z SORTING 1001, 1
SET EMITTER RATE 1001, 34
SET EMITTER EXPLODE 1001, 0.389999985695
SET EMITTER PARTICLE VELOCITY 1001, 1.13999998569, 10
SET EMITTER PARTICLE MASS 1001, 0, 0
SET EMITTER PARTICLE LIFE 1001, 0.899999976158, 0
SET EMITTER PARTICLE SIZE 1001, 0.20000000298, 0
SET OBJECT TRANSPARENCY 1001, 1
SET EMITTER PARTICLE COLOR 1001, 255, 255, 255, 255
TEXTURE OBJECT 1001, 8001
POSITION OBJECT 1001, 0+x#, -0.386999994516+y#, -0.0010000000475+z#
ROTATE OBJECT 1001, 0, 76, 0
:`Effector 1
MAKE WIND EFFECTOR 3001
SET WIND EFFECTOR 3001, 0, 74.0999984741, 1
:`Collider 1
MAKE COLLISION SQUARE 5001
SET COLLISION SQUARE 5001, 26.2999992371, 11.8000001907
POSITION OBJECT 5001, 0+x#, -0.619000017643+y#, 0+z#
ROTATE OBJECT 5001, 185.899993896, 88, 95.8000030518
:`Emitter / Effector Binding1
BIND EFFECTOR TO OBJECT 3001, 1001
SET EFFECTOR INTERACTION 3001, 1001, 50
SET EFFECTOR FALLOFF 3001, 1001, 0
SET EFFECTOR FALLOFF HEIGHT 3001, 1001, 0, 1
:`Emitter / Collider Binding1
BIND COLLIDER TO OBJECT 5001, 1001
SET COLLIDER BOUNCE 5001, 1001, 0.5
SET COLLIDER FRICTION 5001, 1001, 0.5
SET COLLIDER INVERT 5001, 1001, 0
SET COLLIDER KILLER 5001, 1001, 0
SET COLLIDER USE COLOR 5001, 1001, 0
SET COLLIDER RESOLVE 5001, 1001, 1
RESPAWNED = 1
endfunction RESPAWNED
Any help would be appreciated here. Thanks guys, Happy Holidays and New Year
RPGamer