Mass
Type
Initialised Value
Description
-- entity.lua
local function init(self)
self.Physics = true
local mass = 10
local box_shape = api.physics.NewBoxShape(1, 1, 1)
local box = api.physics.NewBody(box_shape, mass)
self.Body = box
self.Body:ApplyForce(api.physics.NewVector(32, 32 ,0))
local mass_changes = {"decrease", "not be changed", "increase"}
self.Data.mass_change = mass_changes[math.random(1, #mass_changes)]
print("This entity has a mass which will "..self.Data.mass_change..".")
end
local function update(self, dt)
local not_force_update = self.Body.Force:Dot(self.Body.Force) == 0
if not_force_update then
if self.Data.mass_change == "decrease" then
self.Body.Mass = 1
end
if self.Data.mass_change == "not be changed" then
self.Body.Mass = self.Body.Mass
end
if self.Data.mass_change == "increase" then
self.Body.Mass = 100
end
end
local wind_force = api.physics.NewVector(-0.1, -0.1 ,0)
self.Body:ApplyForce(wind_force)
end
-- Turn on physics calculations for this entity.
-- Create a box shape and a body with a mass of 10. Assign it to the entity.
-- Apply an initial force to move the entity towards the top-right of the panel map.
-- Randomly select a new mass which the entity will update to.
-- Check that the initial force has finished processing, before changing the mass.
-- Decrease (to 1), increase (to 100), or leave the entity's mass unchanged (at 10).
-- Create and apply a wind force (-0.1, -0.1, 0), to blow the entity backwards.
-- Watch the panel map to see the effect: immediately, gradually, or eventually.
-- Prints:
-- This entity has a mass which will decrease.
-- Or Prints:
-- This entity has a mass which will not be changed.
-- Or Prints:
-- This entity has a mass which will increase.Last updated