A True Beginner Question (RayCast)
by Louis Deane · in Torque Developer Network · 09/07/2009 (10:03 am) · 1 replies
function RifleImage::onFire(%this, %obj, %slot)
{
//Decrement Inventory
%obj.decInventory(%this.ammo,1);
//get the players eye vector
//%startVector = %obj.getEyeVector();
%startVector = %obj.getMuzzleVector(%slot);
//multiply the eye vector by the weapon range 4000 for now
%endvector = VectorScale(%startVector, 500);
//get the collision types
%mask = $Game::AllTypesMask;
%raycast = ContainerRayCast ( %startVector, %endvector , %mask, %this);
echo(%raycast);
if(%raycast)
{
%hitPoint = getWords($raycast,1,3);
%hitNormal = getWords($raycast,4,6);
}
}
A really daft question. Im a fairly experianced programmer but totally new to torque. I am trying to run a traceline from the players muzzle point for use in a rifle type weapon. The All Types Mask is a collection of the object types i want it to collide with.
$Game::AllTypesMask = $TypeMasks::StaticObjectType|$TypeMasks::EnvironmentObjectType|$TypeMasks::TerrainObjectType|$TypeMasks::InteriorObjectType|$TypeMasks::WaterObjectType|$TypeMasks::TriggerObjectType|$TypeMasks::MarkerObjectType|$TypeMasks::GameBaseObjectType|$TypeMasks::ShapeBaseObjectType|$TypeMasks::CameraObjectType|$TypeMasks::StaticShapeObjectType|$TypeMasks::PlayerObjectType|$TypeMasks::ItemObjectType|$TypeMasks::VehicleObjectType|$TypeMasks::VehicleBlockerObjectType|$TypeMasks::ProjectileObjectType|$TypeMasks::ExplosionObjectType|$TypeMasks::CorpseObjectType|$TypeMasks::DebrisObjectType|$TypeMasks::PhysicalZoneObjectType|$TypeMasks::StaticTSObjectType|$TypeMasks::StaticRenderedObjectType|$TypeMasks::DamagableItemObjectType;
This seems a fairly horrible way of doing this so if theres an alternative XD i'd love to know.
Also the raycast seems to always return 0 with the exception of where it collides with the player. then it returns valid coords. Can someone please help me? i've spent the entire morning googleing possible solutions :). many thanks
{
//Decrement Inventory
%obj.decInventory(%this.ammo,1);
//get the players eye vector
//%startVector = %obj.getEyeVector();
%startVector = %obj.getMuzzleVector(%slot);
//multiply the eye vector by the weapon range 4000 for now
%endvector = VectorScale(%startVector, 500);
//get the collision types
%mask = $Game::AllTypesMask;
%raycast = ContainerRayCast ( %startVector, %endvector , %mask, %this);
echo(%raycast);
if(%raycast)
{
%hitPoint = getWords($raycast,1,3);
%hitNormal = getWords($raycast,4,6);
}
}
A really daft question. Im a fairly experianced programmer but totally new to torque. I am trying to run a traceline from the players muzzle point for use in a rifle type weapon. The All Types Mask is a collection of the object types i want it to collide with.
$Game::AllTypesMask = $TypeMasks::StaticObjectType|$TypeMasks::EnvironmentObjectType|$TypeMasks::TerrainObjectType|$TypeMasks::InteriorObjectType|$TypeMasks::WaterObjectType|$TypeMasks::TriggerObjectType|$TypeMasks::MarkerObjectType|$TypeMasks::GameBaseObjectType|$TypeMasks::ShapeBaseObjectType|$TypeMasks::CameraObjectType|$TypeMasks::StaticShapeObjectType|$TypeMasks::PlayerObjectType|$TypeMasks::ItemObjectType|$TypeMasks::VehicleObjectType|$TypeMasks::VehicleBlockerObjectType|$TypeMasks::ProjectileObjectType|$TypeMasks::ExplosionObjectType|$TypeMasks::CorpseObjectType|$TypeMasks::DebrisObjectType|$TypeMasks::PhysicalZoneObjectType|$TypeMasks::StaticTSObjectType|$TypeMasks::StaticRenderedObjectType|$TypeMasks::DamagableItemObjectType;
This seems a fairly horrible way of doing this so if theres an alternative XD i'd love to know.
Also the raycast seems to always return 0 with the exception of where it collides with the player. then it returns valid coords. Can someone please help me? i've spent the entire morning googleing possible solutions :). many thanks
About the author
Torque Owner J "hplus" W