For clones to be useable as both Physics and non-Physics objects in a project using the Physics Engine, they need to inherit the Active
state from the ‘base’ Actor they are cloned from.
Sample project demonstrating effect of current (non-inherited) Active
state:
- Play:- https://www.tynker.com/play?p=58f1b53b949b5679258b4575
- IDE:- https://www.tynker.com/ide/?p=58f1b53b949b5679258b4575
Here is a diagnostic test-case project, illustrating:
- TC 1: Non-inherited Active state (same as Sample project above).
-
TC 2: Ineffective workaround of setting
Active=FALSE
immediately onClone Startup
-
TC 3: An ‘emulation’ of the desired behaviour, through turning off the Physics Engine!
-
NOTE: Turning off the Physics Engine is only to emulate inherited
Active=FALSE
to show the desired behaviour – obviously, turning off the Physics Engine is not an option for Physics-based projects!
-
NOTE: Turning off the Physics Engine is only to emulate inherited
- Play:- https://www.tynker.com/play?p=58f00c7676f29303098b456e
- IDE:- https://www.tynker.com/ide/?p=58f00c7676f29303098b456e
Current behaviour:
- At the moment Clones are always created with
Active=TRUE
; this means they immediately interact/displace other Active=TRUE objects in the scene, plus incurring a slowdown as they’re added to the scene.- This makes it impossible to create non-Active objects, such as lasers, explosions, particles etc.
- (See TC 1 in Diagnostic Test Case project above).
- Setting
Active=FALSE
immediately onClone Startup
is not a sufficient work-around, as they still initially interact/displace/slowdown until theActive=FALSE
statement is processed.- (See TC 2 in Diagnostic Test Case project above).
Desired behaviour:
- Clones inherit
Active
flag state. - Help content on which attributes Clones currently inherit - i.e. Static, Shape, Density, Friction, Restitution, Weight, Linear Velocity, Angular Velocity, …
- Sensible inheriting of all Physics properties; also other properties (such as Pen/Font/…).
-
set Active
andset Static
blocks added to the Physics block list.- (Currently there’s just the long forms i.e.
set Active on [self] to <false>
).
- (Currently there’s just the long forms i.e.
-
Bonus: An additional flag, so that Actors/Clones can be like
Active=TRUE
andStatic=FALSE
but not collide/displace – for particle effects where they still need to interact with Gravity and other forces. MaybeCollide=TRUE
?
Thanks!