maybe a stupid question, but I couldn't find a solution.
How to make a physical object move for the target? Something like entity.lookatObject.
speedMulti = 0.1;
dirX, dirY, dirZ = entity.subtractPositions( entity.getEntityIDFromTag("enemy"), entity.getEntityIDFromTag("tower") );
function e:update()
if( entity.entityExist(self.mesh) == 1 ) then
--entity.move(self.mesh,0,0,0.05)
speedMulti = 0.1;
dirX, dirY, dirZ = entity.subtractPositions( entity.getEntityIDFromTag("enemy"), entity.getEntityIDFromTag("tower") );
physics.setVelocity(bID,-dirX * speedMulti, -dirY * speedMulti, -dirZ * speedMulti);
if self.life < os.clock() then
entity.delete(self.mesh)
end
end
end
function e:update()
if( entity.entityExist(self.mesh) == 1 ) then
if self.target~= nil then
if( entity.entityExist(self.target) == 1 ) then
self.dirX, self.dirY, self.dirZ = entity.subtractPositions( obj, e.target );
speedMulti = 1;
physics.setVelocity(bID,-self.dirX * speedMulti, -self.dirY * speedMulti, -self.dirZ * speedMulti);
end
end
--***********FUNCTION?***********************
if COLLISION(self.mesh,self.target) then
entity.delete(self.mesh)
end
if self.life < os.clock() then
entity.delete(self.mesh)
end
end
end
I need to tiny sphere followed a large sphere.
physics.setCollisionEnable_OnStart(bodyID);
function newEntity2()
mesh2 = entity.spawn("Sphere_small",0,10,0,1,1,1);
bid2 = physics.addBody(mesh2, enum.body_Sphere(), 1);
physics.setCollisionEnable_OnStart(bid2);
entity.addScript( mesh2, "/Jayce/testCollision.lua" );
sky.lprint("new entity 2");
end
obj = 0;
function onInit(objID)
sky.lprint("LUA: Script Active!");
obj = objID;
end
function onCollision_Start(hitID)
sky.lprint("collision happened: deleting small sphere");
entity.delete(obj);
end
physics.setCollisionEnable_OnStay(bodyID);
physics.setCollisionEnable_OnEnd(bodyID);
Users browsing this forum: No registered users and 3 guests